add Saiku integrated perspective, adjusted legal info
diff --git a/org.eclipse.osbp.xtext.perspective.feature/feature.xml b/org.eclipse.osbp.xtext.perspective.feature/feature.xml
index d292303..2812000 100644
--- a/org.eclipse.osbp.xtext.perspective.feature/feature.xml
+++ b/org.eclipse.osbp.xtext.perspective.feature/feature.xml
@@ -15,7 +15,7 @@
         label="%featureName"
         version="0.9.0.qualifier"
         provider-name="%providerName"
-		plugin="org.eclipse.osbp.xtext.perspective">
+		plugin="org.eclipse.osbp.license">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/PerspectiveDslParser.java b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/PerspectiveDslParser.java
index 1cbc1c5..d2753de 100644
--- a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/PerspectiveDslParser.java
+++ b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/PerspectiveDslParser.java
@@ -48,6 +48,7 @@
 				{
 					put(grammarAccess.getPerspectiveElementAccess().getAlternatives(), "rule__PerspectiveElement__Alternatives");
 					put(grammarAccess.getPerspectiveViewAccess().getAlternatives(), "rule__PerspectiveView__Alternatives");
+					put(grammarAccess.getPerspectiveBrowserAccess().getAlternatives_2(), "rule__PerspectiveBrowser__Alternatives_2");
 					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_2(), "rule__XImportDeclaration__Alternatives_2");
 					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3(), "rule__XImportDeclaration__Alternatives_2_0_3");
 					put(grammarAccess.getXAnnotationAccess().getAlternatives_3_1(), "rule__XAnnotation__Alternatives_3_1");
@@ -130,6 +131,7 @@
 					put(grammarAccess.getPerspectiveBPMNAccess().getGroup(), "rule__PerspectiveBPMN__Group__0");
 					put(grammarAccess.getPerspectiveKanbanAccess().getGroup(), "rule__PerspectiveKanban__Group__0");
 					put(grammarAccess.getPerspectiveWelcomeAccess().getGroup(), "rule__PerspectiveWelcome__Group__0");
+					put(grammarAccess.getPerspectiveSaikuAccess().getGroup(), "rule__PerspectiveSaiku__Group__0");
 					put(grammarAccess.getPerspectiveSearchAccess().getGroup(), "rule__PerspectiveSearch__Group__0");
 					put(grammarAccess.getPerspectiveSearchAccess().getGroup_4_0(), "rule__PerspectiveSearch__Group_4_0__0");
 					put(grammarAccess.getPerspectiveSearchAccess().getGroup_4_1(), "rule__PerspectiveSearch__Group_4_1__0");
@@ -137,6 +139,7 @@
 					put(grammarAccess.getPerspectiveTitleAccess().getGroup(), "rule__PerspectiveTitle__Group__0");
 					put(grammarAccess.getPerspectiveDashboardAccess().getGroup(), "rule__PerspectiveDashboard__Group__0");
 					put(grammarAccess.getPerspectiveBrowserAccess().getGroup(), "rule__PerspectiveBrowser__Group__0");
+					put(grammarAccess.getPerspectiveBrowserAccess().getGroup_2_0(), "rule__PerspectiveBrowser__Group_2_0__0");
 					put(grammarAccess.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
 					put(grammarAccess.getXImportDeclarationAccess().getGroup_2_0(), "rule__XImportDeclaration__Group_2_0__0");
 					put(grammarAccess.getXImportDeclarationAccess().getGroup_2_3(), "rule__XImportDeclaration__Group_2_3__0");
@@ -390,7 +393,8 @@
 					put(grammarAccess.getPerspectiveDataInterchangeAccess().getRefAssignment_2(), "rule__PerspectiveDataInterchange__RefAssignment_2");
 					put(grammarAccess.getPerspectiveTitleAccess().getHtmlNameAssignment_2(), "rule__PerspectiveTitle__HtmlNameAssignment_2");
 					put(grammarAccess.getPerspectiveDashboardAccess().getNameAssignment_2(), "rule__PerspectiveDashboard__NameAssignment_2");
-					put(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_3(), "rule__PerspectiveBrowser__UrlAssignment_3");
+					put(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_2_0_1(), "rule__PerspectiveBrowser__UrlAssignment_2_0_1");
+					put(grammarAccess.getPerspectiveBrowserAccess().getCubeViewAssignment_2_1(), "rule__PerspectiveBrowser__CubeViewAssignment_2_1");
 					put(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0(), "rule__XImportDeclaration__StaticAssignment_2_0_0");
 					put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1(), "rule__XImportDeclaration__ExtensionAssignment_2_0_1");
 					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2(), "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2");
diff --git a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.g b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.g
index c83a3db..30e7f09 100644
--- a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.g
+++ b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.g
@@ -2960,6 +2960,27 @@
 	restoreStackSize(stackSize);
 }
 
+rule__PerspectiveBrowser__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPerspectiveBrowserAccess().getGroup_2_0()); }
+		(rule__PerspectiveBrowser__Group_2_0__0)
+		{ after(grammarAccess.getPerspectiveBrowserAccess().getGroup_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPerspectiveBrowserAccess().getCubeViewAssignment_2_1()); }
+		(rule__PerspectiveBrowser__CubeViewAssignment_2_1)
+		{ after(grammarAccess.getPerspectiveBrowserAccess().getCubeViewAssignment_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__XImportDeclaration__Alternatives_2
 	@init {
 		int stackSize = keepStackSize();
@@ -8015,7 +8036,6 @@
 	}
 :
 	rule__PerspectiveBrowser__Group__2__Impl
-	rule__PerspectiveBrowser__Group__3
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -8027,35 +8047,63 @@
 	}
 :
 (
-	{ before(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2()); }
-	'url'
-	{ after(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2()); }
+	{ before(grammarAccess.getPerspectiveBrowserAccess().getAlternatives_2()); }
+	(rule__PerspectiveBrowser__Alternatives_2)
+	{ after(grammarAccess.getPerspectiveBrowserAccess().getAlternatives_2()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__PerspectiveBrowser__Group__3
+
+rule__PerspectiveBrowser__Group_2_0__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__PerspectiveBrowser__Group__3__Impl
+	rule__PerspectiveBrowser__Group_2_0__0__Impl
+	rule__PerspectiveBrowser__Group_2_0__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__PerspectiveBrowser__Group__3__Impl
+rule__PerspectiveBrowser__Group_2_0__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_3()); }
-	(rule__PerspectiveBrowser__UrlAssignment_3)
-	{ after(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_3()); }
+	{ before(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2_0_0()); }
+	'url'
+	{ after(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectiveBrowser__Group_2_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PerspectiveBrowser__Group_2_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectiveBrowser__Group_2_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_2_0_1()); }
+	(rule__PerspectiveBrowser__UrlAssignment_2_0_1)
+	{ after(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_2_0_1()); }
 )
 ;
 finally {
@@ -22501,15 +22549,34 @@
 	restoreStackSize(stackSize);
 }
 
-rule__PerspectiveBrowser__UrlAssignment_3
+rule__PerspectiveBrowser__UrlAssignment_2_0_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_3_0()); }
+		{ before(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_2_0_1_0()); }
 		RULE_STRING
-		{ after(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_3_0()); }
+		{ after(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_2_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectiveBrowser__CubeViewAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); }
+		(
+			{ before(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); }
+			'cubeView'
+			{ after(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); }
+		)
+		{ after(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); }
 	)
 ;
 finally {
diff --git a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.tokens b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.tokens
index 0edaa93..e04e811 100644
--- a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.tokens
+++ b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.tokens
@@ -25,7 +25,7 @@
 '/'=38
 '/='=19
 ':'=109
-'::'=129
+'::'=130
 ';'=96
 '<'=27
 '<>'=32
@@ -36,7 +36,7 @@
 '>'=26
 '>='=25
 '?'=124
-'?.'=130
+'?.'=131
 '?:'=33
 '@'=97
 '['=103
@@ -50,6 +50,7 @@
 'case'=111
 'catch'=123
 'chart'=77
+'cubeView'=128
 'dataInterchange'=91
 'default'=110
 'depth'=89
@@ -76,7 +77,7 @@
 'kanban'=83
 'name'=93
 'new'=115
-'ns'=128
+'ns'=129
 'null'=116
 'of'=84
 'organigram'=79
@@ -104,19 +105,19 @@
 'title'=92
 'toolbar'=61
 'topology'=80
-'true'=133
+'true'=134
 'try'=120
 'typeof'=117
 'url'=95
 'usertask'=58
 'val'=44
-'var'=132
+'var'=133
 'vertical'=52
 'view'=71
 'welcome'=86
 'while'=113
 '{'=54
-'|'=131
+'|'=132
 '||'=14
 '}'=55
 RULE_ANY_OTHER=12
@@ -162,6 +163,7 @@
 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.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslLexer.java b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslLexer.java
index 8a4a501..cfd757e 100644
--- a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslLexer.java
+++ b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslLexer.java
@@ -27,6 +27,7 @@
     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;
@@ -2554,10 +2555,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:126:8: ( 'ns' )
-            // InternalPerspectiveDsl.g:126:10: 'ns'
+            // InternalPerspectiveDsl.g:126:8: ( 'cubeView' )
+            // InternalPerspectiveDsl.g:126:10: 'cubeView'
             {
-            match("ns"); 
+            match("cubeView"); 
 
 
             }
@@ -2575,10 +2576,10 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:127:8: ( '::' )
-            // InternalPerspectiveDsl.g:127:10: '::'
+            // InternalPerspectiveDsl.g:127:8: ( 'ns' )
+            // InternalPerspectiveDsl.g:127:10: 'ns'
             {
-            match("::"); 
+            match("ns"); 
 
 
             }
@@ -2596,10 +2597,10 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:128:8: ( '?.' )
-            // InternalPerspectiveDsl.g:128:10: '?.'
+            // InternalPerspectiveDsl.g:128:8: ( '::' )
+            // InternalPerspectiveDsl.g:128:10: '::'
             {
-            match("?."); 
+            match("::"); 
 
 
             }
@@ -2617,10 +2618,11 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:129:8: ( '|' )
-            // InternalPerspectiveDsl.g:129:10: '|'
+            // InternalPerspectiveDsl.g:129:8: ( '?.' )
+            // InternalPerspectiveDsl.g:129:10: '?.'
             {
-            match('|'); 
+            match("?."); 
+
 
             }
 
@@ -2637,11 +2639,10 @@
         try {
             int _type = T__132;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:130:8: ( 'var' )
-            // InternalPerspectiveDsl.g:130:10: 'var'
+            // InternalPerspectiveDsl.g:130:8: ( '|' )
+            // InternalPerspectiveDsl.g:130:10: '|'
             {
-            match("var"); 
-
+            match('|'); 
 
             }
 
@@ -2658,10 +2659,10 @@
         try {
             int _type = T__133;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:131:8: ( 'true' )
-            // InternalPerspectiveDsl.g:131:10: 'true'
+            // InternalPerspectiveDsl.g:131:8: ( 'var' )
+            // InternalPerspectiveDsl.g:131:10: 'var'
             {
-            match("true"); 
+            match("var"); 
 
 
             }
@@ -2674,15 +2675,36 @@
     }
     // $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;
+            // InternalPerspectiveDsl.g:132:8: ( 'true' )
+            // InternalPerspectiveDsl.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;
-            // InternalPerspectiveDsl.g:24977:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalPerspectiveDsl.g:24977:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:25044:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalPerspectiveDsl.g:25044:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalPerspectiveDsl.g:24977:12: ( '0x' | '0X' )
+            // InternalPerspectiveDsl.g:25044:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2710,7 +2732,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24977:13: '0x'
+                    // InternalPerspectiveDsl.g:25044:13: '0x'
                     {
                     match("0x"); 
 
@@ -2718,7 +2740,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24977:18: '0X'
+                    // InternalPerspectiveDsl.g:25044:18: '0X'
                     {
                     match("0X"); 
 
@@ -2728,7 +2750,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:24977:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalPerspectiveDsl.g:25044:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2766,7 +2788,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalPerspectiveDsl.g:24977:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:25044:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2775,10 +2797,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24977:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:25044:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalPerspectiveDsl.g:24977:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:25044:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2796,7 +2818,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24977:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalPerspectiveDsl.g:25044:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2820,7 +2842,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:24977:84: ( 'l' | 'L' )
+                            // InternalPerspectiveDsl.g:25044:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2859,11 +2881,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24979:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalPerspectiveDsl.g:24979:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:25046:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalPerspectiveDsl.g:25046:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalPerspectiveDsl.g:24979:21: ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:25046:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2912,11 +2934,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24981:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalPerspectiveDsl.g:24981:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:25048:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalPerspectiveDsl.g:25048:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalPerspectiveDsl.g:24981:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalPerspectiveDsl.g:25048:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2925,7 +2947,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24981:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalPerspectiveDsl.g:25048:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2936,7 +2958,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalPerspectiveDsl.g:24981:36: ( '+' | '-' )?
+                    // InternalPerspectiveDsl.g:25048:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2969,7 +2991,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:24981:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:25048:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2981,7 +3003,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24981:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalPerspectiveDsl.g:25048:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -3005,7 +3027,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24981:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalPerspectiveDsl.g:25048: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();
@@ -3038,10 +3060,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24983:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalPerspectiveDsl.g:24983:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:25050:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalPerspectiveDsl.g:25050:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalPerspectiveDsl.g:24983:11: ( '^' )?
+            // InternalPerspectiveDsl.g:25050:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3050,7 +3072,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24983:11: '^'
+                    // InternalPerspectiveDsl.g:25050:11: '^'
                     {
                     match('^'); 
 
@@ -3068,7 +3090,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalPerspectiveDsl.g:24983:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:25050:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -3117,10 +3139,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24985:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalPerspectiveDsl.g:24985:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:25052:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalPerspectiveDsl.g:25052:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalPerspectiveDsl.g:24985:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:25052:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -3138,10 +3160,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24985:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalPerspectiveDsl.g:25052:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalPerspectiveDsl.g:24985:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalPerspectiveDsl.g:25052:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -3157,7 +3179,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:24985:21: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:25052:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3165,7 +3187,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:24985:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalPerspectiveDsl.g:25052:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3185,7 +3207,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:24985:44: ( '\"' )?
+                    // InternalPerspectiveDsl.g:25052:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3194,7 +3216,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24985:44: '\"'
+                            // InternalPerspectiveDsl.g:25052:44: '\"'
                             {
                             match('\"'); 
 
@@ -3207,10 +3229,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24985:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalPerspectiveDsl.g:25052:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalPerspectiveDsl.g:24985:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalPerspectiveDsl.g:25052:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3226,7 +3248,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:24985:55: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:25052:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3234,7 +3256,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:24985:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalPerspectiveDsl.g:25052:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3254,7 +3276,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:24985:79: ( '\\'' )?
+                    // InternalPerspectiveDsl.g:25052:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3263,7 +3285,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24985:79: '\\''
+                            // InternalPerspectiveDsl.g:25052:79: '\\''
                             {
                             match('\''); 
 
@@ -3294,12 +3316,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24987:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalPerspectiveDsl.g:24987:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalPerspectiveDsl.g:25054:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalPerspectiveDsl.g:25054:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalPerspectiveDsl.g:24987:24: ( options {greedy=false; } : . )*
+            // InternalPerspectiveDsl.g:25054:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3324,7 +3346,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:24987:52: .
+            	    // InternalPerspectiveDsl.g:25054:52: .
             	    {
             	    matchAny(); 
 
@@ -3354,12 +3376,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24989:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalPerspectiveDsl.g:24989:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:25056:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalPerspectiveDsl.g:25056:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalPerspectiveDsl.g:24989:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalPerspectiveDsl.g:25056:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3372,7 +3394,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:24989:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalPerspectiveDsl.g:25056: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();
@@ -3392,7 +3414,7 @@
                 }
             } while (true);
 
-            // InternalPerspectiveDsl.g:24989:40: ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:25056:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3401,9 +3423,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24989:41: ( '\\r' )? '\\n'
+                    // InternalPerspectiveDsl.g:25056:41: ( '\\r' )? '\\n'
                     {
-                    // InternalPerspectiveDsl.g:24989:41: ( '\\r' )?
+                    // InternalPerspectiveDsl.g:25056:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3412,7 +3434,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24989:41: '\\r'
+                            // InternalPerspectiveDsl.g:25056:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3444,10 +3466,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24991:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalPerspectiveDsl.g:24991:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:25058:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalPerspectiveDsl.g:25058:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalPerspectiveDsl.g:24991:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:25058:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3501,8 +3523,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24993:16: ( . )
-            // InternalPerspectiveDsl.g:24993:18: .
+            // InternalPerspectiveDsl.g:25060:16: ( . )
+            // InternalPerspectiveDsl.g:25060:18: .
             {
             matchAny(); 
 
@@ -3517,8 +3539,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalPerspectiveDsl.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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=130;
+        // InternalPerspectiveDsl.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 :
@@ -4369,63 +4391,70 @@
                 }
                 break;
             case 122 :
-                // InternalPerspectiveDsl.g:1:770: RULE_HEX
+                // InternalPerspectiveDsl.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // InternalPerspectiveDsl.g:1:777: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 123 :
-                // InternalPerspectiveDsl.g:1:779: RULE_INT
+            case 124 :
+                // InternalPerspectiveDsl.g:1:786: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 124 :
-                // InternalPerspectiveDsl.g:1:788: RULE_DECIMAL
+            case 125 :
+                // InternalPerspectiveDsl.g:1:795: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 125 :
-                // InternalPerspectiveDsl.g:1:801: RULE_ID
+            case 126 :
+                // InternalPerspectiveDsl.g:1:808: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 126 :
-                // InternalPerspectiveDsl.g:1:809: RULE_STRING
+            case 127 :
+                // InternalPerspectiveDsl.g:1:816: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 127 :
-                // InternalPerspectiveDsl.g:1:821: RULE_ML_COMMENT
+            case 128 :
+                // InternalPerspectiveDsl.g:1:828: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 128 :
-                // InternalPerspectiveDsl.g:1:837: RULE_SL_COMMENT
+            case 129 :
+                // InternalPerspectiveDsl.g:1:844: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 129 :
-                // InternalPerspectiveDsl.g:1:853: RULE_WS
+            case 130 :
+                // InternalPerspectiveDsl.g:1:860: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 130 :
-                // InternalPerspectiveDsl.g:1:861: RULE_ANY_OTHER
+            case 131 :
+                // InternalPerspectiveDsl.g:1:868: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -4439,17 +4468,17 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\65\1\67\1\71\1\74\1\100\1\103\1\107\1\111\1\113\1\115\1\117\1\121\1\124\7\130\2\uffff\13\130\10\uffff\1\u0098\2\u009a\1\62\5\uffff\1\u00a0\26\uffff\1\u00a2\5\uffff\1\u00a4\4\uffff\3\130\1\uffff\15\130\1\u00b8\1\u00b9\10\130\2\uffff\4\130\1\u00c8\7\130\1\u00d3\6\130\1\u00e0\10\130\1\u00e9\14\uffff\1\u009a\11\uffff\1\u00ea\1\u00eb\21\130\2\uffff\4\130\1\u0101\6\130\1\u0108\2\130\1\uffff\6\130\1\u0111\3\130\1\uffff\14\130\1\uffff\6\130\1\u0127\1\130\3\uffff\1\130\1\u012a\3\130\1\u012e\11\130\1\u0139\5\130\1\uffff\2\130\1\u0142\3\130\1\uffff\10\130\1\uffff\1\u014e\6\130\1\u0155\1\u0156\6\130\1\u015d\4\130\1\u0162\1\uffff\1\u0163\1\130\1\uffff\3\130\1\uffff\1\130\1\u016a\10\130\1\uffff\2\130\1\u0175\5\130\1\uffff\10\130\1\u0183\1\130\1\u0185\1\uffff\5\130\1\u018b\2\uffff\1\u018c\1\130\1\u018e\3\130\1\uffff\3\130\1\u0195\2\uffff\5\130\1\u019b\1\uffff\1\130\1\u019e\1\u019f\2\130\1\u01a2\1\u01a3\3\130\1\uffff\15\130\1\uffff\1\u01b4\1\uffff\3\130\1\u01b8\1\u01b9\2\uffff\1\u01ba\1\uffff\4\130\1\u01bf\1\130\1\uffff\1\130\1\u01c2\3\130\1\uffff\2\130\2\uffff\2\130\2\uffff\1\u01ca\3\130\1\u01ce\1\130\1\u01d0\2\130\1\u01d3\3\130\1\u01d7\2\130\1\uffff\3\130\3\uffff\1\u01dd\2\130\1\u01e0\1\uffff\1\u01e1\1\u01e2\1\uffff\7\130\1\uffff\3\130\1\uffff\1\130\1\uffff\2\130\1\uffff\1\u01f0\2\130\1\uffff\1\u01f3\4\130\1\uffff\2\130\3\uffff\1\u01fa\12\130\1\u0205\1\130\1\uffff\2\130\1\uffff\6\130\1\uffff\6\130\1\u0215\1\u0216\1\130\1\u0218\1\uffff\3\130\1\u021c\1\130\1\u021e\7\130\1\u0226\1\u0228\2\uffff\1\130\1\uffff\1\u022a\2\130\1\uffff\1\u022d\1\uffff\1\130\1\u022f\1\130\1\u0231\3\130\1\uffff\1\u0235\1\uffff\1\130\1\uffff\2\130\1\uffff\1\130\1\uffff\1\130\1\uffff\1\u023b\1\u023c\1\130\1\uffff\1\u023e\1\u023f\1\130\1\u0241\1\130\2\uffff\1\130\2\uffff\1\u0244\1\uffff\1\130\1\u0246\1\uffff\1\u0247\2\uffff";
+        "\1\uffff\1\65\1\67\1\71\1\74\1\100\1\103\1\107\1\111\1\113\1\115\1\117\1\121\1\124\7\130\2\uffff\13\130\10\uffff\1\u0099\2\u009c\1\62\5\uffff\1\u00a1\26\uffff\1\u00a3\5\uffff\1\u00a5\4\uffff\3\130\1\uffff\15\130\1\u00b9\1\u00ba\10\130\2\uffff\4\130\1\u00c9\7\130\1\u00d4\7\130\1\u00e2\10\130\1\u00eb\13\uffff\1\u009c\12\uffff\1\u00ec\1\u00ed\21\130\2\uffff\4\130\1\u0103\6\130\1\u010a\2\130\1\uffff\6\130\1\u0113\3\130\1\uffff\15\130\1\uffff\6\130\1\u012a\1\130\3\uffff\1\130\1\u012d\3\130\1\u0131\11\130\1\u013c\5\130\1\uffff\2\130\1\u0145\3\130\1\uffff\10\130\1\uffff\1\u0151\6\130\1\u0158\1\u0159\7\130\1\u0161\4\130\1\u0166\1\uffff\1\u0167\1\130\1\uffff\3\130\1\uffff\1\130\1\u016e\10\130\1\uffff\2\130\1\u0179\5\130\1\uffff\10\130\1\u0187\1\130\1\u0189\1\uffff\5\130\1\u018f\2\uffff\1\u0190\2\130\1\u0193\3\130\1\uffff\3\130\1\u019a\2\uffff\5\130\1\u01a0\1\uffff\1\130\1\u01a3\1\u01a4\2\130\1\u01a7\1\u01a8\3\130\1\uffff\15\130\1\uffff\1\u01b9\1\uffff\3\130\1\u01bd\1\u01be\2\uffff\1\130\1\u01c0\1\uffff\4\130\1\u01c5\1\130\1\uffff\1\130\1\u01c8\3\130\1\uffff\2\130\2\uffff\2\130\2\uffff\1\u01d0\3\130\1\u01d4\1\130\1\u01d6\2\130\1\u01d9\3\130\1\u01dd\2\130\1\uffff\3\130\2\uffff\1\130\1\uffff\1\u01e4\2\130\1\u01e7\1\uffff\1\u01e8\1\u01e9\1\uffff\7\130\1\uffff\3\130\1\uffff\1\130\1\uffff\2\130\1\uffff\1\u01f7\2\130\1\uffff\1\u01fa\4\130\1\u01ff\1\uffff\2\130\3\uffff\1\u0202\12\130\1\u020d\1\130\1\uffff\2\130\1\uffff\4\130\1\uffff\2\130\1\uffff\6\130\1\u021d\1\u021e\1\130\1\u0220\1\uffff\3\130\1\u0224\1\130\1\u0226\7\130\1\u022e\1\u0230\2\uffff\1\130\1\uffff\1\u0232\2\130\1\uffff\1\u0235\1\uffff\1\130\1\u0237\1\130\1\u0239\3\130\1\uffff\1\u023d\1\uffff\1\130\1\uffff\2\130\1\uffff\1\130\1\uffff\1\130\1\uffff\1\u0243\1\u0244\1\130\1\uffff\1\u0246\1\u0247\1\130\1\u0249\1\130\2\uffff\1\130\2\uffff\1\u024c\1\uffff\1\130\1\u024e\1\uffff\1\u024f\2\uffff";
     static final String DFA21_eofS =
-        "\u0248\uffff";
+        "\u0250\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\144\1\141\1\143\1\141\1\157\1\141\2\uffff\1\162\1\143\1\141\1\146\1\145\2\141\1\160\1\141\1\145\1\141\10\uffff\1\72\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\2\141\1\156\1\151\1\160\1\157\2\44\1\103\2\154\2\162\1\143\1\162\1\157\2\uffff\1\145\1\154\1\143\1\154\1\44\1\157\1\162\1\164\1\160\1\162\1\165\1\147\1\44\2\141\1\162\1\141\1\146\1\164\1\44\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\44\14\uffff\1\60\11\uffff\2\44\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\2\143\1\164\1\157\1\156\1\164\2\uffff\1\154\1\163\1\164\1\141\1\44\1\151\1\153\1\164\1\163\1\143\1\162\1\44\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\44\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\44\1\154\3\uffff\1\151\1\44\1\156\1\164\1\141\1\44\1\151\1\162\1\103\2\143\1\145\1\150\1\143\1\162\1\44\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\44\1\160\1\145\1\164\1\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\44\2\156\1\117\2\162\1\164\2\44\1\150\1\157\1\150\1\165\1\162\1\111\1\44\1\163\1\141\1\157\1\145\1\44\1\uffff\1\44\1\143\1\uffff\1\144\1\115\1\142\1\uffff\1\143\1\44\1\157\1\164\1\150\1\126\1\162\1\150\1\164\1\122\1\uffff\1\156\1\163\1\44\1\162\1\154\1\157\1\147\1\164\1\uffff\1\145\1\163\1\141\1\163\1\145\1\141\1\157\1\164\1\44\1\146\1\44\1\uffff\1\164\1\151\1\156\1\164\1\156\1\44\2\uffff\1\44\1\147\1\44\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\44\2\uffff\1\141\1\163\1\151\1\141\1\154\1\44\1\uffff\1\156\2\44\2\157\2\44\1\111\1\143\1\141\1\uffff\1\103\1\171\1\156\1\145\1\141\1\143\2\163\1\151\1\144\1\162\1\147\1\120\1\uffff\1\44\1\uffff\1\141\1\147\1\154\2\44\2\uffff\1\44\1\uffff\1\164\1\142\1\164\1\162\1\44\1\145\1\uffff\1\154\1\44\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\44\1\145\1\142\1\157\1\44\1\164\1\44\1\143\1\164\1\44\1\153\1\142\1\123\1\44\1\171\1\141\1\uffff\1\164\1\162\1\171\3\uffff\1\44\2\145\1\44\1\uffff\2\44\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\44\1\151\1\157\1\uffff\1\44\1\162\1\151\1\141\1\124\1\uffff\1\144\1\162\3\uffff\1\44\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\44\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\44\1\155\1\44\1\uffff\1\145\1\151\1\162\1\44\1\156\1\44\1\142\1\171\1\150\1\162\1\154\1\145\1\155\2\44\2\uffff\1\156\1\uffff\1\44\1\164\1\143\1\uffff\1\44\1\uffff\1\154\1\44\1\141\1\44\1\145\1\162\1\145\1\uffff\1\44\1\uffff\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\44\1\156\1\uffff\2\44\1\163\1\44\1\147\2\uffff\1\164\2\uffff\1\44\1\uffff\1\145\1\44\1\uffff\1\44\2\uffff";
+        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\144\1\141\1\143\1\141\1\157\1\141\2\uffff\1\162\1\143\1\141\1\146\1\145\2\141\1\160\1\141\1\145\1\141\10\uffff\1\72\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\2\141\1\156\1\151\1\160\1\157\2\44\1\103\2\154\2\162\1\143\1\162\1\157\2\uffff\1\145\1\154\1\143\1\154\1\44\1\157\1\162\1\164\1\160\1\162\1\165\1\147\1\44\2\141\1\162\1\142\1\141\1\146\1\164\1\44\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\44\13\uffff\1\60\12\uffff\2\44\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\2\143\1\164\1\157\1\156\1\164\2\uffff\1\154\1\163\1\164\1\141\1\44\1\151\1\153\1\164\1\163\1\143\1\162\1\44\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\44\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\145\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\44\1\154\3\uffff\1\151\1\44\1\156\1\164\1\141\1\44\1\151\1\162\1\103\2\143\1\145\1\150\1\143\1\162\1\44\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\44\1\160\1\145\1\164\1\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\44\2\156\1\117\2\162\1\164\2\44\1\150\1\126\1\157\1\150\1\165\1\162\1\111\1\44\1\163\1\141\1\157\1\145\1\44\1\uffff\1\44\1\143\1\uffff\1\144\1\115\1\142\1\uffff\1\143\1\44\1\157\1\164\1\150\1\126\1\162\1\150\1\164\1\122\1\uffff\1\156\1\163\1\44\1\162\1\154\1\157\1\147\1\164\1\uffff\1\145\1\163\1\141\1\163\1\145\1\141\1\157\1\164\1\44\1\146\1\44\1\uffff\1\164\1\151\1\156\1\164\1\156\1\44\2\uffff\1\44\1\151\1\147\1\44\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\44\2\uffff\1\141\1\163\1\151\1\141\1\154\1\44\1\uffff\1\156\2\44\2\157\2\44\1\111\1\143\1\141\1\uffff\1\103\1\171\1\156\1\145\1\141\1\143\2\163\1\151\1\144\1\162\1\147\1\120\1\uffff\1\44\1\uffff\1\141\1\147\1\154\2\44\2\uffff\1\145\1\44\1\uffff\1\164\1\142\1\164\1\162\1\44\1\145\1\uffff\1\154\1\44\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\44\1\145\1\142\1\157\1\44\1\164\1\44\1\143\1\164\1\44\1\153\1\142\1\123\1\44\1\171\1\141\1\uffff\1\164\1\162\1\171\2\uffff\1\167\1\uffff\1\44\2\145\1\44\1\uffff\2\44\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\44\1\151\1\157\1\uffff\1\44\1\162\1\151\1\141\1\124\1\44\1\uffff\1\144\1\162\3\uffff\1\44\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\44\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\uffff\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\44\1\155\1\44\1\uffff\1\145\1\151\1\162\1\44\1\156\1\44\1\142\1\171\1\150\1\162\1\154\1\145\1\155\2\44\2\uffff\1\156\1\uffff\1\44\1\164\1\143\1\uffff\1\44\1\uffff\1\154\1\44\1\141\1\44\1\145\1\162\1\145\1\uffff\1\44\1\uffff\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\44\1\156\1\uffff\2\44\1\163\1\44\1\147\2\uffff\1\164\2\uffff\1\44\1\uffff\1\145\1\44\1\uffff\1\44\2\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\151\1\170\1\171\1\163\2\157\1\162\2\uffff\2\163\1\171\1\162\1\145\1\150\1\157\1\162\1\141\1\150\1\165\10\uffff\1\72\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\2\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\1\154\1\141\1\156\1\151\1\160\1\157\2\172\1\103\1\154\1\156\4\162\1\157\2\uffff\1\145\1\154\1\143\1\154\1\172\1\160\1\162\1\164\1\160\1\162\1\171\1\151\1\172\1\164\1\141\1\164\1\141\1\163\1\164\1\172\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\172\14\uffff\1\154\11\uffff\2\172\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\2\143\1\164\1\157\1\156\1\164\2\uffff\1\154\1\163\1\164\1\141\1\172\1\151\1\153\1\164\1\163\1\143\1\162\1\172\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\172\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\172\1\154\3\uffff\1\151\1\172\1\156\1\164\1\141\1\172\1\151\1\162\1\103\2\143\1\145\1\150\1\143\1\162\1\172\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\172\1\160\1\145\1\164\1\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\172\2\156\1\117\2\162\1\164\2\172\1\150\1\157\1\150\1\165\1\162\1\111\1\172\1\163\1\141\1\157\1\145\1\172\1\uffff\1\172\1\143\1\uffff\1\163\1\115\1\142\1\uffff\1\143\1\172\1\157\1\164\1\150\1\126\1\162\1\150\1\164\1\122\1\uffff\1\156\1\163\1\172\1\162\1\154\1\157\1\147\1\164\1\uffff\1\145\1\163\1\141\1\163\1\145\1\141\1\157\1\164\1\172\1\146\1\172\1\uffff\1\164\1\151\1\156\1\164\1\156\1\172\2\uffff\1\172\1\147\1\172\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\172\2\uffff\1\141\1\163\1\151\1\141\1\154\1\172\1\uffff\1\156\2\172\2\157\2\172\1\111\1\143\1\141\1\uffff\1\103\1\171\1\156\1\145\1\141\1\143\2\163\1\151\1\144\1\162\1\147\1\120\1\uffff\1\172\1\uffff\1\141\1\147\1\154\2\172\2\uffff\1\172\1\uffff\1\164\1\142\1\164\1\162\1\172\1\145\1\uffff\1\154\1\172\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\172\1\145\1\142\1\157\1\172\1\164\1\172\1\143\1\164\1\172\1\153\1\142\1\123\1\172\1\171\1\141\1\uffff\1\164\1\162\1\171\3\uffff\1\172\2\145\1\172\1\uffff\2\172\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\172\1\151\1\157\1\uffff\1\172\1\162\1\151\1\141\1\124\1\uffff\1\144\1\162\3\uffff\1\172\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\172\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\172\1\155\1\172\1\uffff\1\145\1\151\1\162\1\172\1\156\1\172\1\142\1\171\1\150\1\162\1\154\1\145\1\155\2\172\2\uffff\1\156\1\uffff\1\172\1\164\1\143\1\uffff\1\172\1\uffff\1\154\1\172\1\141\1\172\1\145\1\162\1\145\1\uffff\1\172\1\uffff\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\172\1\156\1\uffff\2\172\1\163\1\172\1\147\2\uffff\1\164\2\uffff\1\172\1\uffff\1\145\1\172\1\uffff\1\172\2\uffff";
+        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\151\1\170\1\171\1\163\2\157\1\162\2\uffff\2\163\1\171\1\162\1\145\1\165\1\157\1\162\1\141\1\150\1\165\10\uffff\1\72\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\2\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\1\154\1\141\1\156\1\151\1\160\1\157\2\172\1\103\1\154\1\156\4\162\1\157\2\uffff\1\145\1\154\1\143\1\154\1\172\1\160\1\162\1\164\1\160\1\162\1\171\1\151\1\172\1\164\1\141\1\164\1\142\1\141\1\163\1\164\1\172\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\172\13\uffff\1\154\12\uffff\2\172\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\2\143\1\164\1\157\1\156\1\164\2\uffff\1\154\1\163\1\164\1\141\1\172\1\151\1\153\1\164\1\163\1\143\1\162\1\172\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\172\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\145\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\172\1\154\3\uffff\1\151\1\172\1\156\1\164\1\141\1\172\1\151\1\162\1\103\2\143\1\145\1\150\1\143\1\162\1\172\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\172\1\160\1\145\1\164\1\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\172\2\156\1\117\2\162\1\164\2\172\1\150\1\126\1\157\1\150\1\165\1\162\1\111\1\172\1\163\1\141\1\157\1\145\1\172\1\uffff\1\172\1\143\1\uffff\1\163\1\115\1\142\1\uffff\1\143\1\172\1\157\1\164\1\150\1\126\1\162\1\150\1\164\1\122\1\uffff\1\156\1\163\1\172\1\162\1\154\1\157\1\147\1\164\1\uffff\1\145\1\163\1\141\1\163\1\145\1\141\1\157\1\164\1\172\1\146\1\172\1\uffff\1\164\1\151\1\156\1\164\1\156\1\172\2\uffff\1\172\1\151\1\147\1\172\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\172\2\uffff\1\141\1\163\1\151\1\141\1\154\1\172\1\uffff\1\156\2\172\2\157\2\172\1\111\1\143\1\141\1\uffff\1\103\1\171\1\156\1\145\1\141\1\143\2\163\1\151\1\144\1\162\1\147\1\120\1\uffff\1\172\1\uffff\1\141\1\147\1\154\2\172\2\uffff\1\145\1\172\1\uffff\1\164\1\142\1\164\1\162\1\172\1\145\1\uffff\1\154\1\172\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\172\1\145\1\142\1\157\1\172\1\164\1\172\1\143\1\164\1\172\1\153\1\142\1\123\1\172\1\171\1\141\1\uffff\1\164\1\162\1\171\2\uffff\1\167\1\uffff\1\172\2\145\1\172\1\uffff\2\172\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\172\1\151\1\157\1\uffff\1\172\1\162\1\151\1\141\1\124\1\172\1\uffff\1\144\1\162\3\uffff\1\172\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\172\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\uffff\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\172\1\155\1\172\1\uffff\1\145\1\151\1\162\1\172\1\156\1\172\1\142\1\171\1\150\1\162\1\154\1\145\1\155\2\172\2\uffff\1\156\1\uffff\1\172\1\164\1\143\1\uffff\1\172\1\uffff\1\154\1\172\1\141\1\172\1\145\1\162\1\145\1\uffff\1\172\1\uffff\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\172\1\156\1\uffff\2\172\1\163\1\172\1\147\2\uffff\1\164\2\uffff\1\172\1\uffff\1\145\1\172\1\uffff\1\172\2\uffff";
     static final String DFA21_acceptS =
-        "\25\uffff\1\52\1\53\13\uffff\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\133\4\uffff\1\175\2\176\1\u0081\1\u0082\1\uffff\1\23\1\1\1\2\1\167\1\3\1\161\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\177\1\u0080\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\166\1\160\3\uffff\1\175\27\uffff\1\52\1\53\35\uffff\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\133\1\165\1\141\1\172\1\173\1\uffff\1\174\1\176\1\u0081\1\13\1\11\1\14\1\12\1\21\1\22\23\uffff\1\114\1\136\16\uffff\1\135\12\uffff\1\110\14\uffff\1\146\10\uffff\1\164\1\40\1\170\25\uffff\1\144\6\uffff\1\123\10\uffff\1\154\25\uffff\1\147\2\uffff\1\73\3\uffff\1\137\12\uffff\1\57\10\uffff\1\71\13\uffff\1\171\6\uffff\1\111\1\143\6\uffff\1\106\4\uffff\1\121\1\150\6\uffff\1\45\12\uffff\1\46\15\uffff\1\120\1\uffff\1\152\5\uffff\1\101\1\157\1\uffff\1\115\6\uffff\1\145\5\uffff\1\42\2\uffff\1\76\1\113\2\uffff\1\140\1\43\20\uffff\1\151\3\uffff\1\102\1\153\1\105\4\uffff\1\107\2\uffff\1\41\7\uffff\1\72\3\uffff\1\155\1\uffff\1\51\2\uffff\1\55\3\uffff\1\61\5\uffff\1\142\2\uffff\1\122\1\112\1\50\15\uffff\1\56\2\uffff\1\104\6\uffff\1\44\12\uffff\1\67\17\uffff\1\134\1\163\1\uffff\1\47\3\uffff\1\74\1\uffff\1\103\7\uffff\1\66\1\uffff\1\70\1\uffff\1\54\2\uffff\1\64\1\uffff\1\162\1\uffff\1\62\3\uffff\1\156\5\uffff\1\100\1\63\1\uffff\1\116\1\60\1\uffff\1\77\2\uffff\1\75\1\uffff\1\65\1\117";
+        "\25\uffff\1\52\1\53\13\uffff\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\133\4\uffff\1\176\2\177\1\u0082\1\u0083\1\uffff\1\23\1\1\1\2\1\170\1\3\1\161\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\160\3\uffff\1\176\27\uffff\1\52\1\53\36\uffff\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\133\1\166\1\141\1\173\1\uffff\1\174\1\175\1\177\1\u0082\1\13\1\11\1\14\1\12\1\21\1\22\23\uffff\1\114\1\136\16\uffff\1\135\12\uffff\1\110\15\uffff\1\146\10\uffff\1\165\1\40\1\171\25\uffff\1\144\6\uffff\1\123\10\uffff\1\154\26\uffff\1\147\2\uffff\1\73\3\uffff\1\137\12\uffff\1\57\10\uffff\1\71\13\uffff\1\172\6\uffff\1\111\1\143\7\uffff\1\106\4\uffff\1\121\1\150\6\uffff\1\45\12\uffff\1\46\15\uffff\1\120\1\uffff\1\152\5\uffff\1\101\1\157\2\uffff\1\115\6\uffff\1\145\5\uffff\1\42\2\uffff\1\76\1\113\2\uffff\1\140\1\43\20\uffff\1\151\3\uffff\1\102\1\153\1\uffff\1\105\4\uffff\1\107\2\uffff\1\41\7\uffff\1\72\3\uffff\1\155\1\uffff\1\51\2\uffff\1\55\3\uffff\1\61\6\uffff\1\142\2\uffff\1\122\1\112\1\50\15\uffff\1\56\2\uffff\1\104\4\uffff\1\164\2\uffff\1\44\12\uffff\1\67\17\uffff\1\134\1\163\1\uffff\1\47\3\uffff\1\74\1\uffff\1\103\7\uffff\1\66\1\uffff\1\70\1\uffff\1\54\2\uffff\1\64\1\uffff\1\162\1\uffff\1\62\3\uffff\1\156\5\uffff\1\100\1\63\1\uffff\1\116\1\60\1\uffff\1\77\2\uffff\1\75\1\uffff\1\65\1\117";
     static final String DFA21_specialS =
-        "\1\0\u0247\uffff}>";
+        "\1\0\u024f\uffff}>";
     static final String[] DFA21_transitionS = {
             "\11\62\2\61\2\62\1\61\22\62\1\61\1\11\1\57\1\50\1\56\1\10\1\3\1\60\1\44\1\45\1\6\1\4\1\46\1\5\1\14\1\7\1\53\11\54\1\52\1\42\1\13\1\1\1\12\1\15\1\43\32\56\1\51\1\62\1\47\1\55\1\56\1\62\1\30\1\36\1\34\1\35\1\17\1\22\1\56\1\23\1\21\1\56\1\37\2\56\1\41\1\32\1\24\1\56\1\33\1\20\1\31\1\27\1\16\1\40\3\56\1\25\1\2\1\26\uff82\62",
             "\1\63\1\64",
@@ -4479,12 +4508,12 @@
             "\1\170\6\uffff\1\173\1\171\5\uffff\1\167\2\uffff\1\174\6\uffff\1\172",
             "\1\176\13\uffff\1\175",
             "\1\177",
-            "\1\u0081\6\uffff\1\u0080",
-            "\1\u0084\3\uffff\1\u0083\3\uffff\1\u0082\5\uffff\1\u0085",
-            "\1\u0086\1\uffff\1\u0087",
-            "\1\u0088",
-            "\1\u0089\2\uffff\1\u008a",
-            "\1\u008b\3\uffff\1\u008c\15\uffff\1\u008e\1\uffff\1\u008d",
+            "\1\u0081\6\uffff\1\u0080\14\uffff\1\u0082",
+            "\1\u0085\3\uffff\1\u0084\3\uffff\1\u0083\5\uffff\1\u0086",
+            "\1\u0087\1\uffff\1\u0088",
+            "\1\u0089",
+            "\1\u008a\2\uffff\1\u008b",
+            "\1\u008c\3\uffff\1\u008d\15\uffff\1\u008f\1\uffff\1\u008e",
             "",
             "",
             "",
@@ -4493,16 +4522,16 @@
             "",
             "",
             "",
-            "\1\u0097",
-            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099\6\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099",
-            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
+            "\1\u0098",
+            "\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\130\34\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "",
             "",
             "",
             "",
-            "\1\u009f",
+            "\1\u00a0",
             "",
             "",
             "",
@@ -4525,74 +4554,75 @@
             "",
             "",
             "",
-            "\1\u00a1",
+            "\1\u00a2",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00a3",
+            "\1\u00a4",
             "",
             "",
             "",
             "",
-            "\1\u00a5\5\uffff\1\u00a6",
-            "\1\u00a7",
+            "\1\u00a6\5\uffff\1\u00a7",
             "\1\u00a8",
-            "",
             "\1\u00a9",
+            "",
             "\1\u00aa",
             "\1\u00ab",
             "\1\u00ac",
             "\1\u00ad",
             "\1\u00ae",
             "\1\u00af",
-            "\1\u00b1\12\uffff\1\u00b0",
-            "\1\u00b2",
+            "\1\u00b0",
+            "\1\u00b2\12\uffff\1\u00b1",
             "\1\u00b3",
             "\1\u00b4",
             "\1\u00b5",
             "\1\u00b6",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\22\130\1\u00b7\7\130",
+            "\1\u00b7",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\22\130\1\u00b8\7\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u00ba",
             "\1\u00bb",
-            "\1\u00bc\1\uffff\1\u00bd",
-            "\1\u00be",
+            "\1\u00bc",
+            "\1\u00bd\1\uffff\1\u00be",
             "\1\u00bf",
-            "\1\u00c0\16\uffff\1\u00c1",
-            "\1\u00c2",
+            "\1\u00c0",
+            "\1\u00c1\16\uffff\1\u00c2",
             "\1\u00c3",
-            "",
-            "",
             "\1\u00c4",
+            "",
+            "",
             "\1\u00c5",
             "\1\u00c6",
             "\1\u00c7",
+            "\1\u00c8",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u00c9\1\u00ca",
-            "\1\u00cb",
+            "\1\u00ca\1\u00cb",
             "\1\u00cc",
             "\1\u00cd",
             "\1\u00ce",
-            "\1\u00d0\3\uffff\1\u00cf",
-            "\1\u00d2\1\uffff\1\u00d1",
+            "\1\u00cf",
+            "\1\u00d1\3\uffff\1\u00d0",
+            "\1\u00d3\1\uffff\1\u00d2",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u00d4\16\uffff\1\u00d5\3\uffff\1\u00d6",
-            "\1\u00d7",
-            "\1\u00d8\1\u00d9\1\u00da",
-            "\1\u00db",
-            "\1\u00dd\11\uffff\1\u00dc\2\uffff\1\u00de",
-            "\1\u00df",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u00d5\16\uffff\1\u00d6\3\uffff\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9\1\u00da\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00df\11\uffff\1\u00de\2\uffff\1\u00e0",
             "\1\u00e1",
-            "\1\u00e2",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u00e3",
             "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
             "\1\u00e7",
             "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "",
@@ -4605,8 +4635,8 @@
             "",
             "",
             "",
+            "\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",
             "",
-            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
             "",
             "",
             "",
@@ -4618,8 +4648,6 @@
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u00ec",
-            "\1\u00ed",
             "\1\u00ee",
             "\1\u00ef",
             "\1\u00f0",
@@ -4635,36 +4663,36 @@
             "\1\u00fa",
             "\1\u00fb",
             "\1\u00fc",
-            "",
-            "",
             "\1\u00fd",
             "\1\u00fe",
+            "",
+            "",
             "\1\u00ff",
             "\1\u0100",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0101",
             "\1\u0102",
-            "\1\u0103",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0104",
             "\1\u0105",
             "\1\u0106",
             "\1\u0107",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0108",
             "\1\u0109",
-            "\1\u010a",
-            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u010b",
             "\1\u010c",
+            "",
             "\1\u010d",
             "\1\u010e",
             "\1\u010f",
             "\1\u0110",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0111",
             "\1\u0112",
-            "\1\u0113",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0114",
-            "",
             "\1\u0115",
             "\1\u0116",
+            "",
             "\1\u0117",
             "\1\u0118",
             "\1\u0119",
@@ -4675,161 +4703,161 @@
             "\1\u011e",
             "\1\u011f",
             "\1\u0120",
-            "",
             "\1\u0121",
             "\1\u0122",
             "\1\u0123",
+            "",
             "\1\u0124",
             "\1\u0125",
             "\1\u0126",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0127",
             "\1\u0128",
-            "",
-            "",
-            "",
             "\1\u0129",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u012b",
+            "",
+            "",
+            "",
             "\1\u012c",
-            "\1\u012d",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u012e",
             "\1\u012f",
             "\1\u0130",
-            "\1\u0131",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0132",
             "\1\u0133",
             "\1\u0134",
             "\1\u0135",
             "\1\u0136",
             "\1\u0137",
-            "\1\130\13\uffff\12\130\7\uffff\24\130\1\u0138\5\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0138",
+            "\1\u0139",
             "\1\u013a",
-            "\1\u013b",
-            "\1\u013c",
+            "\1\130\13\uffff\12\130\7\uffff\24\130\1\u013b\5\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u013d",
             "\1\u013e",
-            "",
             "\1\u013f",
             "\1\u0140",
-            "\1\130\13\uffff\12\130\7\uffff\22\130\1\u0141\7\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0143",
-            "\1\u0144",
-            "\1\u0145",
+            "\1\u0141",
             "",
+            "\1\u0142",
+            "\1\u0143",
+            "\1\130\13\uffff\12\130\7\uffff\22\130\1\u0144\7\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0146",
             "\1\u0147",
             "\1\u0148",
+            "",
             "\1\u0149",
             "\1\u014a",
             "\1\u014b",
             "\1\u014c",
             "\1\u014d",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u014e",
             "\1\u014f",
             "\1\u0150",
-            "\1\u0151",
+            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0152",
             "\1\u0153",
             "\1\u0154",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0155",
+            "\1\u0156",
             "\1\u0157",
-            "\1\u0158",
-            "\1\u0159",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u015a",
             "\1\u015b",
             "\1\u015c",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u015d",
             "\1\u015e",
             "\1\u015f",
             "\1\u0160",
-            "\1\u0161",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0162",
+            "\1\u0163",
             "\1\u0164",
+            "\1\u0165",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u0165\16\uffff\1\u0166",
-            "\1\u0167",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0168",
             "",
-            "\1\u0169",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0169\16\uffff\1\u016a",
             "\1\u016b",
             "\1\u016c",
+            "",
             "\1\u016d",
-            "\1\u016e",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u016f",
             "\1\u0170",
             "\1\u0171",
             "\1\u0172",
-            "",
             "\1\u0173",
             "\1\u0174",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0175",
             "\1\u0176",
+            "",
             "\1\u0177",
             "\1\u0178",
-            "\1\u0179",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u017a",
-            "",
             "\1\u017b",
             "\1\u017c",
             "\1\u017d",
             "\1\u017e",
+            "",
             "\1\u017f",
             "\1\u0180",
             "\1\u0181",
             "\1\u0182",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0183",
             "\1\u0184",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
+            "\1\u0185",
             "\1\u0186",
-            "\1\u0187",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0188",
-            "\1\u0189",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
             "\1\u018a",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u018b",
+            "\1\u018c",
             "\1\u018d",
+            "\1\u018e",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u018f",
-            "\1\u0190",
+            "",
+            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0191",
-            "",
             "\1\u0192",
-            "\1\u0193",
-            "\1\u0194",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
-            "",
+            "\1\u0194",
+            "\1\u0195",
             "\1\u0196",
+            "",
             "\1\u0197",
             "\1\u0198",
             "\1\u0199",
-            "\1\u019a",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
+            "",
+            "\1\u019b",
             "\1\u019c",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\4\130\1\u019d\25\130",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01a0",
+            "",
             "\1\u01a1",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\4\130\1\u01a2\25\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01a4",
             "\1\u01a5",
             "\1\u01a6",
-            "",
-            "\1\u01a7",
-            "\1\u01a8",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01a9",
             "\1\u01aa",
             "\1\u01ab",
+            "",
             "\1\u01ac",
             "\1\u01ad",
             "\1\u01ae",
@@ -4838,198 +4866,207 @@
             "\1\u01b1",
             "\1\u01b2",
             "\1\u01b3",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
+            "\1\u01b4",
             "\1\u01b5",
             "\1\u01b6",
             "\1\u01b7",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
+            "\1\u01b8",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
+            "\1\u01ba",
             "\1\u01bb",
             "\1\u01bc",
-            "\1\u01bd",
-            "\1\u01be",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01c0",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
+            "",
+            "\1\u01bf",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "\1\u01c1",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u01c2",
             "\1\u01c3",
             "\1\u01c4",
-            "\1\u01c5",
-            "",
-            "\1\u01c6",
-            "\1\u01c7",
-            "",
-            "",
-            "\1\u01c8",
-            "\1\u01c9",
-            "",
-            "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u01c6",
+            "",
+            "\1\u01c7",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u01c9",
+            "\1\u01ca",
             "\1\u01cb",
+            "",
             "\1\u01cc",
             "\1\u01cd",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
+            "",
+            "\1\u01ce",
             "\1\u01cf",
+            "",
+            "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01d1",
             "\1\u01d2",
+            "\1\u01d3",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01d4",
             "\1\u01d5",
-            "\1\u01d6",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u01d7",
             "\1\u01d8",
-            "\1\u01d9",
-            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01da",
             "\1\u01db",
             "\1\u01dc",
-            "",
-            "",
-            "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01de",
             "\1\u01df",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u01e0",
+            "\1\u01e1",
+            "\1\u01e2",
+            "",
             "",
             "\1\u01e3",
-            "\1\u01e4",
+            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01e5",
             "\1\u01e6",
-            "\1\u01e7",
-            "\1\u01e8",
-            "\1\u01e9",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "\1\u01ea",
             "\1\u01eb",
             "\1\u01ec",
-            "",
             "\1\u01ed",
-            "",
             "\1\u01ee",
             "\1\u01ef",
+            "\1\u01f0",
             "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01f1",
             "\1\u01f2",
+            "\1\u01f3",
             "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01f4",
+            "",
             "\1\u01f5",
             "\1\u01f6",
-            "\1\u01f7",
             "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01f8",
             "\1\u01f9",
             "",
-            "",
-            "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u01fb",
             "\1\u01fc",
             "\1\u01fd",
             "\1\u01fe",
-            "\1\u01ff",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
             "\1\u0200",
             "\1\u0201",
-            "\1\u0202",
+            "",
+            "",
+            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0203",
             "\1\u0204",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0205",
             "\1\u0206",
-            "",
             "\1\u0207",
             "\1\u0208",
-            "",
             "\1\u0209",
             "\1\u020a",
             "\1\u020b",
             "\1\u020c",
-            "\1\u020d",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u020e",
             "",
             "\1\u020f",
             "\1\u0210",
+            "",
             "\1\u0211",
             "\1\u0212",
             "\1\u0213",
             "\1\u0214",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0217",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
+            "\1\u0215",
+            "\1\u0216",
+            "",
+            "\1\u0217",
+            "\1\u0218",
             "\1\u0219",
             "\1\u021a",
             "\1\u021b",
+            "\1\u021c",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u021d",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u021f",
-            "\1\u0220",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
             "\1\u0221",
             "\1\u0222",
             "\1\u0223",
-            "\1\u0224",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0225",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\3\130\1\u0227\26\130",
-            "",
-            "",
+            "\1\u0227",
+            "\1\u0228",
             "\1\u0229",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u022a",
             "\1\u022b",
             "\1\u022c",
+            "\1\u022d",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\3\130\1\u022f\26\130",
+            "",
+            "",
+            "\1\u0231",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
-            "\1\u022e",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0230",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0232",
             "\1\u0233",
             "\1\u0234",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "\1\u0236",
-            "",
-            "\1\u0237",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0238",
-            "",
-            "\1\u0239",
-            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u023a",
+            "\1\u023b",
+            "\1\u023c",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u023d",
             "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u023e",
+            "",
+            "\1\u023f",
             "\1\u0240",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
+            "\1\u0241",
+            "",
             "\1\u0242",
             "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0245",
             "",
-            "\1\u0243",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0248",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u024a",
+            "",
+            "",
+            "\1\u024b",
             "",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u0245",
+            "\1\u024d",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
@@ -5067,7 +5104,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 | T__132 | T__133 | 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.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslParser.java b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslParser.java
index 912ae5e..f76a3bc 100644
--- a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslParser.java
+++ b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalPerspectiveDslParser 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'", "'horizontal'", "'vertical'", "'package'", "'{'", "'}'", "'perspective'", "'process'", "'usertask'", "'icon'", "'accessibility'", "'toolbar'", "'eventManager'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'synchronize'", "'part'", "'iconURI'", "'view'", "'targetPart'", "'allowedSources'", "'select'", "'readOnlyTable'", "'editableTable'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'title'", "'name'", "'browser'", "'url'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'describedBy'", "'isClosable'", "'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'", "'horizontal'", "'vertical'", "'package'", "'{'", "'}'", "'perspective'", "'process'", "'usertask'", "'icon'", "'accessibility'", "'toolbar'", "'eventManager'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'synchronize'", "'part'", "'iconURI'", "'view'", "'targetPart'", "'allowedSources'", "'select'", "'readOnlyTable'", "'editableTable'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'title'", "'name'", "'browser'", "'url'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'describedBy'", "'isClosable'", "'cubeView'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
     };
     public static final int RULE_HEX=6;
     public static final int T__50=50;
@@ -57,6 +57,7 @@
     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;
@@ -10171,28 +10172,128 @@
     // $ANTLR end "rule__PerspectiveView__Alternatives"
 
 
+    // $ANTLR start "rule__PerspectiveBrowser__Alternatives_2"
+    // InternalPerspectiveDsl.g:2963:1: rule__PerspectiveBrowser__Alternatives_2 : ( ( ( rule__PerspectiveBrowser__Group_2_0__0 ) ) | ( ( rule__PerspectiveBrowser__CubeViewAssignment_2_1 ) ) );
+    public final void rule__PerspectiveBrowser__Alternatives_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:2967:1: ( ( ( rule__PerspectiveBrowser__Group_2_0__0 ) ) | ( ( rule__PerspectiveBrowser__CubeViewAssignment_2_1 ) ) )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==95) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==128) ) {
+                alt5=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // InternalPerspectiveDsl.g:2968:2: ( ( rule__PerspectiveBrowser__Group_2_0__0 ) )
+                    {
+                    // InternalPerspectiveDsl.g:2968:2: ( ( rule__PerspectiveBrowser__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:2969:3: ( rule__PerspectiveBrowser__Group_2_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPerspectiveBrowserAccess().getGroup_2_0()); 
+                    }
+                    // InternalPerspectiveDsl.g:2970:3: ( rule__PerspectiveBrowser__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:2970:4: rule__PerspectiveBrowser__Group_2_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PerspectiveBrowser__Group_2_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPerspectiveBrowserAccess().getGroup_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalPerspectiveDsl.g:2974:2: ( ( rule__PerspectiveBrowser__CubeViewAssignment_2_1 ) )
+                    {
+                    // InternalPerspectiveDsl.g:2974:2: ( ( rule__PerspectiveBrowser__CubeViewAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:2975:3: ( rule__PerspectiveBrowser__CubeViewAssignment_2_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPerspectiveBrowserAccess().getCubeViewAssignment_2_1()); 
+                    }
+                    // InternalPerspectiveDsl.g:2976:3: ( rule__PerspectiveBrowser__CubeViewAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:2976:4: rule__PerspectiveBrowser__CubeViewAssignment_2_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PerspectiveBrowser__CubeViewAssignment_2_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPerspectiveBrowserAccess().getCubeViewAssignment_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectiveBrowser__Alternatives_2"
+
+
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2"
-    // InternalPerspectiveDsl.g:2963: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 ) ) );
+    // InternalPerspectiveDsl.g:2984: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 {
-            // InternalPerspectiveDsl.g:2967:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
-            int alt5=4;
-            alt5 = dfa5.predict(input);
-            switch (alt5) {
+            // InternalPerspectiveDsl.g:2988:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
+            int alt6=4;
+            alt6 = dfa6.predict(input);
+            switch (alt6) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2968:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:2989:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2968:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:2969:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:2989:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:2990:3: ( rule__XImportDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:2970:3: ( rule__XImportDeclaration__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:2970:4: rule__XImportDeclaration__Group_2_0__0
+                    // InternalPerspectiveDsl.g:2991:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:2991:4: rule__XImportDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_0__0();
@@ -10212,16 +10313,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2974:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:2995:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:2974:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
-                    // InternalPerspectiveDsl.g:2975:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:2995:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:2996:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:2976:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
-                    // InternalPerspectiveDsl.g:2976:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
+                    // InternalPerspectiveDsl.g:2997:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:2997:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedTypeAssignment_2_1();
@@ -10241,16 +10342,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:2980:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalPerspectiveDsl.g:3001:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
                     {
-                    // InternalPerspectiveDsl.g:2980:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
-                    // InternalPerspectiveDsl.g:2981:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalPerspectiveDsl.g:3001:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalPerspectiveDsl.g:3002:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
                     }
-                    // InternalPerspectiveDsl.g:2982:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
-                    // InternalPerspectiveDsl.g:2982:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+                    // InternalPerspectiveDsl.g:3003:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalPerspectiveDsl.g:3003:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedNamespaceAssignment_2_2();
@@ -10270,16 +10371,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:2986:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalPerspectiveDsl.g:3007:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2986:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
-                    // InternalPerspectiveDsl.g:2987:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalPerspectiveDsl.g:3007:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalPerspectiveDsl.g:3008:3: ( rule__XImportDeclaration__Group_2_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
                     }
-                    // InternalPerspectiveDsl.g:2988:3: ( rule__XImportDeclaration__Group_2_3__0 )
-                    // InternalPerspectiveDsl.g:2988:4: rule__XImportDeclaration__Group_2_3__0
+                    // InternalPerspectiveDsl.g:3009:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalPerspectiveDsl.g:3009:4: rule__XImportDeclaration__Group_2_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_3__0();
@@ -10316,41 +10417,41 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2_0_3"
-    // InternalPerspectiveDsl.g:2996:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
+    // InternalPerspectiveDsl.g:3017: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 {
-            // InternalPerspectiveDsl.g:3000:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
-            int alt6=2;
-            int LA6_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3021:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
+            int alt7=2;
+            int LA7_0 = input.LA(1);
 
-            if ( (LA6_0==36) ) {
-                alt6=1;
+            if ( (LA7_0==36) ) {
+                alt7=1;
             }
-            else if ( (LA6_0==RULE_ID) ) {
-                alt6=2;
+            else if ( (LA7_0==RULE_ID) ) {
+                alt7=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 6, 0, input);
+                    new NoViableAltException("", 7, 0, input);
 
                 throw nvae;
             }
-            switch (alt6) {
+            switch (alt7) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3001:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalPerspectiveDsl.g:3022:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3001:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
-                    // InternalPerspectiveDsl.g:3002:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalPerspectiveDsl.g:3022:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalPerspectiveDsl.g:3023:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3003:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
-                    // InternalPerspectiveDsl.g:3003:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+                    // InternalPerspectiveDsl.g:3024:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalPerspectiveDsl.g:3024:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__WildcardAssignment_2_0_3_0();
@@ -10370,16 +10471,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3007:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalPerspectiveDsl.g:3028:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3007:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
-                    // InternalPerspectiveDsl.g:3008:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalPerspectiveDsl.g:3028:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalPerspectiveDsl.g:3029:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3009:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
-                    // InternalPerspectiveDsl.g:3009:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+                    // InternalPerspectiveDsl.g:3030:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalPerspectiveDsl.g:3030:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__MemberNameAssignment_2_0_3_1();
@@ -10416,27 +10517,27 @@
 
 
     // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
-    // InternalPerspectiveDsl.g:3017:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    // InternalPerspectiveDsl.g:3038: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 {
-            // InternalPerspectiveDsl.g:3021:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
-            int alt7=2;
-            alt7 = dfa7.predict(input);
-            switch (alt7) {
+            // InternalPerspectiveDsl.g:3042:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            int alt8=2;
+            alt8 = dfa8.predict(input);
+            switch (alt8) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3022:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3022:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3023:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3044:3: ( rule__XAnnotation__Group_3_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3024:3: ( rule__XAnnotation__Group_3_1_0__0 )
-                    // InternalPerspectiveDsl.g:3024:4: rule__XAnnotation__Group_3_1_0__0
+                    // InternalPerspectiveDsl.g:3045:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalPerspectiveDsl.g:3045:4: rule__XAnnotation__Group_3_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3_1_0__0();
@@ -10456,16 +10557,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3028:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalPerspectiveDsl.g:3049:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3028:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    // InternalPerspectiveDsl.g:3029:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalPerspectiveDsl.g:3049:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalPerspectiveDsl.g:3050:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3030:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    // InternalPerspectiveDsl.g:3030:4: rule__XAnnotation__ValueAssignment_3_1_1
+                    // InternalPerspectiveDsl.g:3051:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalPerspectiveDsl.g:3051:4: rule__XAnnotation__ValueAssignment_3_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__ValueAssignment_3_1_1();
@@ -10502,27 +10603,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
-    // InternalPerspectiveDsl.g:3038:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3059: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 {
-            // InternalPerspectiveDsl.g:3042:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
-            int alt8=2;
-            alt8 = dfa8.predict(input);
-            switch (alt8) {
+            // InternalPerspectiveDsl.g:3063:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            int alt9=2;
+            alt9 = dfa9.predict(input);
+            switch (alt9) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:3044:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3065:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3045:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    // InternalPerspectiveDsl.g:3045:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    // InternalPerspectiveDsl.g:3066:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3066:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -10542,16 +10643,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3049:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3070:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3049:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:3050:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3070:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3071:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3051:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    // InternalPerspectiveDsl.g:3051:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    // InternalPerspectiveDsl.g:3072:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3072:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1__0();
@@ -10588,27 +10689,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
-    // InternalPerspectiveDsl.g:3059:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    // InternalPerspectiveDsl.g:3080:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
     public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3063:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
-            int alt9=2;
-            alt9 = dfa9.predict(input);
-            switch (alt9) {
+            // InternalPerspectiveDsl.g:3084:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            int alt10=2;
+            alt10 = dfa10.predict(input);
+            switch (alt10) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3085:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:3065:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3085:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3086:3: ( rule__XAnnotationElementValue__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3066:3: ( rule__XAnnotationElementValue__Group_0__0 )
-                    // InternalPerspectiveDsl.g:3066:4: rule__XAnnotationElementValue__Group_0__0
+                    // InternalPerspectiveDsl.g:3087:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3087:4: rule__XAnnotationElementValue__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0__0();
@@ -10628,10 +10729,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3070:2: ( ruleXAnnotationOrExpression )
+                    // InternalPerspectiveDsl.g:3091:2: ( ruleXAnnotationOrExpression )
                     {
-                    // InternalPerspectiveDsl.g:3070:2: ( ruleXAnnotationOrExpression )
-                    // InternalPerspectiveDsl.g:3071:3: ruleXAnnotationOrExpression
+                    // InternalPerspectiveDsl.g:3091:2: ( ruleXAnnotationOrExpression )
+                    // InternalPerspectiveDsl.g:3092:3: ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
@@ -10668,35 +10769,35 @@
 
 
     // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
-    // InternalPerspectiveDsl.g:3080:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    // InternalPerspectiveDsl.g:3101:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
     public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3084:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
-            int alt10=2;
-            int LA10_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3105:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
 
-            if ( (LA10_0==97) ) {
-                alt10=1;
+            if ( (LA11_0==97) ) {
+                alt11=1;
             }
-            else if ( ((LA10_0>=RULE_ID && LA10_0<=RULE_DECIMAL)||LA10_0==27||(LA10_0>=34 && LA10_0<=35)||LA10_0==40||(LA10_0>=45 && LA10_0<=50)||LA10_0==54||LA10_0==98||(LA10_0>=102 && LA10_0<=103)||LA10_0==106||LA10_0==108||(LA10_0>=112 && LA10_0<=120)||LA10_0==122||LA10_0==133) ) {
-                alt10=2;
+            else if ( ((LA11_0>=RULE_ID && LA11_0<=RULE_DECIMAL)||LA11_0==27||(LA11_0>=34 && LA11_0<=35)||LA11_0==40||(LA11_0>=45 && LA11_0<=50)||LA11_0==54||LA11_0==98||(LA11_0>=102 && LA11_0<=103)||LA11_0==106||LA11_0==108||(LA11_0>=112 && LA11_0<=120)||LA11_0==122||LA11_0==134) ) {
+                alt11=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 10, 0, input);
+                    new NoViableAltException("", 11, 0, input);
 
                 throw nvae;
             }
-            switch (alt10) {
+            switch (alt11) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3085:2: ( ruleXAnnotation )
+                    // InternalPerspectiveDsl.g:3106:2: ( ruleXAnnotation )
                     {
-                    // InternalPerspectiveDsl.g:3085:2: ( ruleXAnnotation )
-                    // InternalPerspectiveDsl.g:3086:3: ruleXAnnotation
+                    // InternalPerspectiveDsl.g:3106:2: ( ruleXAnnotation )
+                    // InternalPerspectiveDsl.g:3107:3: ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
@@ -10716,10 +10817,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3091:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:3112:2: ( ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:3091:2: ( ruleXExpression )
-                    // InternalPerspectiveDsl.g:3092:3: ruleXExpression
+                    // InternalPerspectiveDsl.g:3112:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:3113:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -10756,29 +10857,29 @@
 
 
     // $ANTLR start "rule__XAssignment__Alternatives"
-    // InternalPerspectiveDsl.g:3101:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3122: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 {
-            // InternalPerspectiveDsl.g:3105:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
-            int alt11=2;
+            // InternalPerspectiveDsl.g:3126:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            int alt12=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA11_1 = input.LA(2);
+                int LA12_1 = input.LA(2);
 
-                if ( (LA11_1==13) ) {
-                    alt11=1;
+                if ( (LA12_1==EOF||(LA12_1>=RULE_ID && LA12_1<=RULE_DECIMAL)||(LA12_1>=14 && LA12_1<=50)||(LA12_1>=54 && LA12_1<=55)||LA12_1==96||(LA12_1>=98 && LA12_1<=123)||(LA12_1>=130 && LA12_1<=131)||(LA12_1>=133 && LA12_1<=134)) ) {
+                    alt12=2;
                 }
-                else if ( (LA11_1==EOF||(LA11_1>=RULE_ID && LA11_1<=RULE_DECIMAL)||(LA11_1>=14 && LA11_1<=50)||(LA11_1>=54 && LA11_1<=55)||LA11_1==96||(LA11_1>=98 && LA11_1<=123)||(LA11_1>=129 && LA11_1<=130)||(LA11_1>=132 && LA11_1<=133)) ) {
-                    alt11=2;
+                else if ( (LA12_1==13) ) {
+                    alt12=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 11, 1, input);
+                        new NoViableAltException("", 12, 1, input);
 
                     throw nvae;
                 }
@@ -10786,18 +10887,18 @@
                 break;
             case 45:
                 {
-                int LA11_2 = input.LA(2);
+                int LA12_2 = input.LA(2);
 
-                if ( (LA11_2==EOF||(LA11_2>=RULE_ID && LA11_2<=RULE_DECIMAL)||(LA11_2>=14 && LA11_2<=50)||(LA11_2>=54 && LA11_2<=55)||LA11_2==96||(LA11_2>=98 && LA11_2<=123)||(LA11_2>=129 && LA11_2<=130)||(LA11_2>=132 && LA11_2<=133)) ) {
-                    alt11=2;
+                if ( (LA12_2==13) ) {
+                    alt12=1;
                 }
-                else if ( (LA11_2==13) ) {
-                    alt11=1;
+                else if ( (LA12_2==EOF||(LA12_2>=RULE_ID && LA12_2<=RULE_DECIMAL)||(LA12_2>=14 && LA12_2<=50)||(LA12_2>=54 && LA12_2<=55)||LA12_2==96||(LA12_2>=98 && LA12_2<=123)||(LA12_2>=130 && LA12_2<=131)||(LA12_2>=133 && LA12_2<=134)) ) {
+                    alt12=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 11, 2, input);
+                        new NoViableAltException("", 12, 2, input);
 
                     throw nvae;
                 }
@@ -10805,18 +10906,18 @@
                 break;
             case 46:
                 {
-                int LA11_3 = input.LA(2);
+                int LA12_3 = input.LA(2);
 
-                if ( (LA11_3==13) ) {
-                    alt11=1;
+                if ( (LA12_3==13) ) {
+                    alt12=1;
                 }
-                else if ( (LA11_3==EOF||(LA11_3>=RULE_ID && LA11_3<=RULE_DECIMAL)||(LA11_3>=14 && LA11_3<=50)||(LA11_3>=54 && LA11_3<=55)||LA11_3==96||(LA11_3>=98 && LA11_3<=123)||(LA11_3>=129 && LA11_3<=130)||(LA11_3>=132 && LA11_3<=133)) ) {
-                    alt11=2;
+                else if ( (LA12_3==EOF||(LA12_3>=RULE_ID && LA12_3<=RULE_DECIMAL)||(LA12_3>=14 && LA12_3<=50)||(LA12_3>=54 && LA12_3<=55)||LA12_3==96||(LA12_3>=98 && LA12_3<=123)||(LA12_3>=130 && LA12_3<=131)||(LA12_3>=133 && LA12_3<=134)) ) {
+                    alt12=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 11, 3, input);
+                        new NoViableAltException("", 12, 3, input);
 
                     throw nvae;
                 }
@@ -10824,18 +10925,18 @@
                 break;
             case 47:
                 {
-                int LA11_4 = input.LA(2);
+                int LA12_4 = input.LA(2);
 
-                if ( (LA11_4==EOF||(LA11_4>=RULE_ID && LA11_4<=RULE_DECIMAL)||(LA11_4>=14 && LA11_4<=50)||(LA11_4>=54 && LA11_4<=55)||LA11_4==96||(LA11_4>=98 && LA11_4<=123)||(LA11_4>=129 && LA11_4<=130)||(LA11_4>=132 && LA11_4<=133)) ) {
-                    alt11=2;
+                if ( (LA12_4==EOF||(LA12_4>=RULE_ID && LA12_4<=RULE_DECIMAL)||(LA12_4>=14 && LA12_4<=50)||(LA12_4>=54 && LA12_4<=55)||LA12_4==96||(LA12_4>=98 && LA12_4<=123)||(LA12_4>=130 && LA12_4<=131)||(LA12_4>=133 && LA12_4<=134)) ) {
+                    alt12=2;
                 }
-                else if ( (LA11_4==13) ) {
-                    alt11=1;
+                else if ( (LA12_4==13) ) {
+                    alt12=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 11, 4, input);
+                        new NoViableAltException("", 12, 4, input);
 
                     throw nvae;
                 }
@@ -10843,18 +10944,18 @@
                 break;
             case 48:
                 {
-                int LA11_5 = input.LA(2);
+                int LA12_5 = input.LA(2);
 
-                if ( (LA11_5==13) ) {
-                    alt11=1;
+                if ( (LA12_5==13) ) {
+                    alt12=1;
                 }
-                else if ( (LA11_5==EOF||(LA11_5>=RULE_ID && LA11_5<=RULE_DECIMAL)||(LA11_5>=14 && LA11_5<=50)||(LA11_5>=54 && LA11_5<=55)||LA11_5==96||(LA11_5>=98 && LA11_5<=123)||(LA11_5>=129 && LA11_5<=130)||(LA11_5>=132 && LA11_5<=133)) ) {
-                    alt11=2;
+                else if ( (LA12_5==EOF||(LA12_5>=RULE_ID && LA12_5<=RULE_DECIMAL)||(LA12_5>=14 && LA12_5<=50)||(LA12_5>=54 && LA12_5<=55)||LA12_5==96||(LA12_5>=98 && LA12_5<=123)||(LA12_5>=130 && LA12_5<=131)||(LA12_5>=133 && LA12_5<=134)) ) {
+                    alt12=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 11, 5, input);
+                        new NoViableAltException("", 12, 5, input);
 
                     throw nvae;
                 }
@@ -10886,31 +10987,31 @@
             case 119:
             case 120:
             case 122:
-            case 133:
+            case 134:
                 {
-                alt11=2;
+                alt12=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 11, 0, input);
+                    new NoViableAltException("", 12, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt11) {
+            switch (alt12) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3106:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3127:2: ( ( rule__XAssignment__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3106:2: ( ( rule__XAssignment__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:3107:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3127:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3128:3: ( rule__XAssignment__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3108:3: ( rule__XAssignment__Group_0__0 )
-                    // InternalPerspectiveDsl.g:3108:4: rule__XAssignment__Group_0__0
+                    // InternalPerspectiveDsl.g:3129:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3129:4: rule__XAssignment__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_0__0();
@@ -10930,16 +11031,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3112:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3133:2: ( ( rule__XAssignment__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3112:2: ( ( rule__XAssignment__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:3113:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3133:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3134:3: ( rule__XAssignment__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3114:3: ( rule__XAssignment__Group_1__0 )
-                    // InternalPerspectiveDsl.g:3114:4: rule__XAssignment__Group_1__0
+                    // InternalPerspectiveDsl.g:3135:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3135:4: rule__XAssignment__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1__0();
@@ -10976,64 +11077,64 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Alternatives"
-    // InternalPerspectiveDsl.g:3122:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    // InternalPerspectiveDsl.g:3143: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 {
-            // InternalPerspectiveDsl.g:3126:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
-            int alt12=7;
+            // InternalPerspectiveDsl.g:3147:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            int alt13=7;
             switch ( input.LA(1) ) {
             case 16:
                 {
-                alt12=1;
+                alt13=1;
                 }
                 break;
             case 17:
                 {
-                alt12=2;
+                alt13=2;
                 }
                 break;
             case 18:
                 {
-                alt12=3;
+                alt13=3;
                 }
                 break;
             case 19:
                 {
-                alt12=4;
+                alt13=4;
                 }
                 break;
             case 20:
                 {
-                alt12=5;
+                alt13=5;
                 }
                 break;
             case 27:
                 {
-                alt12=6;
+                alt13=6;
                 }
                 break;
             case 26:
                 {
-                alt12=7;
+                alt13=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
+                    new NoViableAltException("", 13, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt12) {
+            switch (alt13) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3127:2: ( '+=' )
+                    // InternalPerspectiveDsl.g:3148:2: ( '+=' )
                     {
-                    // InternalPerspectiveDsl.g:3127:2: ( '+=' )
-                    // InternalPerspectiveDsl.g:3128:3: '+='
+                    // InternalPerspectiveDsl.g:3148:2: ( '+=' )
+                    // InternalPerspectiveDsl.g:3149:3: '+='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
@@ -11049,10 +11150,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3133:2: ( '-=' )
+                    // InternalPerspectiveDsl.g:3154:2: ( '-=' )
                     {
-                    // InternalPerspectiveDsl.g:3133:2: ( '-=' )
-                    // InternalPerspectiveDsl.g:3134:3: '-='
+                    // InternalPerspectiveDsl.g:3154:2: ( '-=' )
+                    // InternalPerspectiveDsl.g:3155:3: '-='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
@@ -11068,10 +11169,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3139:2: ( '*=' )
+                    // InternalPerspectiveDsl.g:3160:2: ( '*=' )
                     {
-                    // InternalPerspectiveDsl.g:3139:2: ( '*=' )
-                    // InternalPerspectiveDsl.g:3140:3: '*='
+                    // InternalPerspectiveDsl.g:3160:2: ( '*=' )
+                    // InternalPerspectiveDsl.g:3161:3: '*='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
@@ -11087,10 +11188,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3145:2: ( '/=' )
+                    // InternalPerspectiveDsl.g:3166:2: ( '/=' )
                     {
-                    // InternalPerspectiveDsl.g:3145:2: ( '/=' )
-                    // InternalPerspectiveDsl.g:3146:3: '/='
+                    // InternalPerspectiveDsl.g:3166:2: ( '/=' )
+                    // InternalPerspectiveDsl.g:3167:3: '/='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
@@ -11106,10 +11207,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3151:2: ( '%=' )
+                    // InternalPerspectiveDsl.g:3172:2: ( '%=' )
                     {
-                    // InternalPerspectiveDsl.g:3151:2: ( '%=' )
-                    // InternalPerspectiveDsl.g:3152:3: '%='
+                    // InternalPerspectiveDsl.g:3172:2: ( '%=' )
+                    // InternalPerspectiveDsl.g:3173:3: '%='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
@@ -11125,16 +11226,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3157:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3178:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3157:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    // InternalPerspectiveDsl.g:3158:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3178:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3179:3: ( rule__OpMultiAssign__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                     }
-                    // InternalPerspectiveDsl.g:3159:3: ( rule__OpMultiAssign__Group_5__0 )
-                    // InternalPerspectiveDsl.g:3159:4: rule__OpMultiAssign__Group_5__0
+                    // InternalPerspectiveDsl.g:3180:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3180:4: rule__OpMultiAssign__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_5__0();
@@ -11154,16 +11255,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3163:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3184:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3163:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    // InternalPerspectiveDsl.g:3164:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3184:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3185:3: ( rule__OpMultiAssign__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                     }
-                    // InternalPerspectiveDsl.g:3165:3: ( rule__OpMultiAssign__Group_6__0 )
-                    // InternalPerspectiveDsl.g:3165:4: rule__OpMultiAssign__Group_6__0
+                    // InternalPerspectiveDsl.g:3186:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3186:4: rule__OpMultiAssign__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_6__0();
@@ -11200,49 +11301,49 @@
 
 
     // $ANTLR start "rule__OpEquality__Alternatives"
-    // InternalPerspectiveDsl.g:3173:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    // InternalPerspectiveDsl.g:3194:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
     public final void rule__OpEquality__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3177:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
-            int alt13=4;
+            // InternalPerspectiveDsl.g:3198:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            int alt14=4;
             switch ( input.LA(1) ) {
             case 21:
                 {
-                alt13=1;
+                alt14=1;
                 }
                 break;
             case 22:
                 {
-                alt13=2;
+                alt14=2;
                 }
                 break;
             case 23:
                 {
-                alt13=3;
+                alt14=3;
                 }
                 break;
             case 24:
                 {
-                alt13=4;
+                alt14=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 13, 0, input);
+                    new NoViableAltException("", 14, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt13) {
+            switch (alt14) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3178:2: ( '==' )
+                    // InternalPerspectiveDsl.g:3199:2: ( '==' )
                     {
-                    // InternalPerspectiveDsl.g:3178:2: ( '==' )
-                    // InternalPerspectiveDsl.g:3179:3: '=='
+                    // InternalPerspectiveDsl.g:3199:2: ( '==' )
+                    // InternalPerspectiveDsl.g:3200:3: '=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
@@ -11258,10 +11359,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3184:2: ( '!=' )
+                    // InternalPerspectiveDsl.g:3205:2: ( '!=' )
                     {
-                    // InternalPerspectiveDsl.g:3184:2: ( '!=' )
-                    // InternalPerspectiveDsl.g:3185:3: '!='
+                    // InternalPerspectiveDsl.g:3205:2: ( '!=' )
+                    // InternalPerspectiveDsl.g:3206:3: '!='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
@@ -11277,10 +11378,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3190:2: ( '===' )
+                    // InternalPerspectiveDsl.g:3211:2: ( '===' )
                     {
-                    // InternalPerspectiveDsl.g:3190:2: ( '===' )
-                    // InternalPerspectiveDsl.g:3191:3: '==='
+                    // InternalPerspectiveDsl.g:3211:2: ( '===' )
+                    // InternalPerspectiveDsl.g:3212:3: '==='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
@@ -11296,10 +11397,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3196:2: ( '!==' )
+                    // InternalPerspectiveDsl.g:3217:2: ( '!==' )
                     {
-                    // InternalPerspectiveDsl.g:3196:2: ( '!==' )
-                    // InternalPerspectiveDsl.g:3197:3: '!=='
+                    // InternalPerspectiveDsl.g:3217:2: ( '!==' )
+                    // InternalPerspectiveDsl.g:3218:3: '!=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
@@ -11332,41 +11433,41 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
-    // InternalPerspectiveDsl.g:3206:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3227: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 {
-            // InternalPerspectiveDsl.g:3210:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
-            int alt14=2;
-            int LA14_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3231:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            int alt15=2;
+            int LA15_0 = input.LA(1);
 
-            if ( (LA14_0==104) ) {
-                alt14=1;
+            if ( (LA15_0==104) ) {
+                alt15=1;
             }
-            else if ( ((LA14_0>=25 && LA14_0<=27)) ) {
-                alt14=2;
+            else if ( ((LA15_0>=25 && LA15_0<=27)) ) {
+                alt15=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 14, 0, input);
+                    new NoViableAltException("", 15, 0, input);
 
                 throw nvae;
             }
-            switch (alt14) {
+            switch (alt15) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3211:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3232:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3211:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3212:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3232:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3233:3: ( rule__XRelationalExpression__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3213:3: ( rule__XRelationalExpression__Group_1_0__0 )
-                    // InternalPerspectiveDsl.g:3213:4: rule__XRelationalExpression__Group_1_0__0
+                    // InternalPerspectiveDsl.g:3234:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3234:4: rule__XRelationalExpression__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_0__0();
@@ -11386,16 +11487,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3217:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3238:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3217:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3218:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3238:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3239:3: ( rule__XRelationalExpression__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3219:3: ( rule__XRelationalExpression__Group_1_1__0 )
-                    // InternalPerspectiveDsl.g:3219:4: rule__XRelationalExpression__Group_1_1__0
+                    // InternalPerspectiveDsl.g:3240:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3240:4: rule__XRelationalExpression__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_1__0();
@@ -11432,34 +11533,34 @@
 
 
     // $ANTLR start "rule__OpCompare__Alternatives"
-    // InternalPerspectiveDsl.g:3227:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
+    // InternalPerspectiveDsl.g:3248:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
     public final void rule__OpCompare__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3231:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
-            int alt15=4;
+            // InternalPerspectiveDsl.g:3252:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
+            int alt16=4;
             switch ( input.LA(1) ) {
             case 25:
                 {
-                alt15=1;
+                alt16=1;
                 }
                 break;
             case 27:
                 {
-                int LA15_2 = input.LA(2);
+                int LA16_2 = input.LA(2);
 
-                if ( (LA15_2==EOF||(LA15_2>=RULE_ID && LA15_2<=RULE_DECIMAL)||LA15_2==27||(LA15_2>=34 && LA15_2<=35)||LA15_2==40||(LA15_2>=45 && LA15_2<=50)||LA15_2==54||LA15_2==98||(LA15_2>=102 && LA15_2<=103)||LA15_2==106||LA15_2==108||(LA15_2>=112 && LA15_2<=120)||LA15_2==122||LA15_2==133) ) {
-                    alt15=4;
+                if ( (LA16_2==13) ) {
+                    alt16=2;
                 }
-                else if ( (LA15_2==13) ) {
-                    alt15=2;
+                else if ( (LA16_2==EOF||(LA16_2>=RULE_ID && LA16_2<=RULE_DECIMAL)||LA16_2==27||(LA16_2>=34 && LA16_2<=35)||LA16_2==40||(LA16_2>=45 && LA16_2<=50)||LA16_2==54||LA16_2==98||(LA16_2>=102 && LA16_2<=103)||LA16_2==106||LA16_2==108||(LA16_2>=112 && LA16_2<=120)||LA16_2==122||LA16_2==134) ) {
+                    alt16=4;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 15, 2, input);
+                        new NoViableAltException("", 16, 2, input);
 
                     throw nvae;
                 }
@@ -11467,23 +11568,23 @@
                 break;
             case 26:
                 {
-                alt15=3;
+                alt16=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 15, 0, input);
+                    new NoViableAltException("", 16, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt15) {
+            switch (alt16) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3232:2: ( '>=' )
+                    // InternalPerspectiveDsl.g:3253:2: ( '>=' )
                     {
-                    // InternalPerspectiveDsl.g:3232:2: ( '>=' )
-                    // InternalPerspectiveDsl.g:3233:3: '>='
+                    // InternalPerspectiveDsl.g:3253:2: ( '>=' )
+                    // InternalPerspectiveDsl.g:3254:3: '>='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
@@ -11499,16 +11600,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3238:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3259:2: ( ( rule__OpCompare__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3238:2: ( ( rule__OpCompare__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:3239:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3259:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3260:3: ( rule__OpCompare__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3240:3: ( rule__OpCompare__Group_1__0 )
-                    // InternalPerspectiveDsl.g:3240:4: rule__OpCompare__Group_1__0
+                    // InternalPerspectiveDsl.g:3261:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3261:4: rule__OpCompare__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpCompare__Group_1__0();
@@ -11528,10 +11629,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3244:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3265:2: ( '>' )
                     {
-                    // InternalPerspectiveDsl.g:3244:2: ( '>' )
-                    // InternalPerspectiveDsl.g:3245:3: '>'
+                    // InternalPerspectiveDsl.g:3265:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3266:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
@@ -11547,10 +11648,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3250:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3271:2: ( '<' )
                     {
-                    // InternalPerspectiveDsl.g:3250:2: ( '<' )
-                    // InternalPerspectiveDsl.g:3251:3: '<'
+                    // InternalPerspectiveDsl.g:3271:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3272:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
@@ -11583,21 +11684,21 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives"
-    // InternalPerspectiveDsl.g:3260:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
+    // InternalPerspectiveDsl.g:3281: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 {
-            // InternalPerspectiveDsl.g:3264:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
-            int alt16=9;
-            alt16 = dfa16.predict(input);
-            switch (alt16) {
+            // InternalPerspectiveDsl.g:3285:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
+            int alt17=9;
+            alt17 = dfa17.predict(input);
+            switch (alt17) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3265:2: ( '->' )
+                    // InternalPerspectiveDsl.g:3286:2: ( '->' )
                     {
-                    // InternalPerspectiveDsl.g:3265:2: ( '->' )
-                    // InternalPerspectiveDsl.g:3266:3: '->'
+                    // InternalPerspectiveDsl.g:3286:2: ( '->' )
+                    // InternalPerspectiveDsl.g:3287:3: '->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
@@ -11613,10 +11714,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3271:2: ( '..<' )
+                    // InternalPerspectiveDsl.g:3292:2: ( '..<' )
                     {
-                    // InternalPerspectiveDsl.g:3271:2: ( '..<' )
-                    // InternalPerspectiveDsl.g:3272:3: '..<'
+                    // InternalPerspectiveDsl.g:3292:2: ( '..<' )
+                    // InternalPerspectiveDsl.g:3293:3: '..<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
@@ -11632,16 +11733,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3277:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalPerspectiveDsl.g:3298:2: ( ( rule__OpOther__Group_2__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3277:2: ( ( rule__OpOther__Group_2__0 ) )
-                    // InternalPerspectiveDsl.g:3278:3: ( rule__OpOther__Group_2__0 )
+                    // InternalPerspectiveDsl.g:3298:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalPerspectiveDsl.g:3299:3: ( rule__OpOther__Group_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                     }
-                    // InternalPerspectiveDsl.g:3279:3: ( rule__OpOther__Group_2__0 )
-                    // InternalPerspectiveDsl.g:3279:4: rule__OpOther__Group_2__0
+                    // InternalPerspectiveDsl.g:3300:3: ( rule__OpOther__Group_2__0 )
+                    // InternalPerspectiveDsl.g:3300:4: rule__OpOther__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_2__0();
@@ -11661,10 +11762,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3283:2: ( '..' )
+                    // InternalPerspectiveDsl.g:3304:2: ( '..' )
                     {
-                    // InternalPerspectiveDsl.g:3283:2: ( '..' )
-                    // InternalPerspectiveDsl.g:3284:3: '..'
+                    // InternalPerspectiveDsl.g:3304:2: ( '..' )
+                    // InternalPerspectiveDsl.g:3305:3: '..'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
@@ -11680,10 +11781,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3289:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3310:2: ( '=>' )
                     {
-                    // InternalPerspectiveDsl.g:3289:2: ( '=>' )
-                    // InternalPerspectiveDsl.g:3290:3: '=>'
+                    // InternalPerspectiveDsl.g:3310:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3311:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
@@ -11699,16 +11800,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3295:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3316:2: ( ( rule__OpOther__Group_5__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3295:2: ( ( rule__OpOther__Group_5__0 ) )
-                    // InternalPerspectiveDsl.g:3296:3: ( rule__OpOther__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3316:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3317:3: ( rule__OpOther__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                     }
-                    // InternalPerspectiveDsl.g:3297:3: ( rule__OpOther__Group_5__0 )
-                    // InternalPerspectiveDsl.g:3297:4: rule__OpOther__Group_5__0
+                    // InternalPerspectiveDsl.g:3318:3: ( rule__OpOther__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3318:4: rule__OpOther__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5__0();
@@ -11728,16 +11829,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3301:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3322:2: ( ( rule__OpOther__Group_6__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3301:2: ( ( rule__OpOther__Group_6__0 ) )
-                    // InternalPerspectiveDsl.g:3302:3: ( rule__OpOther__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3322:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3323:3: ( rule__OpOther__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                     }
-                    // InternalPerspectiveDsl.g:3303:3: ( rule__OpOther__Group_6__0 )
-                    // InternalPerspectiveDsl.g:3303:4: rule__OpOther__Group_6__0
+                    // InternalPerspectiveDsl.g:3324:3: ( rule__OpOther__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3324:4: rule__OpOther__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6__0();
@@ -11757,10 +11858,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:3307:2: ( '<>' )
+                    // InternalPerspectiveDsl.g:3328:2: ( '<>' )
                     {
-                    // InternalPerspectiveDsl.g:3307:2: ( '<>' )
-                    // InternalPerspectiveDsl.g:3308:3: '<>'
+                    // InternalPerspectiveDsl.g:3328:2: ( '<>' )
+                    // InternalPerspectiveDsl.g:3329:3: '<>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
@@ -11776,10 +11877,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:3313:2: ( '?:' )
+                    // InternalPerspectiveDsl.g:3334:2: ( '?:' )
                     {
-                    // InternalPerspectiveDsl.g:3313:2: ( '?:' )
-                    // InternalPerspectiveDsl.g:3314:3: '?:'
+                    // InternalPerspectiveDsl.g:3334:2: ( '?:' )
+                    // InternalPerspectiveDsl.g:3335:3: '?:'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
@@ -11812,29 +11913,29 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_5_1"
-    // InternalPerspectiveDsl.g:3323:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+    // InternalPerspectiveDsl.g:3344: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 {
-            // InternalPerspectiveDsl.g:3327:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
-            int alt17=2;
-            int LA17_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3348:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+            int alt18=2;
+            int LA18_0 = input.LA(1);
 
-            if ( (LA17_0==26) ) {
-                int LA17_1 = input.LA(2);
+            if ( (LA18_0==26) ) {
+                int LA18_1 = input.LA(2);
 
-                if ( (LA17_1==EOF||(LA17_1>=RULE_ID && LA17_1<=RULE_DECIMAL)||LA17_1==27||(LA17_1>=34 && LA17_1<=35)||LA17_1==40||(LA17_1>=45 && LA17_1<=50)||LA17_1==54||LA17_1==98||(LA17_1>=102 && LA17_1<=103)||LA17_1==106||LA17_1==108||(LA17_1>=112 && LA17_1<=120)||LA17_1==122||LA17_1==133) ) {
-                    alt17=2;
+                if ( (LA18_1==26) ) {
+                    alt18=1;
                 }
-                else if ( (LA17_1==26) ) {
-                    alt17=1;
+                else if ( (LA18_1==EOF||(LA18_1>=RULE_ID && LA18_1<=RULE_DECIMAL)||LA18_1==27||(LA18_1>=34 && LA18_1<=35)||LA18_1==40||(LA18_1>=45 && LA18_1<=50)||LA18_1==54||LA18_1==98||(LA18_1>=102 && LA18_1<=103)||LA18_1==106||LA18_1==108||(LA18_1>=112 && LA18_1<=120)||LA18_1==122||LA18_1==134) ) {
+                    alt18=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 17, 1, input);
+                        new NoViableAltException("", 18, 1, input);
 
                     throw nvae;
                 }
@@ -11842,22 +11943,22 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 17, 0, input);
+                    new NoViableAltException("", 18, 0, input);
 
                 throw nvae;
             }
-            switch (alt17) {
+            switch (alt18) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3328:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3349:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3328:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3329:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalPerspectiveDsl.g:3349:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3350:3: ( rule__OpOther__Group_5_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3330:3: ( rule__OpOther__Group_5_1_0__0 )
-                    // InternalPerspectiveDsl.g:3330:4: rule__OpOther__Group_5_1_0__0
+                    // InternalPerspectiveDsl.g:3351:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalPerspectiveDsl.g:3351:4: rule__OpOther__Group_5_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5_1_0__0();
@@ -11877,10 +11978,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3334:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3355:2: ( '>' )
                     {
-                    // InternalPerspectiveDsl.g:3334:2: ( '>' )
-                    // InternalPerspectiveDsl.g:3335:3: '>'
+                    // InternalPerspectiveDsl.g:3355:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3356:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
@@ -11913,55 +12014,55 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_6_1"
-    // InternalPerspectiveDsl.g:3344:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
+    // InternalPerspectiveDsl.g:3365: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 {
-            // InternalPerspectiveDsl.g:3348:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
-            int alt18=3;
-            int LA18_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3369:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
+            int alt19=3;
+            int LA19_0 = input.LA(1);
 
-            if ( (LA18_0==27) ) {
-                int LA18_1 = input.LA(2);
+            if ( (LA19_0==27) ) {
+                int LA19_1 = input.LA(2);
 
-                if ( (synpred51_InternalPerspectiveDsl()) ) {
-                    alt18=1;
+                if ( (synpred52_InternalPerspectiveDsl()) ) {
+                    alt19=1;
                 }
-                else if ( (synpred52_InternalPerspectiveDsl()) ) {
-                    alt18=2;
+                else if ( (synpred53_InternalPerspectiveDsl()) ) {
+                    alt19=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 18, 1, input);
+                        new NoViableAltException("", 19, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA18_0==31) ) {
-                alt18=3;
+            else if ( (LA19_0==31) ) {
+                alt19=3;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 18, 0, input);
+                    new NoViableAltException("", 19, 0, input);
 
                 throw nvae;
             }
-            switch (alt18) {
+            switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3349:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3370:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3349:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3350:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalPerspectiveDsl.g:3370:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3371:3: ( rule__OpOther__Group_6_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3351:3: ( rule__OpOther__Group_6_1_0__0 )
-                    // InternalPerspectiveDsl.g:3351:4: rule__OpOther__Group_6_1_0__0
+                    // InternalPerspectiveDsl.g:3372:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalPerspectiveDsl.g:3372:4: rule__OpOther__Group_6_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6_1_0__0();
@@ -11981,10 +12082,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3355:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3376:2: ( '<' )
                     {
-                    // InternalPerspectiveDsl.g:3355:2: ( '<' )
-                    // InternalPerspectiveDsl.g:3356:3: '<'
+                    // InternalPerspectiveDsl.g:3376:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3377:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -12000,10 +12101,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3361:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3382:2: ( '=>' )
                     {
-                    // InternalPerspectiveDsl.g:3361:2: ( '=>' )
-                    // InternalPerspectiveDsl.g:3362:3: '=>'
+                    // InternalPerspectiveDsl.g:3382:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3383:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
@@ -12036,35 +12137,35 @@
 
 
     // $ANTLR start "rule__OpAdd__Alternatives"
-    // InternalPerspectiveDsl.g:3371:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+    // InternalPerspectiveDsl.g:3392:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
     public final void rule__OpAdd__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3375:1: ( ( '+' ) | ( '-' ) )
-            int alt19=2;
-            int LA19_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3396:1: ( ( '+' ) | ( '-' ) )
+            int alt20=2;
+            int LA20_0 = input.LA(1);
 
-            if ( (LA19_0==34) ) {
-                alt19=1;
+            if ( (LA20_0==34) ) {
+                alt20=1;
             }
-            else if ( (LA19_0==35) ) {
-                alt19=2;
+            else if ( (LA20_0==35) ) {
+                alt20=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                    new NoViableAltException("", 20, 0, input);
 
                 throw nvae;
             }
-            switch (alt19) {
+            switch (alt20) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3376:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3397:2: ( '+' )
                     {
-                    // InternalPerspectiveDsl.g:3376:2: ( '+' )
-                    // InternalPerspectiveDsl.g:3377:3: '+'
+                    // InternalPerspectiveDsl.g:3397:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3398:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
@@ -12080,10 +12181,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3382:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3403:2: ( '-' )
                     {
-                    // InternalPerspectiveDsl.g:3382:2: ( '-' )
-                    // InternalPerspectiveDsl.g:3383:3: '-'
+                    // InternalPerspectiveDsl.g:3403:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3404:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
@@ -12116,49 +12217,49 @@
 
 
     // $ANTLR start "rule__OpMulti__Alternatives"
-    // InternalPerspectiveDsl.g:3392:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+    // InternalPerspectiveDsl.g:3413:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
     public final void rule__OpMulti__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3396:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
-            int alt20=4;
+            // InternalPerspectiveDsl.g:3417:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+            int alt21=4;
             switch ( input.LA(1) ) {
             case 36:
                 {
-                alt20=1;
+                alt21=1;
                 }
                 break;
             case 37:
                 {
-                alt20=2;
+                alt21=2;
                 }
                 break;
             case 38:
                 {
-                alt20=3;
+                alt21=3;
                 }
                 break;
             case 39:
                 {
-                alt20=4;
+                alt21=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 20, 0, input);
+                    new NoViableAltException("", 21, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt20) {
+            switch (alt21) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3397:2: ( '*' )
+                    // InternalPerspectiveDsl.g:3418:2: ( '*' )
                     {
-                    // InternalPerspectiveDsl.g:3397:2: ( '*' )
-                    // InternalPerspectiveDsl.g:3398:3: '*'
+                    // InternalPerspectiveDsl.g:3418:2: ( '*' )
+                    // InternalPerspectiveDsl.g:3419:3: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
@@ -12174,10 +12275,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3403:2: ( '**' )
+                    // InternalPerspectiveDsl.g:3424:2: ( '**' )
                     {
-                    // InternalPerspectiveDsl.g:3403:2: ( '**' )
-                    // InternalPerspectiveDsl.g:3404:3: '**'
+                    // InternalPerspectiveDsl.g:3424:2: ( '**' )
+                    // InternalPerspectiveDsl.g:3425:3: '**'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
@@ -12193,10 +12294,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3409:2: ( '/' )
+                    // InternalPerspectiveDsl.g:3430:2: ( '/' )
                     {
-                    // InternalPerspectiveDsl.g:3409:2: ( '/' )
-                    // InternalPerspectiveDsl.g:3410:3: '/'
+                    // InternalPerspectiveDsl.g:3430:2: ( '/' )
+                    // InternalPerspectiveDsl.g:3431:3: '/'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
@@ -12212,10 +12313,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3415:2: ( '%' )
+                    // InternalPerspectiveDsl.g:3436:2: ( '%' )
                     {
-                    // InternalPerspectiveDsl.g:3415:2: ( '%' )
-                    // InternalPerspectiveDsl.g:3416:3: '%'
+                    // InternalPerspectiveDsl.g:3436:2: ( '%' )
+                    // InternalPerspectiveDsl.g:3437:3: '%'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
@@ -12248,41 +12349,41 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Alternatives"
-    // InternalPerspectiveDsl.g:3425:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+    // InternalPerspectiveDsl.g:3446:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
     public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3429:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
-            int alt21=2;
-            int LA21_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3450:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+            int alt22=2;
+            int LA22_0 = input.LA(1);
 
-            if ( ((LA21_0>=34 && LA21_0<=35)||LA21_0==40) ) {
-                alt21=1;
+            if ( ((LA22_0>=34 && LA22_0<=35)||LA22_0==40) ) {
+                alt22=1;
             }
-            else if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_DECIMAL)||LA21_0==27||(LA21_0>=45 && LA21_0<=50)||LA21_0==54||LA21_0==98||(LA21_0>=102 && LA21_0<=103)||LA21_0==106||LA21_0==108||(LA21_0>=112 && LA21_0<=120)||LA21_0==122||LA21_0==133) ) {
-                alt21=2;
+            else if ( ((LA22_0>=RULE_ID && LA22_0<=RULE_DECIMAL)||LA22_0==27||(LA22_0>=45 && LA22_0<=50)||LA22_0==54||LA22_0==98||(LA22_0>=102 && LA22_0<=103)||LA22_0==106||LA22_0==108||(LA22_0>=112 && LA22_0<=120)||LA22_0==122||LA22_0==134) ) {
+                alt22=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 21, 0, input);
+                    new NoViableAltException("", 22, 0, input);
 
                 throw nvae;
             }
-            switch (alt21) {
+            switch (alt22) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3430:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3451:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3430:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:3431:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3451:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3452:3: ( rule__XUnaryOperation__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3432:3: ( rule__XUnaryOperation__Group_0__0 )
-                    // InternalPerspectiveDsl.g:3432:4: rule__XUnaryOperation__Group_0__0
+                    // InternalPerspectiveDsl.g:3453:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3453:4: rule__XUnaryOperation__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XUnaryOperation__Group_0__0();
@@ -12302,10 +12403,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3436:2: ( ruleXCastedExpression )
+                    // InternalPerspectiveDsl.g:3457:2: ( ruleXCastedExpression )
                     {
-                    // InternalPerspectiveDsl.g:3436:2: ( ruleXCastedExpression )
-                    // InternalPerspectiveDsl.g:3437:3: ruleXCastedExpression
+                    // InternalPerspectiveDsl.g:3457:2: ( ruleXCastedExpression )
+                    // InternalPerspectiveDsl.g:3458:3: ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
@@ -12342,44 +12443,44 @@
 
 
     // $ANTLR start "rule__OpUnary__Alternatives"
-    // InternalPerspectiveDsl.g:3446:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+    // InternalPerspectiveDsl.g:3467:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
     public final void rule__OpUnary__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3450:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
-            int alt22=3;
+            // InternalPerspectiveDsl.g:3471:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+            int alt23=3;
             switch ( input.LA(1) ) {
             case 40:
                 {
-                alt22=1;
+                alt23=1;
                 }
                 break;
             case 35:
                 {
-                alt22=2;
+                alt23=2;
                 }
                 break;
             case 34:
                 {
-                alt22=3;
+                alt23=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 22, 0, input);
+                    new NoViableAltException("", 23, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt22) {
+            switch (alt23) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3451:2: ( '!' )
+                    // InternalPerspectiveDsl.g:3472:2: ( '!' )
                     {
-                    // InternalPerspectiveDsl.g:3451:2: ( '!' )
-                    // InternalPerspectiveDsl.g:3452:3: '!'
+                    // InternalPerspectiveDsl.g:3472:2: ( '!' )
+                    // InternalPerspectiveDsl.g:3473:3: '!'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
@@ -12395,10 +12496,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3457:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3478:2: ( '-' )
                     {
-                    // InternalPerspectiveDsl.g:3457:2: ( '-' )
-                    // InternalPerspectiveDsl.g:3458:3: '-'
+                    // InternalPerspectiveDsl.g:3478:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3479:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
@@ -12414,10 +12515,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3463:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3484:2: ( '+' )
                     {
-                    // InternalPerspectiveDsl.g:3463:2: ( '+' )
-                    // InternalPerspectiveDsl.g:3464:3: '+'
+                    // InternalPerspectiveDsl.g:3484:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3485:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
@@ -12450,35 +12551,35 @@
 
 
     // $ANTLR start "rule__OpPostfix__Alternatives"
-    // InternalPerspectiveDsl.g:3473:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
+    // InternalPerspectiveDsl.g:3494:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
     public final void rule__OpPostfix__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3477:1: ( ( '++' ) | ( '--' ) )
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3498:1: ( ( '++' ) | ( '--' ) )
+            int alt24=2;
+            int LA24_0 = input.LA(1);
 
-            if ( (LA23_0==41) ) {
-                alt23=1;
+            if ( (LA24_0==41) ) {
+                alt24=1;
             }
-            else if ( (LA23_0==42) ) {
-                alt23=2;
+            else if ( (LA24_0==42) ) {
+                alt24=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 23, 0, input);
+                    new NoViableAltException("", 24, 0, input);
 
                 throw nvae;
             }
-            switch (alt23) {
+            switch (alt24) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3478:2: ( '++' )
+                    // InternalPerspectiveDsl.g:3499:2: ( '++' )
                     {
-                    // InternalPerspectiveDsl.g:3478:2: ( '++' )
-                    // InternalPerspectiveDsl.g:3479:3: '++'
+                    // InternalPerspectiveDsl.g:3499:2: ( '++' )
+                    // InternalPerspectiveDsl.g:3500:3: '++'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
@@ -12494,10 +12595,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3484:2: ( '--' )
+                    // InternalPerspectiveDsl.g:3505:2: ( '--' )
                     {
-                    // InternalPerspectiveDsl.g:3484:2: ( '--' )
-                    // InternalPerspectiveDsl.g:3485:3: '--'
+                    // InternalPerspectiveDsl.g:3505:2: ( '--' )
+                    // InternalPerspectiveDsl.g:3506:3: '--'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
@@ -12530,27 +12631,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
-    // InternalPerspectiveDsl.g:3494:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3515: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 {
-            // InternalPerspectiveDsl.g:3498:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
-            int alt24=2;
-            alt24 = dfa24.predict(input);
-            switch (alt24) {
+            // InternalPerspectiveDsl.g:3519:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+            int alt25=2;
+            alt25 = dfa25.predict(input);
+            switch (alt25) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3499:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3520:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3499:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3500:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3520:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3521:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3501:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
-                    // InternalPerspectiveDsl.g:3501:4: rule__XMemberFeatureCall__Group_1_0__0
+                    // InternalPerspectiveDsl.g:3522:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3522:4: rule__XMemberFeatureCall__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_0__0();
@@ -12570,16 +12671,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3505:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3526:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3505:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3506:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3526:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3527:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3507:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
-                    // InternalPerspectiveDsl.g:3507:4: rule__XMemberFeatureCall__Group_1_1__0
+                    // InternalPerspectiveDsl.g:3528:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3528:4: rule__XMemberFeatureCall__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1__0();
@@ -12616,35 +12717,35 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
-    // InternalPerspectiveDsl.g:3515:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+    // InternalPerspectiveDsl.g:3536: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 {
-            // InternalPerspectiveDsl.g:3519:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
-            int alt25=2;
-            int LA25_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3540:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+            int alt26=2;
+            int LA26_0 = input.LA(1);
 
-            if ( (LA25_0==43) ) {
-                alt25=1;
+            if ( (LA26_0==43) ) {
+                alt26=1;
             }
-            else if ( (LA25_0==129) ) {
-                alt25=2;
+            else if ( (LA26_0==130) ) {
+                alt26=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 25, 0, input);
+                    new NoViableAltException("", 26, 0, input);
 
                 throw nvae;
             }
-            switch (alt25) {
+            switch (alt26) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3520:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3541:2: ( '.' )
                     {
-                    // InternalPerspectiveDsl.g:3520:2: ( '.' )
-                    // InternalPerspectiveDsl.g:3521:3: '.'
+                    // InternalPerspectiveDsl.g:3541:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3542:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
@@ -12660,16 +12761,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3526:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3547:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3526:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
-                    // InternalPerspectiveDsl.g:3527:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3547:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3548:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3528:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
-                    // InternalPerspectiveDsl.g:3528:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+                    // InternalPerspectiveDsl.g:3549:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3549:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
@@ -12706,44 +12807,44 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
-    // InternalPerspectiveDsl.g:3536: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 ) ) );
+    // InternalPerspectiveDsl.g:3557: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 {
-            // InternalPerspectiveDsl.g:3540:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
-            int alt26=3;
+            // InternalPerspectiveDsl.g:3561:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+            int alt27=3;
             switch ( input.LA(1) ) {
             case 43:
                 {
-                alt26=1;
+                alt27=1;
+                }
+                break;
+            case 131:
+                {
+                alt27=2;
                 }
                 break;
             case 130:
                 {
-                alt26=2;
-                }
-                break;
-            case 129:
-                {
-                alt26=3;
+                alt27=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 26, 0, input);
+                    new NoViableAltException("", 27, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt26) {
+            switch (alt27) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3541:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3562:2: ( '.' )
                     {
-                    // InternalPerspectiveDsl.g:3541:2: ( '.' )
-                    // InternalPerspectiveDsl.g:3542:3: '.'
+                    // InternalPerspectiveDsl.g:3562:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3563:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
@@ -12759,16 +12860,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3547:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3568:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3547:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
-                    // InternalPerspectiveDsl.g:3548:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3568:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3569:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3549:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
-                    // InternalPerspectiveDsl.g:3549:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+                    // InternalPerspectiveDsl.g:3570:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3570:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
@@ -12788,16 +12889,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3553:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalPerspectiveDsl.g:3574:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                     {
-                    // InternalPerspectiveDsl.g:3553:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
-                    // InternalPerspectiveDsl.g:3554:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalPerspectiveDsl.g:3574:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalPerspectiveDsl.g:3575:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
                     }
-                    // InternalPerspectiveDsl.g:3555:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
-                    // InternalPerspectiveDsl.g:3555:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+                    // InternalPerspectiveDsl.g:3576:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalPerspectiveDsl.g:3576:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
@@ -12834,27 +12935,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
-    // InternalPerspectiveDsl.g:3563: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 ) ) );
+    // InternalPerspectiveDsl.g:3584: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 {
-            // InternalPerspectiveDsl.g:3567:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
-            int alt27=2;
-            alt27 = dfa27.predict(input);
-            switch (alt27) {
+            // InternalPerspectiveDsl.g:3588:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+            int alt28=2;
+            alt28 = dfa28.predict(input);
+            switch (alt28) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3568:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3589:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3568:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-                    // InternalPerspectiveDsl.g:3569:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalPerspectiveDsl.g:3589:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3590:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3570:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-                    // InternalPerspectiveDsl.g:3570:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+                    // InternalPerspectiveDsl.g:3591:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalPerspectiveDsl.g:3591:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -12874,16 +12975,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3574:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3595:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3574:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3575:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3595:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3596:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3576:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
-                    // InternalPerspectiveDsl.g:3576:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+                    // InternalPerspectiveDsl.g:3597:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3597:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
@@ -12920,21 +13021,21 @@
 
 
     // $ANTLR start "rule__XPrimaryExpression__Alternatives"
-    // InternalPerspectiveDsl.g:3584:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+    // InternalPerspectiveDsl.g:3605: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 {
-            // InternalPerspectiveDsl.g:3588:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
-            int alt28=15;
-            alt28 = dfa28.predict(input);
-            switch (alt28) {
+            // InternalPerspectiveDsl.g:3609:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+            int alt29=15;
+            alt29 = dfa29.predict(input);
+            switch (alt29) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3589:2: ( ruleXConstructorCall )
+                    // InternalPerspectiveDsl.g:3610:2: ( ruleXConstructorCall )
                     {
-                    // InternalPerspectiveDsl.g:3589:2: ( ruleXConstructorCall )
-                    // InternalPerspectiveDsl.g:3590:3: ruleXConstructorCall
+                    // InternalPerspectiveDsl.g:3610:2: ( ruleXConstructorCall )
+                    // InternalPerspectiveDsl.g:3611:3: ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
@@ -12954,10 +13055,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3595:2: ( ruleXBlockExpression )
+                    // InternalPerspectiveDsl.g:3616:2: ( ruleXBlockExpression )
                     {
-                    // InternalPerspectiveDsl.g:3595:2: ( ruleXBlockExpression )
-                    // InternalPerspectiveDsl.g:3596:3: ruleXBlockExpression
+                    // InternalPerspectiveDsl.g:3616:2: ( ruleXBlockExpression )
+                    // InternalPerspectiveDsl.g:3617:3: ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
@@ -12977,10 +13078,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3601:2: ( ruleXSwitchExpression )
+                    // InternalPerspectiveDsl.g:3622:2: ( ruleXSwitchExpression )
                     {
-                    // InternalPerspectiveDsl.g:3601:2: ( ruleXSwitchExpression )
-                    // InternalPerspectiveDsl.g:3602:3: ruleXSwitchExpression
+                    // InternalPerspectiveDsl.g:3622:2: ( ruleXSwitchExpression )
+                    // InternalPerspectiveDsl.g:3623:3: ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
@@ -13000,16 +13101,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3607:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalPerspectiveDsl.g:3628:2: ( ( ruleXSynchronizedExpression ) )
                     {
-                    // InternalPerspectiveDsl.g:3607:2: ( ( ruleXSynchronizedExpression ) )
-                    // InternalPerspectiveDsl.g:3608:3: ( ruleXSynchronizedExpression )
+                    // InternalPerspectiveDsl.g:3628:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalPerspectiveDsl.g:3629:3: ( ruleXSynchronizedExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                     }
-                    // InternalPerspectiveDsl.g:3609:3: ( ruleXSynchronizedExpression )
-                    // InternalPerspectiveDsl.g:3609:4: ruleXSynchronizedExpression
+                    // InternalPerspectiveDsl.g:3630:3: ( ruleXSynchronizedExpression )
+                    // InternalPerspectiveDsl.g:3630:4: ruleXSynchronizedExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXSynchronizedExpression();
@@ -13029,10 +13130,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3613:2: ( ruleXFeatureCall )
+                    // InternalPerspectiveDsl.g:3634:2: ( ruleXFeatureCall )
                     {
-                    // InternalPerspectiveDsl.g:3613:2: ( ruleXFeatureCall )
-                    // InternalPerspectiveDsl.g:3614:3: ruleXFeatureCall
+                    // InternalPerspectiveDsl.g:3634:2: ( ruleXFeatureCall )
+                    // InternalPerspectiveDsl.g:3635:3: ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
@@ -13052,10 +13153,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3619:2: ( ruleXLiteral )
+                    // InternalPerspectiveDsl.g:3640:2: ( ruleXLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3619:2: ( ruleXLiteral )
-                    // InternalPerspectiveDsl.g:3620:3: ruleXLiteral
+                    // InternalPerspectiveDsl.g:3640:2: ( ruleXLiteral )
+                    // InternalPerspectiveDsl.g:3641:3: ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
@@ -13075,10 +13176,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3625:2: ( ruleXIfExpression )
+                    // InternalPerspectiveDsl.g:3646:2: ( ruleXIfExpression )
                     {
-                    // InternalPerspectiveDsl.g:3625:2: ( ruleXIfExpression )
-                    // InternalPerspectiveDsl.g:3626:3: ruleXIfExpression
+                    // InternalPerspectiveDsl.g:3646:2: ( ruleXIfExpression )
+                    // InternalPerspectiveDsl.g:3647:3: ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
@@ -13098,16 +13199,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:3631:2: ( ( ruleXForLoopExpression ) )
+                    // InternalPerspectiveDsl.g:3652:2: ( ( ruleXForLoopExpression ) )
                     {
-                    // InternalPerspectiveDsl.g:3631:2: ( ( ruleXForLoopExpression ) )
-                    // InternalPerspectiveDsl.g:3632:3: ( ruleXForLoopExpression )
+                    // InternalPerspectiveDsl.g:3652:2: ( ( ruleXForLoopExpression ) )
+                    // InternalPerspectiveDsl.g:3653:3: ( ruleXForLoopExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                     }
-                    // InternalPerspectiveDsl.g:3633:3: ( ruleXForLoopExpression )
-                    // InternalPerspectiveDsl.g:3633:4: ruleXForLoopExpression
+                    // InternalPerspectiveDsl.g:3654:3: ( ruleXForLoopExpression )
+                    // InternalPerspectiveDsl.g:3654:4: ruleXForLoopExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXForLoopExpression();
@@ -13127,10 +13228,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:3637:2: ( ruleXBasicForLoopExpression )
+                    // InternalPerspectiveDsl.g:3658:2: ( ruleXBasicForLoopExpression )
                     {
-                    // InternalPerspectiveDsl.g:3637:2: ( ruleXBasicForLoopExpression )
-                    // InternalPerspectiveDsl.g:3638:3: ruleXBasicForLoopExpression
+                    // InternalPerspectiveDsl.g:3658:2: ( ruleXBasicForLoopExpression )
+                    // InternalPerspectiveDsl.g:3659:3: ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -13150,10 +13251,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalPerspectiveDsl.g:3643:2: ( ruleXWhileExpression )
+                    // InternalPerspectiveDsl.g:3664:2: ( ruleXWhileExpression )
                     {
-                    // InternalPerspectiveDsl.g:3643:2: ( ruleXWhileExpression )
-                    // InternalPerspectiveDsl.g:3644:3: ruleXWhileExpression
+                    // InternalPerspectiveDsl.g:3664:2: ( ruleXWhileExpression )
+                    // InternalPerspectiveDsl.g:3665:3: ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
@@ -13173,10 +13274,10 @@
                     }
                     break;
                 case 11 :
-                    // InternalPerspectiveDsl.g:3649:2: ( ruleXDoWhileExpression )
+                    // InternalPerspectiveDsl.g:3670:2: ( ruleXDoWhileExpression )
                     {
-                    // InternalPerspectiveDsl.g:3649:2: ( ruleXDoWhileExpression )
-                    // InternalPerspectiveDsl.g:3650:3: ruleXDoWhileExpression
+                    // InternalPerspectiveDsl.g:3670:2: ( ruleXDoWhileExpression )
+                    // InternalPerspectiveDsl.g:3671:3: ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
@@ -13196,10 +13297,10 @@
                     }
                     break;
                 case 12 :
-                    // InternalPerspectiveDsl.g:3655:2: ( ruleXThrowExpression )
+                    // InternalPerspectiveDsl.g:3676:2: ( ruleXThrowExpression )
                     {
-                    // InternalPerspectiveDsl.g:3655:2: ( ruleXThrowExpression )
-                    // InternalPerspectiveDsl.g:3656:3: ruleXThrowExpression
+                    // InternalPerspectiveDsl.g:3676:2: ( ruleXThrowExpression )
+                    // InternalPerspectiveDsl.g:3677:3: ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
@@ -13219,10 +13320,10 @@
                     }
                     break;
                 case 13 :
-                    // InternalPerspectiveDsl.g:3661:2: ( ruleXReturnExpression )
+                    // InternalPerspectiveDsl.g:3682:2: ( ruleXReturnExpression )
                     {
-                    // InternalPerspectiveDsl.g:3661:2: ( ruleXReturnExpression )
-                    // InternalPerspectiveDsl.g:3662:3: ruleXReturnExpression
+                    // InternalPerspectiveDsl.g:3682:2: ( ruleXReturnExpression )
+                    // InternalPerspectiveDsl.g:3683:3: ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
@@ -13242,10 +13343,10 @@
                     }
                     break;
                 case 14 :
-                    // InternalPerspectiveDsl.g:3667:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalPerspectiveDsl.g:3688:2: ( ruleXTryCatchFinallyExpression )
                     {
-                    // InternalPerspectiveDsl.g:3667:2: ( ruleXTryCatchFinallyExpression )
-                    // InternalPerspectiveDsl.g:3668:3: ruleXTryCatchFinallyExpression
+                    // InternalPerspectiveDsl.g:3688:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalPerspectiveDsl.g:3689:3: ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
@@ -13265,10 +13366,10 @@
                     }
                     break;
                 case 15 :
-                    // InternalPerspectiveDsl.g:3673:2: ( ruleXParenthesizedExpression )
+                    // InternalPerspectiveDsl.g:3694:2: ( ruleXParenthesizedExpression )
                     {
-                    // InternalPerspectiveDsl.g:3673:2: ( ruleXParenthesizedExpression )
-                    // InternalPerspectiveDsl.g:3674:3: ruleXParenthesizedExpression
+                    // InternalPerspectiveDsl.g:3694:2: ( ruleXParenthesizedExpression )
+                    // InternalPerspectiveDsl.g:3695:3: ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
@@ -13305,67 +13406,67 @@
 
 
     // $ANTLR start "rule__XLiteral__Alternatives"
-    // InternalPerspectiveDsl.g:3683:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+    // InternalPerspectiveDsl.g:3704:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
     public final void rule__XLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3687:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
-            int alt29=7;
+            // InternalPerspectiveDsl.g:3708:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+            int alt30=7;
             switch ( input.LA(1) ) {
             case 102:
                 {
-                alt29=1;
+                alt30=1;
                 }
                 break;
             case 103:
                 {
-                alt29=2;
+                alt30=2;
                 }
                 break;
             case 50:
-            case 133:
+            case 134:
                 {
-                alt29=3;
+                alt30=3;
                 }
                 break;
             case RULE_HEX:
             case RULE_INT:
             case RULE_DECIMAL:
                 {
-                alt29=4;
+                alt30=4;
                 }
                 break;
             case 116:
                 {
-                alt29=5;
+                alt30=5;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt29=6;
+                alt30=6;
                 }
                 break;
             case 117:
                 {
-                alt29=7;
+                alt30=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 29, 0, input);
+                    new NoViableAltException("", 30, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt29) {
+            switch (alt30) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3688:2: ( ruleXCollectionLiteral )
+                    // InternalPerspectiveDsl.g:3709:2: ( ruleXCollectionLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3688:2: ( ruleXCollectionLiteral )
-                    // InternalPerspectiveDsl.g:3689:3: ruleXCollectionLiteral
+                    // InternalPerspectiveDsl.g:3709:2: ( ruleXCollectionLiteral )
+                    // InternalPerspectiveDsl.g:3710:3: ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
@@ -13385,16 +13486,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3694:2: ( ( ruleXClosure ) )
+                    // InternalPerspectiveDsl.g:3715:2: ( ( ruleXClosure ) )
                     {
-                    // InternalPerspectiveDsl.g:3694:2: ( ( ruleXClosure ) )
-                    // InternalPerspectiveDsl.g:3695:3: ( ruleXClosure )
+                    // InternalPerspectiveDsl.g:3715:2: ( ( ruleXClosure ) )
+                    // InternalPerspectiveDsl.g:3716:3: ( ruleXClosure )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3696:3: ( ruleXClosure )
-                    // InternalPerspectiveDsl.g:3696:4: ruleXClosure
+                    // InternalPerspectiveDsl.g:3717:3: ( ruleXClosure )
+                    // InternalPerspectiveDsl.g:3717:4: ruleXClosure
                     {
                     pushFollow(FOLLOW_2);
                     ruleXClosure();
@@ -13414,10 +13515,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3700:2: ( ruleXBooleanLiteral )
+                    // InternalPerspectiveDsl.g:3721:2: ( ruleXBooleanLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3700:2: ( ruleXBooleanLiteral )
-                    // InternalPerspectiveDsl.g:3701:3: ruleXBooleanLiteral
+                    // InternalPerspectiveDsl.g:3721:2: ( ruleXBooleanLiteral )
+                    // InternalPerspectiveDsl.g:3722:3: ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
@@ -13437,10 +13538,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3706:2: ( ruleXNumberLiteral )
+                    // InternalPerspectiveDsl.g:3727:2: ( ruleXNumberLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3706:2: ( ruleXNumberLiteral )
-                    // InternalPerspectiveDsl.g:3707:3: ruleXNumberLiteral
+                    // InternalPerspectiveDsl.g:3727:2: ( ruleXNumberLiteral )
+                    // InternalPerspectiveDsl.g:3728:3: ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
@@ -13460,10 +13561,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3712:2: ( ruleXNullLiteral )
+                    // InternalPerspectiveDsl.g:3733:2: ( ruleXNullLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3712:2: ( ruleXNullLiteral )
-                    // InternalPerspectiveDsl.g:3713:3: ruleXNullLiteral
+                    // InternalPerspectiveDsl.g:3733:2: ( ruleXNullLiteral )
+                    // InternalPerspectiveDsl.g:3734:3: ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
@@ -13483,10 +13584,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3718:2: ( ruleXStringLiteral )
+                    // InternalPerspectiveDsl.g:3739:2: ( ruleXStringLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3718:2: ( ruleXStringLiteral )
-                    // InternalPerspectiveDsl.g:3719:3: ruleXStringLiteral
+                    // InternalPerspectiveDsl.g:3739:2: ( ruleXStringLiteral )
+                    // InternalPerspectiveDsl.g:3740:3: ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
@@ -13506,10 +13607,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3724:2: ( ruleXTypeLiteral )
+                    // InternalPerspectiveDsl.g:3745:2: ( ruleXTypeLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3724:2: ( ruleXTypeLiteral )
-                    // InternalPerspectiveDsl.g:3725:3: ruleXTypeLiteral
+                    // InternalPerspectiveDsl.g:3745:2: ( ruleXTypeLiteral )
+                    // InternalPerspectiveDsl.g:3746:3: ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
@@ -13546,29 +13647,29 @@
 
 
     // $ANTLR start "rule__XCollectionLiteral__Alternatives"
-    // InternalPerspectiveDsl.g:3734:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+    // InternalPerspectiveDsl.g:3755:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
     public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3738:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
-            int alt30=2;
-            int LA30_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3759:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+            int alt31=2;
+            int LA31_0 = input.LA(1);
 
-            if ( (LA30_0==102) ) {
-                int LA30_1 = input.LA(2);
+            if ( (LA31_0==102) ) {
+                int LA31_1 = input.LA(2);
 
-                if ( (LA30_1==103) ) {
-                    alt30=2;
+                if ( (LA31_1==54) ) {
+                    alt31=1;
                 }
-                else if ( (LA30_1==54) ) {
-                    alt30=1;
+                else if ( (LA31_1==103) ) {
+                    alt31=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 30, 1, input);
+                        new NoViableAltException("", 31, 1, input);
 
                     throw nvae;
                 }
@@ -13576,16 +13677,16 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 30, 0, input);
+                    new NoViableAltException("", 31, 0, input);
 
                 throw nvae;
             }
-            switch (alt30) {
+            switch (alt31) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3739:2: ( ruleXSetLiteral )
+                    // InternalPerspectiveDsl.g:3760:2: ( ruleXSetLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3739:2: ( ruleXSetLiteral )
-                    // InternalPerspectiveDsl.g:3740:3: ruleXSetLiteral
+                    // InternalPerspectiveDsl.g:3760:2: ( ruleXSetLiteral )
+                    // InternalPerspectiveDsl.g:3761:3: ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
@@ -13605,10 +13706,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3745:2: ( ruleXListLiteral )
+                    // InternalPerspectiveDsl.g:3766:2: ( ruleXListLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3745:2: ( ruleXListLiteral )
-                    // InternalPerspectiveDsl.g:3746:3: ruleXListLiteral
+                    // InternalPerspectiveDsl.g:3766:2: ( ruleXListLiteral )
+                    // InternalPerspectiveDsl.g:3767:3: ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
@@ -13645,27 +13746,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
-    // InternalPerspectiveDsl.g:3755:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3776: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 {
-            // InternalPerspectiveDsl.g:3759:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
-            int alt31=2;
-            alt31 = dfa31.predict(input);
-            switch (alt31) {
+            // InternalPerspectiveDsl.g:3780:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+            int alt32=2;
+            alt32 = dfa32.predict(input);
+            switch (alt32) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3760:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3781:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3760:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:3761:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3781:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3782:3: ( rule__XSwitchExpression__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3762:3: ( rule__XSwitchExpression__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:3762:4: rule__XSwitchExpression__Group_2_0__0
+                    // InternalPerspectiveDsl.g:3783:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3783:4: rule__XSwitchExpression__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_0__0();
@@ -13685,16 +13786,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3766:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:3787:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3766:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
-                    // InternalPerspectiveDsl.g:3767:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:3787:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:3788:3: ( rule__XSwitchExpression__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3768:3: ( rule__XSwitchExpression__Group_2_1__0 )
-                    // InternalPerspectiveDsl.g:3768:4: rule__XSwitchExpression__Group_2_1__0
+                    // InternalPerspectiveDsl.g:3789:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:3789:4: rule__XSwitchExpression__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1__0();
@@ -13731,41 +13832,41 @@
 
 
     // $ANTLR start "rule__XCasePart__Alternatives_3"
-    // InternalPerspectiveDsl.g:3776:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
+    // InternalPerspectiveDsl.g:3797: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 {
-            // InternalPerspectiveDsl.g:3780:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
-            int alt32=2;
-            int LA32_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3801:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
+            int alt33=2;
+            int LA33_0 = input.LA(1);
 
-            if ( (LA32_0==109) ) {
-                alt32=1;
+            if ( (LA33_0==109) ) {
+                alt33=1;
             }
-            else if ( (LA32_0==100) ) {
-                alt32=2;
+            else if ( (LA33_0==100) ) {
+                alt33=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 32, 0, input);
+                    new NoViableAltException("", 33, 0, input);
 
                 throw nvae;
             }
-            switch (alt32) {
+            switch (alt33) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3781:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:3802:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3781:2: ( ( rule__XCasePart__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:3782:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:3802:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:3803:3: ( rule__XCasePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3783:3: ( rule__XCasePart__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:3783:4: rule__XCasePart__Group_3_0__0
+                    // InternalPerspectiveDsl.g:3804:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:3804:4: rule__XCasePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_3_0__0();
@@ -13785,16 +13886,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3787:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalPerspectiveDsl.g:3808:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3787:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
-                    // InternalPerspectiveDsl.g:3788:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalPerspectiveDsl.g:3808:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalPerspectiveDsl.g:3809:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3789:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
-                    // InternalPerspectiveDsl.g:3789:4: rule__XCasePart__FallThroughAssignment_3_1
+                    // InternalPerspectiveDsl.g:3810:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalPerspectiveDsl.g:3810:4: rule__XCasePart__FallThroughAssignment_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__FallThroughAssignment_3_1();
@@ -13831,35 +13932,35 @@
 
 
     // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
-    // InternalPerspectiveDsl.g:3797:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+    // InternalPerspectiveDsl.g:3818:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
     public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3801:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
-            int alt33=2;
-            int LA33_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3822:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+            int alt34=2;
+            int LA34_0 = input.LA(1);
 
-            if ( (LA33_0==44||LA33_0==132) ) {
-                alt33=1;
+            if ( (LA34_0==44||LA34_0==133) ) {
+                alt34=1;
             }
-            else if ( ((LA33_0>=RULE_ID && LA33_0<=RULE_DECIMAL)||LA33_0==27||(LA33_0>=34 && LA33_0<=35)||LA33_0==40||(LA33_0>=45 && LA33_0<=50)||LA33_0==54||LA33_0==98||(LA33_0>=102 && LA33_0<=103)||LA33_0==106||LA33_0==108||(LA33_0>=112 && LA33_0<=120)||LA33_0==122||LA33_0==133) ) {
-                alt33=2;
+            else if ( ((LA34_0>=RULE_ID && LA34_0<=RULE_DECIMAL)||LA34_0==27||(LA34_0>=34 && LA34_0<=35)||LA34_0==40||(LA34_0>=45 && LA34_0<=50)||LA34_0==54||LA34_0==98||(LA34_0>=102 && LA34_0<=103)||LA34_0==106||LA34_0==108||(LA34_0>=112 && LA34_0<=120)||LA34_0==122||LA34_0==134) ) {
+                alt34=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 33, 0, input);
+                    new NoViableAltException("", 34, 0, input);
 
                 throw nvae;
             }
-            switch (alt33) {
+            switch (alt34) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3802:2: ( ruleXVariableDeclaration )
+                    // InternalPerspectiveDsl.g:3823:2: ( ruleXVariableDeclaration )
                     {
-                    // InternalPerspectiveDsl.g:3802:2: ( ruleXVariableDeclaration )
-                    // InternalPerspectiveDsl.g:3803:3: ruleXVariableDeclaration
+                    // InternalPerspectiveDsl.g:3823:2: ( ruleXVariableDeclaration )
+                    // InternalPerspectiveDsl.g:3824:3: ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
@@ -13879,10 +13980,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3808:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:3829:2: ( ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:3808:2: ( ruleXExpression )
-                    // InternalPerspectiveDsl.g:3809:3: ruleXExpression
+                    // InternalPerspectiveDsl.g:3829:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:3830:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
@@ -13919,41 +14020,41 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
-    // InternalPerspectiveDsl.g:3818:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+    // InternalPerspectiveDsl.g:3839:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
     public final void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3822:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
-            int alt34=2;
-            int LA34_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3843:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+            int alt35=2;
+            int LA35_0 = input.LA(1);
 
-            if ( (LA34_0==132) ) {
-                alt34=1;
+            if ( (LA35_0==133) ) {
+                alt35=1;
             }
-            else if ( (LA34_0==44) ) {
-                alt34=2;
+            else if ( (LA35_0==44) ) {
+                alt35=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 34, 0, input);
+                    new NoViableAltException("", 35, 0, input);
 
                 throw nvae;
             }
-            switch (alt34) {
+            switch (alt35) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3823:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalPerspectiveDsl.g:3844:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3823:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
-                    // InternalPerspectiveDsl.g:3824:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalPerspectiveDsl.g:3844:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalPerspectiveDsl.g:3845:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3825:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
-                    // InternalPerspectiveDsl.g:3825:4: rule__XVariableDeclaration__WriteableAssignment_1_0
+                    // InternalPerspectiveDsl.g:3846:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalPerspectiveDsl.g:3846:4: rule__XVariableDeclaration__WriteableAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__WriteableAssignment_1_0();
@@ -13973,10 +14074,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3829:2: ( 'val' )
+                    // InternalPerspectiveDsl.g:3850:2: ( 'val' )
                     {
-                    // InternalPerspectiveDsl.g:3829:2: ( 'val' )
-                    // InternalPerspectiveDsl.g:3830:3: 'val'
+                    // InternalPerspectiveDsl.g:3850:2: ( 'val' )
+                    // InternalPerspectiveDsl.g:3851:3: 'val'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
@@ -14009,55 +14110,55 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
-    // InternalPerspectiveDsl.g:3839:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+    // InternalPerspectiveDsl.g:3860: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 {
-            // InternalPerspectiveDsl.g:3843:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3864:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-            if ( (LA35_0==RULE_ID) ) {
-                int LA35_1 = input.LA(2);
+            if ( (LA36_0==RULE_ID) ) {
+                int LA36_1 = input.LA(2);
 
-                if ( (synpred91_InternalPerspectiveDsl()) ) {
-                    alt35=1;
+                if ( (synpred92_InternalPerspectiveDsl()) ) {
+                    alt36=1;
                 }
                 else if ( (true) ) {
-                    alt35=2;
+                    alt36=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 35, 1, input);
+                        new NoViableAltException("", 36, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA35_0==31||LA35_0==98) ) {
-                alt35=1;
+            else if ( (LA36_0==31||LA36_0==98) ) {
+                alt36=1;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 35, 0, input);
+                    new NoViableAltException("", 36, 0, input);
 
                 throw nvae;
             }
-            switch (alt35) {
+            switch (alt36) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3844:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3865:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3844:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:3845:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3865:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3866:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3846:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:3846:4: rule__XVariableDeclaration__Group_2_0__0
+                    // InternalPerspectiveDsl.g:3867:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3867:4: rule__XVariableDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_2_0__0();
@@ -14077,16 +14178,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3850:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:3871:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3850:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
-                    // InternalPerspectiveDsl.g:3851:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:3871:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:3872:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3852:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
-                    // InternalPerspectiveDsl.g:3852:4: rule__XVariableDeclaration__NameAssignment_2_1
+                    // InternalPerspectiveDsl.g:3873:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:3873:4: rule__XVariableDeclaration__NameAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__NameAssignment_2_1();
@@ -14123,27 +14224,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
-    // InternalPerspectiveDsl.g:3860:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3881: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 {
-            // InternalPerspectiveDsl.g:3864:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
-            int alt36=2;
-            alt36 = dfa36.predict(input);
-            switch (alt36) {
+            // InternalPerspectiveDsl.g:3885:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+            int alt37=2;
+            alt37 = dfa37.predict(input);
+            switch (alt37) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3865:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3886:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3865:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-                    // InternalPerspectiveDsl.g:3866:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalPerspectiveDsl.g:3886:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3887:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3867:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-                    // InternalPerspectiveDsl.g:3867:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+                    // InternalPerspectiveDsl.g:3888:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalPerspectiveDsl.g:3888:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -14163,16 +14264,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3871:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3892:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3871:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3872:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3892:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3893:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3873:3: ( rule__XFeatureCall__Group_3_1_1__0 )
-                    // InternalPerspectiveDsl.g:3873:4: rule__XFeatureCall__Group_3_1_1__0
+                    // InternalPerspectiveDsl.g:3894:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3894:4: rule__XFeatureCall__Group_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3_1_1__0();
@@ -14209,54 +14310,54 @@
 
 
     // $ANTLR start "rule__FeatureCallID__Alternatives"
-    // InternalPerspectiveDsl.g:3881:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+    // InternalPerspectiveDsl.g:3902:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
     public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3885:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
-            int alt37=5;
+            // InternalPerspectiveDsl.g:3906:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+            int alt38=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                alt37=1;
+                alt38=1;
                 }
                 break;
             case 45:
                 {
-                alt37=2;
+                alt38=2;
                 }
                 break;
             case 46:
                 {
-                alt37=3;
+                alt38=3;
                 }
                 break;
             case 47:
                 {
-                alt37=4;
+                alt38=4;
                 }
                 break;
             case 48:
                 {
-                alt37=5;
+                alt38=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 37, 0, input);
+                    new NoViableAltException("", 38, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt37) {
+            switch (alt38) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3886:2: ( ruleValidID )
+                    // InternalPerspectiveDsl.g:3907:2: ( ruleValidID )
                     {
-                    // InternalPerspectiveDsl.g:3886:2: ( ruleValidID )
-                    // InternalPerspectiveDsl.g:3887:3: ruleValidID
+                    // InternalPerspectiveDsl.g:3907:2: ( ruleValidID )
+                    // InternalPerspectiveDsl.g:3908:3: ruleValidID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
@@ -14276,10 +14377,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3892:2: ( 'extends' )
+                    // InternalPerspectiveDsl.g:3913:2: ( 'extends' )
                     {
-                    // InternalPerspectiveDsl.g:3892:2: ( 'extends' )
-                    // InternalPerspectiveDsl.g:3893:3: 'extends'
+                    // InternalPerspectiveDsl.g:3913:2: ( 'extends' )
+                    // InternalPerspectiveDsl.g:3914:3: 'extends'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
@@ -14295,10 +14396,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3898:2: ( 'static' )
+                    // InternalPerspectiveDsl.g:3919:2: ( 'static' )
                     {
-                    // InternalPerspectiveDsl.g:3898:2: ( 'static' )
-                    // InternalPerspectiveDsl.g:3899:3: 'static'
+                    // InternalPerspectiveDsl.g:3919:2: ( 'static' )
+                    // InternalPerspectiveDsl.g:3920:3: 'static'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
@@ -14314,10 +14415,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3904:2: ( 'import' )
+                    // InternalPerspectiveDsl.g:3925:2: ( 'import' )
                     {
-                    // InternalPerspectiveDsl.g:3904:2: ( 'import' )
-                    // InternalPerspectiveDsl.g:3905:3: 'import'
+                    // InternalPerspectiveDsl.g:3925:2: ( 'import' )
+                    // InternalPerspectiveDsl.g:3926:3: 'import'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
@@ -14333,10 +14434,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3910:2: ( 'extension' )
+                    // InternalPerspectiveDsl.g:3931:2: ( 'extension' )
                     {
-                    // InternalPerspectiveDsl.g:3910:2: ( 'extension' )
-                    // InternalPerspectiveDsl.g:3911:3: 'extension'
+                    // InternalPerspectiveDsl.g:3931:2: ( 'extension' )
+                    // InternalPerspectiveDsl.g:3932:3: 'extension'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
@@ -14369,35 +14470,35 @@
 
 
     // $ANTLR start "rule__IdOrSuper__Alternatives"
-    // InternalPerspectiveDsl.g:3920:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+    // InternalPerspectiveDsl.g:3941:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
     public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3924:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
-            int alt38=2;
-            int LA38_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3945:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+            int alt39=2;
+            int LA39_0 = input.LA(1);
 
-            if ( (LA38_0==RULE_ID||(LA38_0>=45 && LA38_0<=48)) ) {
-                alt38=1;
+            if ( (LA39_0==RULE_ID||(LA39_0>=45 && LA39_0<=48)) ) {
+                alt39=1;
             }
-            else if ( (LA38_0==49) ) {
-                alt38=2;
+            else if ( (LA39_0==49) ) {
+                alt39=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 38, 0, input);
+                    new NoViableAltException("", 39, 0, input);
 
                 throw nvae;
             }
-            switch (alt38) {
+            switch (alt39) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3925:2: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:3946:2: ( ruleFeatureCallID )
                     {
-                    // InternalPerspectiveDsl.g:3925:2: ( ruleFeatureCallID )
-                    // InternalPerspectiveDsl.g:3926:3: ruleFeatureCallID
+                    // InternalPerspectiveDsl.g:3946:2: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:3947:3: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
@@ -14417,10 +14518,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3931:2: ( 'super' )
+                    // InternalPerspectiveDsl.g:3952:2: ( 'super' )
                     {
-                    // InternalPerspectiveDsl.g:3931:2: ( 'super' )
-                    // InternalPerspectiveDsl.g:3932:3: 'super'
+                    // InternalPerspectiveDsl.g:3952:2: ( 'super' )
+                    // InternalPerspectiveDsl.g:3953:3: 'super'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
@@ -14453,27 +14554,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
-    // InternalPerspectiveDsl.g:3941:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3962: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 {
-            // InternalPerspectiveDsl.g:3945:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
-            int alt39=2;
-            alt39 = dfa39.predict(input);
-            switch (alt39) {
+            // InternalPerspectiveDsl.g:3966:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+            int alt40=2;
+            alt40 = dfa40.predict(input);
+            switch (alt40) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3946:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalPerspectiveDsl.g:3967:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3946:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-                    // InternalPerspectiveDsl.g:3947:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalPerspectiveDsl.g:3967:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalPerspectiveDsl.g:3968:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3948:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-                    // InternalPerspectiveDsl.g:3948:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+                    // InternalPerspectiveDsl.g:3969:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalPerspectiveDsl.g:3969:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -14493,16 +14594,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3952:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3973:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3952:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3953:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalPerspectiveDsl.g:3973:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3974:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3954:3: ( rule__XConstructorCall__Group_4_1_1__0 )
-                    // InternalPerspectiveDsl.g:3954:4: rule__XConstructorCall__Group_4_1_1__0
+                    // InternalPerspectiveDsl.g:3975:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalPerspectiveDsl.g:3975:4: rule__XConstructorCall__Group_4_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4_1_1__0();
@@ -14539,35 +14640,35 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
-    // InternalPerspectiveDsl.g:3962:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+    // InternalPerspectiveDsl.g:3983:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
     public final void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3966:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
-            int alt40=2;
-            int LA40_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3987:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+            int alt41=2;
+            int LA41_0 = input.LA(1);
 
-            if ( (LA40_0==50) ) {
-                alt40=1;
+            if ( (LA41_0==50) ) {
+                alt41=1;
             }
-            else if ( (LA40_0==133) ) {
-                alt40=2;
+            else if ( (LA41_0==134) ) {
+                alt41=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 40, 0, input);
+                    new NoViableAltException("", 41, 0, input);
 
                 throw nvae;
             }
-            switch (alt40) {
+            switch (alt41) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3967:2: ( 'false' )
+                    // InternalPerspectiveDsl.g:3988:2: ( 'false' )
                     {
-                    // InternalPerspectiveDsl.g:3967:2: ( 'false' )
-                    // InternalPerspectiveDsl.g:3968:3: 'false'
+                    // InternalPerspectiveDsl.g:3988:2: ( 'false' )
+                    // InternalPerspectiveDsl.g:3989:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
@@ -14583,16 +14684,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3973:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalPerspectiveDsl.g:3994:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3973:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
-                    // InternalPerspectiveDsl.g:3974:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalPerspectiveDsl.g:3994:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalPerspectiveDsl.g:3995:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3975:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
-                    // InternalPerspectiveDsl.g:3975:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
+                    // InternalPerspectiveDsl.g:3996:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalPerspectiveDsl.g:3996:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBooleanLiteral__IsTrueAssignment_1_1();
@@ -14629,41 +14730,41 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
-    // InternalPerspectiveDsl.g:3983:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+    // InternalPerspectiveDsl.g:4004: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 {
-            // InternalPerspectiveDsl.g:3987:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
-            int alt41=2;
-            int LA41_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4008:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+            int alt42=2;
+            int LA42_0 = input.LA(1);
 
-            if ( (LA41_0==123) ) {
-                alt41=1;
+            if ( (LA42_0==123) ) {
+                alt42=1;
             }
-            else if ( (LA41_0==121) ) {
-                alt41=2;
+            else if ( (LA42_0==121) ) {
+                alt42=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 41, 0, input);
+                    new NoViableAltException("", 42, 0, input);
 
                 throw nvae;
             }
-            switch (alt41) {
+            switch (alt42) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3988:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:4009:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3988:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:3989:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:4009:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:4010:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3990:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:3990:4: rule__XTryCatchFinallyExpression__Group_3_0__0
+                    // InternalPerspectiveDsl.g:4011:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:4011:4: rule__XTryCatchFinallyExpression__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0__0();
@@ -14683,16 +14784,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3994:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:4015:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3994:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:3995:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:4015:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:4016:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3996:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:3996:4: rule__XTryCatchFinallyExpression__Group_3_1__0
+                    // InternalPerspectiveDsl.g:4017:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:4017:4: rule__XTryCatchFinallyExpression__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_1__0();
@@ -14729,35 +14830,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives"
-    // InternalPerspectiveDsl.g:4004:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+    // InternalPerspectiveDsl.g:4025:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
     public final void rule__Number__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4008:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
-            int alt42=2;
-            int LA42_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4029:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+            int alt43=2;
+            int LA43_0 = input.LA(1);
 
-            if ( (LA42_0==RULE_HEX) ) {
-                alt42=1;
+            if ( (LA43_0==RULE_HEX) ) {
+                alt43=1;
             }
-            else if ( ((LA42_0>=RULE_INT && LA42_0<=RULE_DECIMAL)) ) {
-                alt42=2;
+            else if ( ((LA43_0>=RULE_INT && LA43_0<=RULE_DECIMAL)) ) {
+                alt43=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 42, 0, input);
+                    new NoViableAltException("", 43, 0, input);
 
                 throw nvae;
             }
-            switch (alt42) {
+            switch (alt43) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4009:2: ( RULE_HEX )
+                    // InternalPerspectiveDsl.g:4030:2: ( RULE_HEX )
                     {
-                    // InternalPerspectiveDsl.g:4009:2: ( RULE_HEX )
-                    // InternalPerspectiveDsl.g:4010:3: RULE_HEX
+                    // InternalPerspectiveDsl.g:4030:2: ( RULE_HEX )
+                    // InternalPerspectiveDsl.g:4031:3: RULE_HEX
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
@@ -14773,16 +14874,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4015:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:4036:2: ( ( rule__Number__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:4015:2: ( ( rule__Number__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:4016:3: ( rule__Number__Group_1__0 )
+                    // InternalPerspectiveDsl.g:4036:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:4037:3: ( rule__Number__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:4017:3: ( rule__Number__Group_1__0 )
-                    // InternalPerspectiveDsl.g:4017:4: rule__Number__Group_1__0
+                    // InternalPerspectiveDsl.g:4038:3: ( rule__Number__Group_1__0 )
+                    // InternalPerspectiveDsl.g:4038:4: rule__Number__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1__0();
@@ -14819,35 +14920,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_0"
-    // InternalPerspectiveDsl.g:4025:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalPerspectiveDsl.g:4046:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
     public final void rule__Number__Alternatives_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4029:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4050:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt44=2;
+            int LA44_0 = input.LA(1);
 
-            if ( (LA43_0==RULE_INT) ) {
-                alt43=1;
+            if ( (LA44_0==RULE_INT) ) {
+                alt44=1;
             }
-            else if ( (LA43_0==RULE_DECIMAL) ) {
-                alt43=2;
+            else if ( (LA44_0==RULE_DECIMAL) ) {
+                alt44=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 43, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
-            switch (alt43) {
+            switch (alt44) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4030:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:4051:2: ( RULE_INT )
                     {
-                    // InternalPerspectiveDsl.g:4030:2: ( RULE_INT )
-                    // InternalPerspectiveDsl.g:4031:3: RULE_INT
+                    // InternalPerspectiveDsl.g:4051:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:4052:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
@@ -14863,10 +14964,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4036:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:4057:2: ( RULE_DECIMAL )
                     {
-                    // InternalPerspectiveDsl.g:4036:2: ( RULE_DECIMAL )
-                    // InternalPerspectiveDsl.g:4037:3: RULE_DECIMAL
+                    // InternalPerspectiveDsl.g:4057:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:4058:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
@@ -14899,35 +15000,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_1_1"
-    // InternalPerspectiveDsl.g:4046:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalPerspectiveDsl.g:4067: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 {
-            // InternalPerspectiveDsl.g:4050:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
-            int alt44=2;
-            int LA44_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4071:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt45=2;
+            int LA45_0 = input.LA(1);
 
-            if ( (LA44_0==RULE_INT) ) {
-                alt44=1;
+            if ( (LA45_0==RULE_INT) ) {
+                alt45=1;
             }
-            else if ( (LA44_0==RULE_DECIMAL) ) {
-                alt44=2;
+            else if ( (LA45_0==RULE_DECIMAL) ) {
+                alt45=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 44, 0, input);
+                    new NoViableAltException("", 45, 0, input);
 
                 throw nvae;
             }
-            switch (alt44) {
+            switch (alt45) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4051:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:4072:2: ( RULE_INT )
                     {
-                    // InternalPerspectiveDsl.g:4051:2: ( RULE_INT )
-                    // InternalPerspectiveDsl.g:4052:3: RULE_INT
+                    // InternalPerspectiveDsl.g:4072:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:4073:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
@@ -14943,10 +15044,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4057:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:4078:2: ( RULE_DECIMAL )
                     {
-                    // InternalPerspectiveDsl.g:4057:2: ( RULE_DECIMAL )
-                    // InternalPerspectiveDsl.g:4058:3: RULE_DECIMAL
+                    // InternalPerspectiveDsl.g:4078:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:4079:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
@@ -14979,41 +15080,41 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Alternatives"
-    // InternalPerspectiveDsl.g:4067:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+    // InternalPerspectiveDsl.g:4088:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
     public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4071:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4092:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+            int alt46=2;
+            int LA46_0 = input.LA(1);
 
-            if ( (LA45_0==RULE_ID) ) {
-                alt45=1;
+            if ( (LA46_0==RULE_ID) ) {
+                alt46=1;
             }
-            else if ( (LA45_0==31||LA45_0==98) ) {
-                alt45=2;
+            else if ( (LA46_0==31||LA46_0==98) ) {
+                alt46=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
-            switch (alt45) {
+            switch (alt46) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4072:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:4093:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:4072:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:4073:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalPerspectiveDsl.g:4093:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:4094:3: ( rule__JvmTypeReference__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:4074:3: ( rule__JvmTypeReference__Group_0__0 )
-                    // InternalPerspectiveDsl.g:4074:4: rule__JvmTypeReference__Group_0__0
+                    // InternalPerspectiveDsl.g:4095:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalPerspectiveDsl.g:4095:4: rule__JvmTypeReference__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmTypeReference__Group_0__0();
@@ -15033,10 +15134,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4078:2: ( ruleXFunctionTypeRef )
+                    // InternalPerspectiveDsl.g:4099:2: ( ruleXFunctionTypeRef )
                     {
-                    // InternalPerspectiveDsl.g:4078:2: ( ruleXFunctionTypeRef )
-                    // InternalPerspectiveDsl.g:4079:3: ruleXFunctionTypeRef
+                    // InternalPerspectiveDsl.g:4099:2: ( ruleXFunctionTypeRef )
+                    // InternalPerspectiveDsl.g:4100:3: ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
@@ -15073,35 +15174,35 @@
 
 
     // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
-    // InternalPerspectiveDsl.g:4088:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+    // InternalPerspectiveDsl.g:4109:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
     public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4092:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
-            int alt46=2;
-            int LA46_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4113:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( (LA46_0==RULE_ID||LA46_0==31||LA46_0==98) ) {
-                alt46=1;
+            if ( (LA47_0==RULE_ID||LA47_0==31||LA47_0==98) ) {
+                alt47=1;
             }
-            else if ( (LA46_0==124) ) {
-                alt46=2;
+            else if ( (LA47_0==124) ) {
+                alt47=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 46, 0, input);
+                    new NoViableAltException("", 47, 0, input);
 
                 throw nvae;
             }
-            switch (alt46) {
+            switch (alt47) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4093:2: ( ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:4114:2: ( ruleJvmTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:4093:2: ( ruleJvmTypeReference )
-                    // InternalPerspectiveDsl.g:4094:3: ruleJvmTypeReference
+                    // InternalPerspectiveDsl.g:4114:2: ( ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:4115:3: ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
@@ -15121,10 +15222,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4099:2: ( ruleJvmWildcardTypeReference )
+                    // InternalPerspectiveDsl.g:4120:2: ( ruleJvmWildcardTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:4099:2: ( ruleJvmWildcardTypeReference )
-                    // InternalPerspectiveDsl.g:4100:3: ruleJvmWildcardTypeReference
+                    // InternalPerspectiveDsl.g:4120:2: ( ruleJvmWildcardTypeReference )
+                    // InternalPerspectiveDsl.g:4121:3: ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
@@ -15161,41 +15262,41 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
-    // InternalPerspectiveDsl.g:4109:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
+    // InternalPerspectiveDsl.g:4130: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 {
-            // InternalPerspectiveDsl.g:4113:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
-            int alt47=2;
-            int LA47_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4134:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
+            int alt48=2;
+            int LA48_0 = input.LA(1);
 
-            if ( (LA47_0==45) ) {
-                alt47=1;
+            if ( (LA48_0==45) ) {
+                alt48=1;
             }
-            else if ( (LA47_0==49) ) {
-                alt47=2;
+            else if ( (LA48_0==49) ) {
+                alt48=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 47, 0, input);
+                    new NoViableAltException("", 48, 0, input);
 
                 throw nvae;
             }
-            switch (alt47) {
+            switch (alt48) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4114:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:4135:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:4114:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:4115:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:4135:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:4136:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:4116:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:4116:4: rule__JvmWildcardTypeReference__Group_2_0__0
+                    // InternalPerspectiveDsl.g:4137:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:4137:4: rule__JvmWildcardTypeReference__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_0__0();
@@ -15215,16 +15316,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4120:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:4141:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:4120:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
-                    // InternalPerspectiveDsl.g:4121:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:4141:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:4142:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:4122:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
-                    // InternalPerspectiveDsl.g:4122:4: rule__JvmWildcardTypeReference__Group_2_1__0
+                    // InternalPerspectiveDsl.g:4143:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:4143:4: rule__JvmWildcardTypeReference__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_1__0();
@@ -15261,41 +15362,41 @@
 
 
     // $ANTLR start "rule__SashOrientation__Alternatives"
-    // InternalPerspectiveDsl.g:4130:1: rule__SashOrientation__Alternatives : ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) );
+    // InternalPerspectiveDsl.g:4151:1: rule__SashOrientation__Alternatives : ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) );
     public final void rule__SashOrientation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4134:1: ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) )
-            int alt48=2;
-            int LA48_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4155:1: ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) )
+            int alt49=2;
+            int LA49_0 = input.LA(1);
 
-            if ( (LA48_0==51) ) {
-                alt48=1;
+            if ( (LA49_0==51) ) {
+                alt49=1;
             }
-            else if ( (LA48_0==52) ) {
-                alt48=2;
+            else if ( (LA49_0==52) ) {
+                alt49=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 48, 0, input);
+                    new NoViableAltException("", 49, 0, input);
 
                 throw nvae;
             }
-            switch (alt48) {
+            switch (alt49) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4135:2: ( ( 'horizontal' ) )
+                    // InternalPerspectiveDsl.g:4156:2: ( ( 'horizontal' ) )
                     {
-                    // InternalPerspectiveDsl.g:4135:2: ( ( 'horizontal' ) )
-                    // InternalPerspectiveDsl.g:4136:3: ( 'horizontal' )
+                    // InternalPerspectiveDsl.g:4156:2: ( ( 'horizontal' ) )
+                    // InternalPerspectiveDsl.g:4157:3: ( 'horizontal' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSashOrientationAccess().getHORIZONTALEnumLiteralDeclaration_0()); 
                     }
-                    // InternalPerspectiveDsl.g:4137:3: ( 'horizontal' )
-                    // InternalPerspectiveDsl.g:4137:4: 'horizontal'
+                    // InternalPerspectiveDsl.g:4158:3: ( 'horizontal' )
+                    // InternalPerspectiveDsl.g:4158:4: 'horizontal'
                     {
                     match(input,51,FOLLOW_2); if (state.failed) return ;
 
@@ -15311,16 +15412,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4141:2: ( ( 'vertical' ) )
+                    // InternalPerspectiveDsl.g:4162:2: ( ( 'vertical' ) )
                     {
-                    // InternalPerspectiveDsl.g:4141:2: ( ( 'vertical' ) )
-                    // InternalPerspectiveDsl.g:4142:3: ( 'vertical' )
+                    // InternalPerspectiveDsl.g:4162:2: ( ( 'vertical' ) )
+                    // InternalPerspectiveDsl.g:4163:3: ( 'vertical' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSashOrientationAccess().getVERTICALEnumLiteralDeclaration_1()); 
                     }
-                    // InternalPerspectiveDsl.g:4143:3: ( 'vertical' )
-                    // InternalPerspectiveDsl.g:4143:4: 'vertical'
+                    // InternalPerspectiveDsl.g:4164:3: ( 'vertical' )
+                    // InternalPerspectiveDsl.g:4164:4: 'vertical'
                     {
                     match(input,52,FOLLOW_2); if (state.failed) return ;
 
@@ -15353,14 +15454,14 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__0"
-    // InternalPerspectiveDsl.g:4151:1: rule__PerspectiveModel__Group__0 : rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1 ;
+    // InternalPerspectiveDsl.g:4172:1: rule__PerspectiveModel__Group__0 : rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1 ;
     public final void rule__PerspectiveModel__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4155:1: ( rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1 )
-            // InternalPerspectiveDsl.g:4156:2: rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1
+            // InternalPerspectiveDsl.g:4176:1: ( rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1 )
+            // InternalPerspectiveDsl.g:4177:2: rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__PerspectiveModel__Group__0__Impl();
@@ -15391,31 +15492,31 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__0__Impl"
-    // InternalPerspectiveDsl.g:4163:1: rule__PerspectiveModel__Group__0__Impl : ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? ) ;
+    // InternalPerspectiveDsl.g:4184:1: rule__PerspectiveModel__Group__0__Impl : ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? ) ;
     public final void rule__PerspectiveModel__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4167:1: ( ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? ) )
-            // InternalPerspectiveDsl.g:4168:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
+            // InternalPerspectiveDsl.g:4188:1: ( ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? ) )
+            // InternalPerspectiveDsl.g:4189:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
             {
-            // InternalPerspectiveDsl.g:4168:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
-            // InternalPerspectiveDsl.g:4169:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
+            // InternalPerspectiveDsl.g:4189:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
+            // InternalPerspectiveDsl.g:4190:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getImportSectionAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:4170:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
-            int alt49=2;
-            int LA49_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4191:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
+            int alt50=2;
+            int LA50_0 = input.LA(1);
 
-            if ( (LA49_0==47) ) {
-                alt49=1;
+            if ( (LA50_0==47) ) {
+                alt50=1;
             }
-            switch (alt49) {
+            switch (alt50) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4170:3: rule__PerspectiveModel__ImportSectionAssignment_0
+                    // InternalPerspectiveDsl.g:4191:3: rule__PerspectiveModel__ImportSectionAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveModel__ImportSectionAssignment_0();
@@ -15453,14 +15554,14 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__1"
-    // InternalPerspectiveDsl.g:4178:1: rule__PerspectiveModel__Group__1 : rule__PerspectiveModel__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:4199:1: rule__PerspectiveModel__Group__1 : rule__PerspectiveModel__Group__1__Impl ;
     public final void rule__PerspectiveModel__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4182:1: ( rule__PerspectiveModel__Group__1__Impl )
-            // InternalPerspectiveDsl.g:4183:2: rule__PerspectiveModel__Group__1__Impl
+            // InternalPerspectiveDsl.g:4203:1: ( rule__PerspectiveModel__Group__1__Impl )
+            // InternalPerspectiveDsl.g:4204:2: rule__PerspectiveModel__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveModel__Group__1__Impl();
@@ -15486,35 +15587,35 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__1__Impl"
-    // InternalPerspectiveDsl.g:4189:1: rule__PerspectiveModel__Group__1__Impl : ( ( rule__PerspectiveModel__PackagesAssignment_1 )* ) ;
+    // InternalPerspectiveDsl.g:4210:1: rule__PerspectiveModel__Group__1__Impl : ( ( rule__PerspectiveModel__PackagesAssignment_1 )* ) ;
     public final void rule__PerspectiveModel__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4193:1: ( ( ( rule__PerspectiveModel__PackagesAssignment_1 )* ) )
-            // InternalPerspectiveDsl.g:4194:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
+            // InternalPerspectiveDsl.g:4214:1: ( ( ( rule__PerspectiveModel__PackagesAssignment_1 )* ) )
+            // InternalPerspectiveDsl.g:4215:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
             {
-            // InternalPerspectiveDsl.g:4194:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
-            // InternalPerspectiveDsl.g:4195:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
+            // InternalPerspectiveDsl.g:4215:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
+            // InternalPerspectiveDsl.g:4216:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getPackagesAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:4196:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
-            loop50:
+            // InternalPerspectiveDsl.g:4217:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
+            loop51:
             do {
-                int alt50=2;
-                int LA50_0 = input.LA(1);
+                int alt51=2;
+                int LA51_0 = input.LA(1);
 
-                if ( (LA50_0==53) ) {
-                    alt50=1;
+                if ( (LA51_0==53) ) {
+                    alt51=1;
                 }
 
 
-                switch (alt50) {
+                switch (alt51) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4196:3: rule__PerspectiveModel__PackagesAssignment_1
+            	    // InternalPerspectiveDsl.g:4217:3: rule__PerspectiveModel__PackagesAssignment_1
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__PerspectiveModel__PackagesAssignment_1();
@@ -15526,7 +15627,7 @@
             	    break;
 
             	default :
-            	    break loop50;
+            	    break loop51;
                 }
             } while (true);
 
@@ -15555,14 +15656,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__0"
-    // InternalPerspectiveDsl.g:4205:1: rule__PerspectivePackage__Group__0 : rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1 ;
+    // InternalPerspectiveDsl.g:4226:1: rule__PerspectivePackage__Group__0 : rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1 ;
     public final void rule__PerspectivePackage__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4209:1: ( rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1 )
-            // InternalPerspectiveDsl.g:4210:2: rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1
+            // InternalPerspectiveDsl.g:4230:1: ( rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1 )
+            // InternalPerspectiveDsl.g:4231:2: rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__PerspectivePackage__Group__0__Impl();
@@ -15593,23 +15694,23 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__0__Impl"
-    // InternalPerspectiveDsl.g:4217:1: rule__PerspectivePackage__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:4238:1: rule__PerspectivePackage__Group__0__Impl : ( () ) ;
     public final void rule__PerspectivePackage__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4221:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:4222:1: ( () )
+            // InternalPerspectiveDsl.g:4242:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:4243:1: ( () )
             {
-            // InternalPerspectiveDsl.g:4222:1: ( () )
-            // InternalPerspectiveDsl.g:4223:2: ()
+            // InternalPerspectiveDsl.g:4243:1: ( () )
+            // InternalPerspectiveDsl.g:4244:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPerspectivePackageAction_0()); 
             }
-            // InternalPerspectiveDsl.g:4224:2: ()
-            // InternalPerspectiveDsl.g:4224:3: 
+            // InternalPerspectiveDsl.g:4245:2: ()
+            // InternalPerspectiveDsl.g:4245:3: 
             {
             }
 
@@ -15634,14 +15735,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__1"
-    // InternalPerspectiveDsl.g:4232:1: rule__PerspectivePackage__Group__1 : rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2 ;
+    // InternalPerspectiveDsl.g:4253:1: rule__PerspectivePackage__Group__1 : rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2 ;
     public final void rule__PerspectivePackage__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4236:1: ( rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2 )
-            // InternalPerspectiveDsl.g:4237:2: rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2
+            // InternalPerspectiveDsl.g:4257:1: ( rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2 )
+            // InternalPerspectiveDsl.g:4258:2: rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePackage__Group__1__Impl();
@@ -15672,17 +15773,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__1__Impl"
-    // InternalPerspectiveDsl.g:4244:1: rule__PerspectivePackage__Group__1__Impl : ( 'package' ) ;
+    // InternalPerspectiveDsl.g:4265:1: rule__PerspectivePackage__Group__1__Impl : ( 'package' ) ;
     public final void rule__PerspectivePackage__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4248:1: ( ( 'package' ) )
-            // InternalPerspectiveDsl.g:4249:1: ( 'package' )
+            // InternalPerspectiveDsl.g:4269:1: ( ( 'package' ) )
+            // InternalPerspectiveDsl.g:4270:1: ( 'package' )
             {
-            // InternalPerspectiveDsl.g:4249:1: ( 'package' )
-            // InternalPerspectiveDsl.g:4250:2: 'package'
+            // InternalPerspectiveDsl.g:4270:1: ( 'package' )
+            // InternalPerspectiveDsl.g:4271:2: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPackageKeyword_1()); 
@@ -15713,14 +15814,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__2"
-    // InternalPerspectiveDsl.g:4259:1: rule__PerspectivePackage__Group__2 : rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3 ;
+    // InternalPerspectiveDsl.g:4280:1: rule__PerspectivePackage__Group__2 : rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3 ;
     public final void rule__PerspectivePackage__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4263:1: ( rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3 )
-            // InternalPerspectiveDsl.g:4264:2: rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3
+            // InternalPerspectiveDsl.g:4284:1: ( rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3 )
+            // InternalPerspectiveDsl.g:4285:2: rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__PerspectivePackage__Group__2__Impl();
@@ -15751,23 +15852,23 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__2__Impl"
-    // InternalPerspectiveDsl.g:4271:1: rule__PerspectivePackage__Group__2__Impl : ( ( rule__PerspectivePackage__NameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:4292:1: rule__PerspectivePackage__Group__2__Impl : ( ( rule__PerspectivePackage__NameAssignment_2 ) ) ;
     public final void rule__PerspectivePackage__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4275:1: ( ( ( rule__PerspectivePackage__NameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:4276:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4296:1: ( ( ( rule__PerspectivePackage__NameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:4297:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:4276:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:4277:2: ( rule__PerspectivePackage__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4297:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4298:2: ( rule__PerspectivePackage__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:4278:2: ( rule__PerspectivePackage__NameAssignment_2 )
-            // InternalPerspectiveDsl.g:4278:3: rule__PerspectivePackage__NameAssignment_2
+            // InternalPerspectiveDsl.g:4299:2: ( rule__PerspectivePackage__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4299:3: rule__PerspectivePackage__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePackage__NameAssignment_2();
@@ -15802,14 +15903,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__3"
-    // InternalPerspectiveDsl.g:4286:1: rule__PerspectivePackage__Group__3 : rule__PerspectivePackage__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:4307:1: rule__PerspectivePackage__Group__3 : rule__PerspectivePackage__Group__3__Impl ;
     public final void rule__PerspectivePackage__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4290:1: ( rule__PerspectivePackage__Group__3__Impl )
-            // InternalPerspectiveDsl.g:4291:2: rule__PerspectivePackage__Group__3__Impl
+            // InternalPerspectiveDsl.g:4311:1: ( rule__PerspectivePackage__Group__3__Impl )
+            // InternalPerspectiveDsl.g:4312:2: rule__PerspectivePackage__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePackage__Group__3__Impl();
@@ -15835,31 +15936,31 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__3__Impl"
-    // InternalPerspectiveDsl.g:4297:1: rule__PerspectivePackage__Group__3__Impl : ( ( rule__PerspectivePackage__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:4318:1: rule__PerspectivePackage__Group__3__Impl : ( ( rule__PerspectivePackage__Group_3__0 )? ) ;
     public final void rule__PerspectivePackage__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4301:1: ( ( ( rule__PerspectivePackage__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:4302:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4322:1: ( ( ( rule__PerspectivePackage__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:4323:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:4302:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:4303:2: ( rule__PerspectivePackage__Group_3__0 )?
+            // InternalPerspectiveDsl.g:4323:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4324:2: ( rule__PerspectivePackage__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:4304:2: ( rule__PerspectivePackage__Group_3__0 )?
-            int alt51=2;
-            int LA51_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4325:2: ( rule__PerspectivePackage__Group_3__0 )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
 
-            if ( (LA51_0==54) ) {
-                alt51=1;
+            if ( (LA52_0==54) ) {
+                alt52=1;
             }
-            switch (alt51) {
+            switch (alt52) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4304:3: rule__PerspectivePackage__Group_3__0
+                    // InternalPerspectiveDsl.g:4325:3: rule__PerspectivePackage__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePackage__Group_3__0();
@@ -15897,14 +15998,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__0"
-    // InternalPerspectiveDsl.g:4313:1: rule__PerspectivePackage__Group_3__0 : rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1 ;
+    // InternalPerspectiveDsl.g:4334:1: rule__PerspectivePackage__Group_3__0 : rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1 ;
     public final void rule__PerspectivePackage__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4317:1: ( rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1 )
-            // InternalPerspectiveDsl.g:4318:2: rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1
+            // InternalPerspectiveDsl.g:4338:1: ( rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1 )
+            // InternalPerspectiveDsl.g:4339:2: rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1
             {
             pushFollow(FOLLOW_9);
             rule__PerspectivePackage__Group_3__0__Impl();
@@ -15935,17 +16036,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:4325:1: rule__PerspectivePackage__Group_3__0__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:4346:1: rule__PerspectivePackage__Group_3__0__Impl : ( '{' ) ;
     public final void rule__PerspectivePackage__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4329:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:4330:1: ( '{' )
+            // InternalPerspectiveDsl.g:4350:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:4351:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:4330:1: ( '{' )
-            // InternalPerspectiveDsl.g:4331:2: '{'
+            // InternalPerspectiveDsl.g:4351:1: ( '{' )
+            // InternalPerspectiveDsl.g:4352:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getLeftCurlyBracketKeyword_3_0()); 
@@ -15976,14 +16077,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__1"
-    // InternalPerspectiveDsl.g:4340:1: rule__PerspectivePackage__Group_3__1 : rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2 ;
+    // InternalPerspectiveDsl.g:4361:1: rule__PerspectivePackage__Group_3__1 : rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2 ;
     public final void rule__PerspectivePackage__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4344:1: ( rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2 )
-            // InternalPerspectiveDsl.g:4345:2: rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2
+            // InternalPerspectiveDsl.g:4365:1: ( rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2 )
+            // InternalPerspectiveDsl.g:4366:2: rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2
             {
             pushFollow(FOLLOW_9);
             rule__PerspectivePackage__Group_3__1__Impl();
@@ -16014,35 +16115,35 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:4352:1: rule__PerspectivePackage__Group_3__1__Impl : ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* ) ;
+    // InternalPerspectiveDsl.g:4373:1: rule__PerspectivePackage__Group_3__1__Impl : ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* ) ;
     public final void rule__PerspectivePackage__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4356:1: ( ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* ) )
-            // InternalPerspectiveDsl.g:4357:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
+            // InternalPerspectiveDsl.g:4377:1: ( ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* ) )
+            // InternalPerspectiveDsl.g:4378:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
             {
-            // InternalPerspectiveDsl.g:4357:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
-            // InternalPerspectiveDsl.g:4358:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
+            // InternalPerspectiveDsl.g:4378:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
+            // InternalPerspectiveDsl.g:4379:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPerspectivesAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:4359:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
-            loop52:
+            // InternalPerspectiveDsl.g:4380:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
+            loop53:
             do {
-                int alt52=2;
-                int LA52_0 = input.LA(1);
+                int alt53=2;
+                int LA53_0 = input.LA(1);
 
-                if ( (LA52_0==56) ) {
-                    alt52=1;
+                if ( (LA53_0==56) ) {
+                    alt53=1;
                 }
 
 
-                switch (alt52) {
+                switch (alt53) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4359:3: rule__PerspectivePackage__PerspectivesAssignment_3_1
+            	    // InternalPerspectiveDsl.g:4380:3: rule__PerspectivePackage__PerspectivesAssignment_3_1
             	    {
             	    pushFollow(FOLLOW_10);
             	    rule__PerspectivePackage__PerspectivesAssignment_3_1();
@@ -16054,7 +16155,7 @@
             	    break;
 
             	default :
-            	    break loop52;
+            	    break loop53;
                 }
             } while (true);
 
@@ -16083,14 +16184,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__2"
-    // InternalPerspectiveDsl.g:4367:1: rule__PerspectivePackage__Group_3__2 : rule__PerspectivePackage__Group_3__2__Impl ;
+    // InternalPerspectiveDsl.g:4388:1: rule__PerspectivePackage__Group_3__2 : rule__PerspectivePackage__Group_3__2__Impl ;
     public final void rule__PerspectivePackage__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4371:1: ( rule__PerspectivePackage__Group_3__2__Impl )
-            // InternalPerspectiveDsl.g:4372:2: rule__PerspectivePackage__Group_3__2__Impl
+            // InternalPerspectiveDsl.g:4392:1: ( rule__PerspectivePackage__Group_3__2__Impl )
+            // InternalPerspectiveDsl.g:4393:2: rule__PerspectivePackage__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePackage__Group_3__2__Impl();
@@ -16116,17 +16217,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:4378:1: rule__PerspectivePackage__Group_3__2__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:4399:1: rule__PerspectivePackage__Group_3__2__Impl : ( '}' ) ;
     public final void rule__PerspectivePackage__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4382:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:4383:1: ( '}' )
+            // InternalPerspectiveDsl.g:4403:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:4404:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:4383:1: ( '}' )
-            // InternalPerspectiveDsl.g:4384:2: '}'
+            // InternalPerspectiveDsl.g:4404:1: ( '}' )
+            // InternalPerspectiveDsl.g:4405:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getRightCurlyBracketKeyword_3_2()); 
@@ -16157,14 +16258,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__0"
-    // InternalPerspectiveDsl.g:4394:1: rule__Perspective__Group__0 : rule__Perspective__Group__0__Impl rule__Perspective__Group__1 ;
+    // InternalPerspectiveDsl.g:4415:1: rule__Perspective__Group__0 : rule__Perspective__Group__0__Impl rule__Perspective__Group__1 ;
     public final void rule__Perspective__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4398:1: ( rule__Perspective__Group__0__Impl rule__Perspective__Group__1 )
-            // InternalPerspectiveDsl.g:4399:2: rule__Perspective__Group__0__Impl rule__Perspective__Group__1
+            // InternalPerspectiveDsl.g:4419:1: ( rule__Perspective__Group__0__Impl rule__Perspective__Group__1 )
+            // InternalPerspectiveDsl.g:4420:2: rule__Perspective__Group__0__Impl rule__Perspective__Group__1
             {
             pushFollow(FOLLOW_11);
             rule__Perspective__Group__0__Impl();
@@ -16195,23 +16296,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group__0__Impl"
-    // InternalPerspectiveDsl.g:4406:1: rule__Perspective__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:4427:1: rule__Perspective__Group__0__Impl : ( () ) ;
     public final void rule__Perspective__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4410:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:4411:1: ( () )
+            // InternalPerspectiveDsl.g:4431:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:4432:1: ( () )
             {
-            // InternalPerspectiveDsl.g:4411:1: ( () )
-            // InternalPerspectiveDsl.g:4412:2: ()
+            // InternalPerspectiveDsl.g:4432:1: ( () )
+            // InternalPerspectiveDsl.g:4433:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getPerspectiveAction_0()); 
             }
-            // InternalPerspectiveDsl.g:4413:2: ()
-            // InternalPerspectiveDsl.g:4413:3: 
+            // InternalPerspectiveDsl.g:4434:2: ()
+            // InternalPerspectiveDsl.g:4434:3: 
             {
             }
 
@@ -16236,14 +16337,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__1"
-    // InternalPerspectiveDsl.g:4421:1: rule__Perspective__Group__1 : rule__Perspective__Group__1__Impl rule__Perspective__Group__2 ;
+    // InternalPerspectiveDsl.g:4442:1: rule__Perspective__Group__1 : rule__Perspective__Group__1__Impl rule__Perspective__Group__2 ;
     public final void rule__Perspective__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4425:1: ( rule__Perspective__Group__1__Impl rule__Perspective__Group__2 )
-            // InternalPerspectiveDsl.g:4426:2: rule__Perspective__Group__1__Impl rule__Perspective__Group__2
+            // InternalPerspectiveDsl.g:4446:1: ( rule__Perspective__Group__1__Impl rule__Perspective__Group__2 )
+            // InternalPerspectiveDsl.g:4447:2: rule__Perspective__Group__1__Impl rule__Perspective__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group__1__Impl();
@@ -16274,17 +16375,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group__1__Impl"
-    // InternalPerspectiveDsl.g:4433:1: rule__Perspective__Group__1__Impl : ( 'perspective' ) ;
+    // InternalPerspectiveDsl.g:4454:1: rule__Perspective__Group__1__Impl : ( 'perspective' ) ;
     public final void rule__Perspective__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4437:1: ( ( 'perspective' ) )
-            // InternalPerspectiveDsl.g:4438:1: ( 'perspective' )
+            // InternalPerspectiveDsl.g:4458:1: ( ( 'perspective' ) )
+            // InternalPerspectiveDsl.g:4459:1: ( 'perspective' )
             {
-            // InternalPerspectiveDsl.g:4438:1: ( 'perspective' )
-            // InternalPerspectiveDsl.g:4439:2: 'perspective'
+            // InternalPerspectiveDsl.g:4459:1: ( 'perspective' )
+            // InternalPerspectiveDsl.g:4460:2: 'perspective'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getPerspectiveKeyword_1()); 
@@ -16315,14 +16416,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__2"
-    // InternalPerspectiveDsl.g:4448:1: rule__Perspective__Group__2 : rule__Perspective__Group__2__Impl rule__Perspective__Group__3 ;
+    // InternalPerspectiveDsl.g:4469:1: rule__Perspective__Group__2 : rule__Perspective__Group__2__Impl rule__Perspective__Group__3 ;
     public final void rule__Perspective__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4452:1: ( rule__Perspective__Group__2__Impl rule__Perspective__Group__3 )
-            // InternalPerspectiveDsl.g:4453:2: rule__Perspective__Group__2__Impl rule__Perspective__Group__3
+            // InternalPerspectiveDsl.g:4473:1: ( rule__Perspective__Group__2__Impl rule__Perspective__Group__3 )
+            // InternalPerspectiveDsl.g:4474:2: rule__Perspective__Group__2__Impl rule__Perspective__Group__3
             {
             pushFollow(FOLLOW_12);
             rule__Perspective__Group__2__Impl();
@@ -16353,23 +16454,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group__2__Impl"
-    // InternalPerspectiveDsl.g:4460:1: rule__Perspective__Group__2__Impl : ( ( rule__Perspective__NameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:4481:1: rule__Perspective__Group__2__Impl : ( ( rule__Perspective__NameAssignment_2 ) ) ;
     public final void rule__Perspective__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4464:1: ( ( ( rule__Perspective__NameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:4465:1: ( ( rule__Perspective__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4485:1: ( ( ( rule__Perspective__NameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:4486:1: ( ( rule__Perspective__NameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:4465:1: ( ( rule__Perspective__NameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:4466:2: ( rule__Perspective__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4486:1: ( ( rule__Perspective__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4487:2: ( rule__Perspective__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:4467:2: ( rule__Perspective__NameAssignment_2 )
-            // InternalPerspectiveDsl.g:4467:3: rule__Perspective__NameAssignment_2
+            // InternalPerspectiveDsl.g:4488:2: ( rule__Perspective__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4488:3: rule__Perspective__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__NameAssignment_2();
@@ -16404,14 +16505,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__3"
-    // InternalPerspectiveDsl.g:4475:1: rule__Perspective__Group__3 : rule__Perspective__Group__3__Impl rule__Perspective__Group__4 ;
+    // InternalPerspectiveDsl.g:4496:1: rule__Perspective__Group__3 : rule__Perspective__Group__3__Impl rule__Perspective__Group__4 ;
     public final void rule__Perspective__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4479:1: ( rule__Perspective__Group__3__Impl rule__Perspective__Group__4 )
-            // InternalPerspectiveDsl.g:4480:2: rule__Perspective__Group__3__Impl rule__Perspective__Group__4
+            // InternalPerspectiveDsl.g:4500:1: ( rule__Perspective__Group__3__Impl rule__Perspective__Group__4 )
+            // InternalPerspectiveDsl.g:4501:2: rule__Perspective__Group__3__Impl rule__Perspective__Group__4
             {
             pushFollow(FOLLOW_12);
             rule__Perspective__Group__3__Impl();
@@ -16442,31 +16543,31 @@
 
 
     // $ANTLR start "rule__Perspective__Group__3__Impl"
-    // InternalPerspectiveDsl.g:4487:1: rule__Perspective__Group__3__Impl : ( ( rule__Perspective__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:4508:1: rule__Perspective__Group__3__Impl : ( ( rule__Perspective__Group_3__0 )? ) ;
     public final void rule__Perspective__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4491:1: ( ( ( rule__Perspective__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:4492:1: ( ( rule__Perspective__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4512:1: ( ( ( rule__Perspective__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:4513:1: ( ( rule__Perspective__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:4492:1: ( ( rule__Perspective__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:4493:2: ( rule__Perspective__Group_3__0 )?
+            // InternalPerspectiveDsl.g:4513:1: ( ( rule__Perspective__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4514:2: ( rule__Perspective__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:4494:2: ( rule__Perspective__Group_3__0 )?
-            int alt53=2;
-            int LA53_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4515:2: ( rule__Perspective__Group_3__0 )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
 
-            if ( (LA53_0==126) ) {
-                alt53=1;
+            if ( (LA54_0==126) ) {
+                alt54=1;
             }
-            switch (alt53) {
+            switch (alt54) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4494:3: rule__Perspective__Group_3__0
+                    // InternalPerspectiveDsl.g:4515:3: rule__Perspective__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_3__0();
@@ -16504,14 +16605,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__4"
-    // InternalPerspectiveDsl.g:4502:1: rule__Perspective__Group__4 : rule__Perspective__Group__4__Impl rule__Perspective__Group__5 ;
+    // InternalPerspectiveDsl.g:4523:1: rule__Perspective__Group__4 : rule__Perspective__Group__4__Impl rule__Perspective__Group__5 ;
     public final void rule__Perspective__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4506:1: ( rule__Perspective__Group__4__Impl rule__Perspective__Group__5 )
-            // InternalPerspectiveDsl.g:4507:2: rule__Perspective__Group__4__Impl rule__Perspective__Group__5
+            // InternalPerspectiveDsl.g:4527:1: ( rule__Perspective__Group__4__Impl rule__Perspective__Group__5 )
+            // InternalPerspectiveDsl.g:4528:2: rule__Perspective__Group__4__Impl rule__Perspective__Group__5
             {
             pushFollow(FOLLOW_12);
             rule__Perspective__Group__4__Impl();
@@ -16542,31 +16643,31 @@
 
 
     // $ANTLR start "rule__Perspective__Group__4__Impl"
-    // InternalPerspectiveDsl.g:4514:1: rule__Perspective__Group__4__Impl : ( ( rule__Perspective__Group_4__0 )? ) ;
+    // InternalPerspectiveDsl.g:4535:1: rule__Perspective__Group__4__Impl : ( ( rule__Perspective__Group_4__0 )? ) ;
     public final void rule__Perspective__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4518:1: ( ( ( rule__Perspective__Group_4__0 )? ) )
-            // InternalPerspectiveDsl.g:4519:1: ( ( rule__Perspective__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:4539:1: ( ( ( rule__Perspective__Group_4__0 )? ) )
+            // InternalPerspectiveDsl.g:4540:1: ( ( rule__Perspective__Group_4__0 )? )
             {
-            // InternalPerspectiveDsl.g:4519:1: ( ( rule__Perspective__Group_4__0 )? )
-            // InternalPerspectiveDsl.g:4520:2: ( rule__Perspective__Group_4__0 )?
+            // InternalPerspectiveDsl.g:4540:1: ( ( rule__Perspective__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:4541:2: ( rule__Perspective__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getGroup_4()); 
             }
-            // InternalPerspectiveDsl.g:4521:2: ( rule__Perspective__Group_4__0 )?
-            int alt54=2;
-            int LA54_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4542:2: ( rule__Perspective__Group_4__0 )?
+            int alt55=2;
+            int LA55_0 = input.LA(1);
 
-            if ( (LA54_0==57) ) {
-                alt54=1;
+            if ( (LA55_0==57) ) {
+                alt55=1;
             }
-            switch (alt54) {
+            switch (alt55) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4521:3: rule__Perspective__Group_4__0
+                    // InternalPerspectiveDsl.g:4542:3: rule__Perspective__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_4__0();
@@ -16604,14 +16705,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__5"
-    // InternalPerspectiveDsl.g:4529:1: rule__Perspective__Group__5 : rule__Perspective__Group__5__Impl rule__Perspective__Group__6 ;
+    // InternalPerspectiveDsl.g:4550:1: rule__Perspective__Group__5 : rule__Perspective__Group__5__Impl rule__Perspective__Group__6 ;
     public final void rule__Perspective__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4533:1: ( rule__Perspective__Group__5__Impl rule__Perspective__Group__6 )
-            // InternalPerspectiveDsl.g:4534:2: rule__Perspective__Group__5__Impl rule__Perspective__Group__6
+            // InternalPerspectiveDsl.g:4554:1: ( rule__Perspective__Group__5__Impl rule__Perspective__Group__6 )
+            // InternalPerspectiveDsl.g:4555:2: rule__Perspective__Group__5__Impl rule__Perspective__Group__6
             {
             pushFollow(FOLLOW_8);
             rule__Perspective__Group__5__Impl();
@@ -16642,23 +16743,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group__5__Impl"
-    // InternalPerspectiveDsl.g:4541:1: rule__Perspective__Group__5__Impl : ( ( rule__Perspective__UnorderedGroup_5 ) ) ;
+    // InternalPerspectiveDsl.g:4562:1: rule__Perspective__Group__5__Impl : ( ( rule__Perspective__UnorderedGroup_5 ) ) ;
     public final void rule__Perspective__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4545:1: ( ( ( rule__Perspective__UnorderedGroup_5 ) ) )
-            // InternalPerspectiveDsl.g:4546:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
+            // InternalPerspectiveDsl.g:4566:1: ( ( ( rule__Perspective__UnorderedGroup_5 ) ) )
+            // InternalPerspectiveDsl.g:4567:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
             {
-            // InternalPerspectiveDsl.g:4546:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
-            // InternalPerspectiveDsl.g:4547:2: ( rule__Perspective__UnorderedGroup_5 )
+            // InternalPerspectiveDsl.g:4567:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
+            // InternalPerspectiveDsl.g:4568:2: ( rule__Perspective__UnorderedGroup_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5()); 
             }
-            // InternalPerspectiveDsl.g:4548:2: ( rule__Perspective__UnorderedGroup_5 )
-            // InternalPerspectiveDsl.g:4548:3: rule__Perspective__UnorderedGroup_5
+            // InternalPerspectiveDsl.g:4569:2: ( rule__Perspective__UnorderedGroup_5 )
+            // InternalPerspectiveDsl.g:4569:3: rule__Perspective__UnorderedGroup_5
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__UnorderedGroup_5();
@@ -16693,14 +16794,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__6"
-    // InternalPerspectiveDsl.g:4556:1: rule__Perspective__Group__6 : rule__Perspective__Group__6__Impl rule__Perspective__Group__7 ;
+    // InternalPerspectiveDsl.g:4577:1: rule__Perspective__Group__6 : rule__Perspective__Group__6__Impl rule__Perspective__Group__7 ;
     public final void rule__Perspective__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4560:1: ( rule__Perspective__Group__6__Impl rule__Perspective__Group__7 )
-            // InternalPerspectiveDsl.g:4561:2: rule__Perspective__Group__6__Impl rule__Perspective__Group__7
+            // InternalPerspectiveDsl.g:4581:1: ( rule__Perspective__Group__6__Impl rule__Perspective__Group__7 )
+            // InternalPerspectiveDsl.g:4582:2: rule__Perspective__Group__6__Impl rule__Perspective__Group__7
             {
             pushFollow(FOLLOW_13);
             rule__Perspective__Group__6__Impl();
@@ -16731,17 +16832,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group__6__Impl"
-    // InternalPerspectiveDsl.g:4568:1: rule__Perspective__Group__6__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:4589:1: rule__Perspective__Group__6__Impl : ( '{' ) ;
     public final void rule__Perspective__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4572:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:4573:1: ( '{' )
+            // InternalPerspectiveDsl.g:4593:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:4594:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:4573:1: ( '{' )
-            // InternalPerspectiveDsl.g:4574:2: '{'
+            // InternalPerspectiveDsl.g:4594:1: ( '{' )
+            // InternalPerspectiveDsl.g:4595:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getLeftCurlyBracketKeyword_6()); 
@@ -16772,14 +16873,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__7"
-    // InternalPerspectiveDsl.g:4583:1: rule__Perspective__Group__7 : rule__Perspective__Group__7__Impl rule__Perspective__Group__8 ;
+    // InternalPerspectiveDsl.g:4604:1: rule__Perspective__Group__7 : rule__Perspective__Group__7__Impl rule__Perspective__Group__8 ;
     public final void rule__Perspective__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4587:1: ( rule__Perspective__Group__7__Impl rule__Perspective__Group__8 )
-            // InternalPerspectiveDsl.g:4588:2: rule__Perspective__Group__7__Impl rule__Perspective__Group__8
+            // InternalPerspectiveDsl.g:4608:1: ( rule__Perspective__Group__7__Impl rule__Perspective__Group__8 )
+            // InternalPerspectiveDsl.g:4609:2: rule__Perspective__Group__7__Impl rule__Perspective__Group__8
             {
             pushFollow(FOLLOW_13);
             rule__Perspective__Group__7__Impl();
@@ -16810,35 +16911,35 @@
 
 
     // $ANTLR start "rule__Perspective__Group__7__Impl"
-    // InternalPerspectiveDsl.g:4595:1: rule__Perspective__Group__7__Impl : ( ( rule__Perspective__ElementsAssignment_7 )* ) ;
+    // InternalPerspectiveDsl.g:4616:1: rule__Perspective__Group__7__Impl : ( ( rule__Perspective__ElementsAssignment_7 )* ) ;
     public final void rule__Perspective__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4599:1: ( ( ( rule__Perspective__ElementsAssignment_7 )* ) )
-            // InternalPerspectiveDsl.g:4600:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
+            // InternalPerspectiveDsl.g:4620:1: ( ( ( rule__Perspective__ElementsAssignment_7 )* ) )
+            // InternalPerspectiveDsl.g:4621:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
             {
-            // InternalPerspectiveDsl.g:4600:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
-            // InternalPerspectiveDsl.g:4601:2: ( rule__Perspective__ElementsAssignment_7 )*
+            // InternalPerspectiveDsl.g:4621:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
+            // InternalPerspectiveDsl.g:4622:2: ( rule__Perspective__ElementsAssignment_7 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getElementsAssignment_7()); 
             }
-            // InternalPerspectiveDsl.g:4602:2: ( rule__Perspective__ElementsAssignment_7 )*
-            loop55:
+            // InternalPerspectiveDsl.g:4623:2: ( rule__Perspective__ElementsAssignment_7 )*
+            loop56:
             do {
-                int alt55=2;
-                int LA55_0 = input.LA(1);
+                int alt56=2;
+                int LA56_0 = input.LA(1);
 
-                if ( (LA55_0==63||LA55_0==67||LA55_0==69) ) {
-                    alt55=1;
+                if ( (LA56_0==63||LA56_0==67||LA56_0==69) ) {
+                    alt56=1;
                 }
 
 
-                switch (alt55) {
+                switch (alt56) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4602:3: rule__Perspective__ElementsAssignment_7
+            	    // InternalPerspectiveDsl.g:4623:3: rule__Perspective__ElementsAssignment_7
             	    {
             	    pushFollow(FOLLOW_14);
             	    rule__Perspective__ElementsAssignment_7();
@@ -16850,7 +16951,7 @@
             	    break;
 
             	default :
-            	    break loop55;
+            	    break loop56;
                 }
             } while (true);
 
@@ -16879,14 +16980,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__8"
-    // InternalPerspectiveDsl.g:4610:1: rule__Perspective__Group__8 : rule__Perspective__Group__8__Impl rule__Perspective__Group__9 ;
+    // InternalPerspectiveDsl.g:4631:1: rule__Perspective__Group__8 : rule__Perspective__Group__8__Impl rule__Perspective__Group__9 ;
     public final void rule__Perspective__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4614:1: ( rule__Perspective__Group__8__Impl rule__Perspective__Group__9 )
-            // InternalPerspectiveDsl.g:4615:2: rule__Perspective__Group__8__Impl rule__Perspective__Group__9
+            // InternalPerspectiveDsl.g:4635:1: ( rule__Perspective__Group__8__Impl rule__Perspective__Group__9 )
+            // InternalPerspectiveDsl.g:4636:2: rule__Perspective__Group__8__Impl rule__Perspective__Group__9
             {
             pushFollow(FOLLOW_13);
             rule__Perspective__Group__8__Impl();
@@ -16917,31 +17018,31 @@
 
 
     // $ANTLR start "rule__Perspective__Group__8__Impl"
-    // InternalPerspectiveDsl.g:4622:1: rule__Perspective__Group__8__Impl : ( ( rule__Perspective__Group_8__0 )? ) ;
+    // InternalPerspectiveDsl.g:4643:1: rule__Perspective__Group__8__Impl : ( ( rule__Perspective__Group_8__0 )? ) ;
     public final void rule__Perspective__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4626:1: ( ( ( rule__Perspective__Group_8__0 )? ) )
-            // InternalPerspectiveDsl.g:4627:1: ( ( rule__Perspective__Group_8__0 )? )
+            // InternalPerspectiveDsl.g:4647:1: ( ( ( rule__Perspective__Group_8__0 )? ) )
+            // InternalPerspectiveDsl.g:4648:1: ( ( rule__Perspective__Group_8__0 )? )
             {
-            // InternalPerspectiveDsl.g:4627:1: ( ( rule__Perspective__Group_8__0 )? )
-            // InternalPerspectiveDsl.g:4628:2: ( rule__Perspective__Group_8__0 )?
+            // InternalPerspectiveDsl.g:4648:1: ( ( rule__Perspective__Group_8__0 )? )
+            // InternalPerspectiveDsl.g:4649:2: ( rule__Perspective__Group_8__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getGroup_8()); 
             }
-            // InternalPerspectiveDsl.g:4629:2: ( rule__Perspective__Group_8__0 )?
-            int alt56=2;
-            int LA56_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4650:2: ( rule__Perspective__Group_8__0 )?
+            int alt57=2;
+            int LA57_0 = input.LA(1);
 
-            if ( (LA56_0==62) ) {
-                alt56=1;
+            if ( (LA57_0==62) ) {
+                alt57=1;
             }
-            switch (alt56) {
+            switch (alt57) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4629:3: rule__Perspective__Group_8__0
+                    // InternalPerspectiveDsl.g:4650:3: rule__Perspective__Group_8__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_8__0();
@@ -16979,14 +17080,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__9"
-    // InternalPerspectiveDsl.g:4637:1: rule__Perspective__Group__9 : rule__Perspective__Group__9__Impl ;
+    // InternalPerspectiveDsl.g:4658:1: rule__Perspective__Group__9 : rule__Perspective__Group__9__Impl ;
     public final void rule__Perspective__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4641:1: ( rule__Perspective__Group__9__Impl )
-            // InternalPerspectiveDsl.g:4642:2: rule__Perspective__Group__9__Impl
+            // InternalPerspectiveDsl.g:4662:1: ( rule__Perspective__Group__9__Impl )
+            // InternalPerspectiveDsl.g:4663:2: rule__Perspective__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group__9__Impl();
@@ -17012,17 +17113,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group__9__Impl"
-    // InternalPerspectiveDsl.g:4648:1: rule__Perspective__Group__9__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:4669:1: rule__Perspective__Group__9__Impl : ( '}' ) ;
     public final void rule__Perspective__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4652:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:4653:1: ( '}' )
+            // InternalPerspectiveDsl.g:4673:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:4674:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:4653:1: ( '}' )
-            // InternalPerspectiveDsl.g:4654:2: '}'
+            // InternalPerspectiveDsl.g:4674:1: ( '}' )
+            // InternalPerspectiveDsl.g:4675:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getRightCurlyBracketKeyword_9()); 
@@ -17053,14 +17154,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__0"
-    // InternalPerspectiveDsl.g:4664:1: rule__Perspective__Group_3__0 : rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1 ;
+    // InternalPerspectiveDsl.g:4685:1: rule__Perspective__Group_3__0 : rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1 ;
     public final void rule__Perspective__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4668:1: ( rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1 )
-            // InternalPerspectiveDsl.g:4669:2: rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1
+            // InternalPerspectiveDsl.g:4689:1: ( rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1 )
+            // InternalPerspectiveDsl.g:4690:2: rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1
             {
             pushFollow(FOLLOW_15);
             rule__Perspective__Group_3__0__Impl();
@@ -17091,23 +17192,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:4676:1: rule__Perspective__Group_3__0__Impl : ( ( rule__Perspective__DescriptionAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:4697:1: rule__Perspective__Group_3__0__Impl : ( ( rule__Perspective__DescriptionAssignment_3_0 ) ) ;
     public final void rule__Perspective__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4680:1: ( ( ( rule__Perspective__DescriptionAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:4681:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:4701:1: ( ( ( rule__Perspective__DescriptionAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:4702:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:4681:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:4682:2: ( rule__Perspective__DescriptionAssignment_3_0 )
+            // InternalPerspectiveDsl.g:4702:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:4703:2: ( rule__Perspective__DescriptionAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:4683:2: ( rule__Perspective__DescriptionAssignment_3_0 )
-            // InternalPerspectiveDsl.g:4683:3: rule__Perspective__DescriptionAssignment_3_0
+            // InternalPerspectiveDsl.g:4704:2: ( rule__Perspective__DescriptionAssignment_3_0 )
+            // InternalPerspectiveDsl.g:4704:3: rule__Perspective__DescriptionAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__DescriptionAssignment_3_0();
@@ -17142,14 +17243,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__1"
-    // InternalPerspectiveDsl.g:4691:1: rule__Perspective__Group_3__1 : rule__Perspective__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:4712:1: rule__Perspective__Group_3__1 : rule__Perspective__Group_3__1__Impl ;
     public final void rule__Perspective__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4695:1: ( rule__Perspective__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:4696:2: rule__Perspective__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:4716:1: ( rule__Perspective__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:4717:2: rule__Perspective__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_3__1__Impl();
@@ -17175,23 +17276,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:4702:1: rule__Perspective__Group_3__1__Impl : ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:4723:1: rule__Perspective__Group_3__1__Impl : ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) ) ;
     public final void rule__Perspective__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4706:1: ( ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) ) )
-            // InternalPerspectiveDsl.g:4707:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:4727:1: ( ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) ) )
+            // InternalPerspectiveDsl.g:4728:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:4707:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
-            // InternalPerspectiveDsl.g:4708:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
+            // InternalPerspectiveDsl.g:4728:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:4729:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionValueAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:4709:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
-            // InternalPerspectiveDsl.g:4709:3: rule__Perspective__DescriptionValueAssignment_3_1
+            // InternalPerspectiveDsl.g:4730:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
+            // InternalPerspectiveDsl.g:4730:3: rule__Perspective__DescriptionValueAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__DescriptionValueAssignment_3_1();
@@ -17226,14 +17327,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__0"
-    // InternalPerspectiveDsl.g:4718:1: rule__Perspective__Group_4__0 : rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1 ;
+    // InternalPerspectiveDsl.g:4739:1: rule__Perspective__Group_4__0 : rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1 ;
     public final void rule__Perspective__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4722:1: ( rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1 )
-            // InternalPerspectiveDsl.g:4723:2: rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1
+            // InternalPerspectiveDsl.g:4743:1: ( rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1 )
+            // InternalPerspectiveDsl.g:4744:2: rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group_4__0__Impl();
@@ -17264,17 +17365,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__0__Impl"
-    // InternalPerspectiveDsl.g:4730:1: rule__Perspective__Group_4__0__Impl : ( 'process' ) ;
+    // InternalPerspectiveDsl.g:4751:1: rule__Perspective__Group_4__0__Impl : ( 'process' ) ;
     public final void rule__Perspective__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4734:1: ( ( 'process' ) )
-            // InternalPerspectiveDsl.g:4735:1: ( 'process' )
+            // InternalPerspectiveDsl.g:4755:1: ( ( 'process' ) )
+            // InternalPerspectiveDsl.g:4756:1: ( 'process' )
             {
-            // InternalPerspectiveDsl.g:4735:1: ( 'process' )
-            // InternalPerspectiveDsl.g:4736:2: 'process'
+            // InternalPerspectiveDsl.g:4756:1: ( 'process' )
+            // InternalPerspectiveDsl.g:4757:2: 'process'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessKeyword_4_0()); 
@@ -17305,14 +17406,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__1"
-    // InternalPerspectiveDsl.g:4745:1: rule__Perspective__Group_4__1 : rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2 ;
+    // InternalPerspectiveDsl.g:4766:1: rule__Perspective__Group_4__1 : rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2 ;
     public final void rule__Perspective__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4749:1: ( rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2 )
-            // InternalPerspectiveDsl.g:4750:2: rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2
+            // InternalPerspectiveDsl.g:4770:1: ( rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2 )
+            // InternalPerspectiveDsl.g:4771:2: rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2
             {
             pushFollow(FOLLOW_16);
             rule__Perspective__Group_4__1__Impl();
@@ -17343,23 +17444,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__1__Impl"
-    // InternalPerspectiveDsl.g:4757:1: rule__Perspective__Group_4__1__Impl : ( ( rule__Perspective__ProcessAssignment_4_1 ) ) ;
+    // InternalPerspectiveDsl.g:4778:1: rule__Perspective__Group_4__1__Impl : ( ( rule__Perspective__ProcessAssignment_4_1 ) ) ;
     public final void rule__Perspective__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4761:1: ( ( ( rule__Perspective__ProcessAssignment_4_1 ) ) )
-            // InternalPerspectiveDsl.g:4762:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
+            // InternalPerspectiveDsl.g:4782:1: ( ( ( rule__Perspective__ProcessAssignment_4_1 ) ) )
+            // InternalPerspectiveDsl.g:4783:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
             {
-            // InternalPerspectiveDsl.g:4762:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
-            // InternalPerspectiveDsl.g:4763:2: ( rule__Perspective__ProcessAssignment_4_1 )
+            // InternalPerspectiveDsl.g:4783:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
+            // InternalPerspectiveDsl.g:4784:2: ( rule__Perspective__ProcessAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessAssignment_4_1()); 
             }
-            // InternalPerspectiveDsl.g:4764:2: ( rule__Perspective__ProcessAssignment_4_1 )
-            // InternalPerspectiveDsl.g:4764:3: rule__Perspective__ProcessAssignment_4_1
+            // InternalPerspectiveDsl.g:4785:2: ( rule__Perspective__ProcessAssignment_4_1 )
+            // InternalPerspectiveDsl.g:4785:3: rule__Perspective__ProcessAssignment_4_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__ProcessAssignment_4_1();
@@ -17394,14 +17495,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__2"
-    // InternalPerspectiveDsl.g:4772:1: rule__Perspective__Group_4__2 : rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3 ;
+    // InternalPerspectiveDsl.g:4793:1: rule__Perspective__Group_4__2 : rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3 ;
     public final void rule__Perspective__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4776:1: ( rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3 )
-            // InternalPerspectiveDsl.g:4777:2: rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3
+            // InternalPerspectiveDsl.g:4797:1: ( rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3 )
+            // InternalPerspectiveDsl.g:4798:2: rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group_4__2__Impl();
@@ -17432,17 +17533,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__2__Impl"
-    // InternalPerspectiveDsl.g:4784:1: rule__Perspective__Group_4__2__Impl : ( 'usertask' ) ;
+    // InternalPerspectiveDsl.g:4805:1: rule__Perspective__Group_4__2__Impl : ( 'usertask' ) ;
     public final void rule__Perspective__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4788:1: ( ( 'usertask' ) )
-            // InternalPerspectiveDsl.g:4789:1: ( 'usertask' )
+            // InternalPerspectiveDsl.g:4809:1: ( ( 'usertask' ) )
+            // InternalPerspectiveDsl.g:4810:1: ( 'usertask' )
             {
-            // InternalPerspectiveDsl.g:4789:1: ( 'usertask' )
-            // InternalPerspectiveDsl.g:4790:2: 'usertask'
+            // InternalPerspectiveDsl.g:4810:1: ( 'usertask' )
+            // InternalPerspectiveDsl.g:4811:2: 'usertask'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUsertaskKeyword_4_2()); 
@@ -17473,14 +17574,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__3"
-    // InternalPerspectiveDsl.g:4799:1: rule__Perspective__Group_4__3 : rule__Perspective__Group_4__3__Impl ;
+    // InternalPerspectiveDsl.g:4820:1: rule__Perspective__Group_4__3 : rule__Perspective__Group_4__3__Impl ;
     public final void rule__Perspective__Group_4__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4803:1: ( rule__Perspective__Group_4__3__Impl )
-            // InternalPerspectiveDsl.g:4804:2: rule__Perspective__Group_4__3__Impl
+            // InternalPerspectiveDsl.g:4824:1: ( rule__Perspective__Group_4__3__Impl )
+            // InternalPerspectiveDsl.g:4825:2: rule__Perspective__Group_4__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_4__3__Impl();
@@ -17506,23 +17607,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__3__Impl"
-    // InternalPerspectiveDsl.g:4810:1: rule__Perspective__Group_4__3__Impl : ( ( rule__Perspective__UserTaskAssignment_4_3 ) ) ;
+    // InternalPerspectiveDsl.g:4831:1: rule__Perspective__Group_4__3__Impl : ( ( rule__Perspective__UserTaskAssignment_4_3 ) ) ;
     public final void rule__Perspective__Group_4__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4814:1: ( ( ( rule__Perspective__UserTaskAssignment_4_3 ) ) )
-            // InternalPerspectiveDsl.g:4815:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
+            // InternalPerspectiveDsl.g:4835:1: ( ( ( rule__Perspective__UserTaskAssignment_4_3 ) ) )
+            // InternalPerspectiveDsl.g:4836:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
             {
-            // InternalPerspectiveDsl.g:4815:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
-            // InternalPerspectiveDsl.g:4816:2: ( rule__Perspective__UserTaskAssignment_4_3 )
+            // InternalPerspectiveDsl.g:4836:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
+            // InternalPerspectiveDsl.g:4837:2: ( rule__Perspective__UserTaskAssignment_4_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUserTaskAssignment_4_3()); 
             }
-            // InternalPerspectiveDsl.g:4817:2: ( rule__Perspective__UserTaskAssignment_4_3 )
-            // InternalPerspectiveDsl.g:4817:3: rule__Perspective__UserTaskAssignment_4_3
+            // InternalPerspectiveDsl.g:4838:2: ( rule__Perspective__UserTaskAssignment_4_3 )
+            // InternalPerspectiveDsl.g:4838:3: rule__Perspective__UserTaskAssignment_4_3
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__UserTaskAssignment_4_3();
@@ -17557,14 +17658,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__0"
-    // InternalPerspectiveDsl.g:4826:1: rule__Perspective__Group_5_0__0 : rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1 ;
+    // InternalPerspectiveDsl.g:4847:1: rule__Perspective__Group_5_0__0 : rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1 ;
     public final void rule__Perspective__Group_5_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4830:1: ( rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1 )
-            // InternalPerspectiveDsl.g:4831:2: rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1
+            // InternalPerspectiveDsl.g:4851:1: ( rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1 )
+            // InternalPerspectiveDsl.g:4852:2: rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1
             {
             pushFollow(FOLLOW_15);
             rule__Perspective__Group_5_0__0__Impl();
@@ -17595,17 +17696,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__0__Impl"
-    // InternalPerspectiveDsl.g:4838:1: rule__Perspective__Group_5_0__0__Impl : ( 'icon' ) ;
+    // InternalPerspectiveDsl.g:4859:1: rule__Perspective__Group_5_0__0__Impl : ( 'icon' ) ;
     public final void rule__Perspective__Group_5_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4842:1: ( ( 'icon' ) )
-            // InternalPerspectiveDsl.g:4843:1: ( 'icon' )
+            // InternalPerspectiveDsl.g:4863:1: ( ( 'icon' ) )
+            // InternalPerspectiveDsl.g:4864:1: ( 'icon' )
             {
-            // InternalPerspectiveDsl.g:4843:1: ( 'icon' )
-            // InternalPerspectiveDsl.g:4844:2: 'icon'
+            // InternalPerspectiveDsl.g:4864:1: ( 'icon' )
+            // InternalPerspectiveDsl.g:4865:2: 'icon'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getIconKeyword_5_0_0()); 
@@ -17636,14 +17737,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__1"
-    // InternalPerspectiveDsl.g:4853:1: rule__Perspective__Group_5_0__1 : rule__Perspective__Group_5_0__1__Impl ;
+    // InternalPerspectiveDsl.g:4874:1: rule__Perspective__Group_5_0__1 : rule__Perspective__Group_5_0__1__Impl ;
     public final void rule__Perspective__Group_5_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4857:1: ( rule__Perspective__Group_5_0__1__Impl )
-            // InternalPerspectiveDsl.g:4858:2: rule__Perspective__Group_5_0__1__Impl
+            // InternalPerspectiveDsl.g:4878:1: ( rule__Perspective__Group_5_0__1__Impl )
+            // InternalPerspectiveDsl.g:4879:2: rule__Perspective__Group_5_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_5_0__1__Impl();
@@ -17669,23 +17770,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__1__Impl"
-    // InternalPerspectiveDsl.g:4864:1: rule__Perspective__Group_5_0__1__Impl : ( ( rule__Perspective__IconURIAssignment_5_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:4885:1: rule__Perspective__Group_5_0__1__Impl : ( ( rule__Perspective__IconURIAssignment_5_0_1 ) ) ;
     public final void rule__Perspective__Group_5_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4868:1: ( ( ( rule__Perspective__IconURIAssignment_5_0_1 ) ) )
-            // InternalPerspectiveDsl.g:4869:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
+            // InternalPerspectiveDsl.g:4889:1: ( ( ( rule__Perspective__IconURIAssignment_5_0_1 ) ) )
+            // InternalPerspectiveDsl.g:4890:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:4869:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
-            // InternalPerspectiveDsl.g:4870:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
+            // InternalPerspectiveDsl.g:4890:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
+            // InternalPerspectiveDsl.g:4891:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getIconURIAssignment_5_0_1()); 
             }
-            // InternalPerspectiveDsl.g:4871:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
-            // InternalPerspectiveDsl.g:4871:3: rule__Perspective__IconURIAssignment_5_0_1
+            // InternalPerspectiveDsl.g:4892:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
+            // InternalPerspectiveDsl.g:4892:3: rule__Perspective__IconURIAssignment_5_0_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__IconURIAssignment_5_0_1();
@@ -17720,14 +17821,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__0"
-    // InternalPerspectiveDsl.g:4880:1: rule__Perspective__Group_5_1__0 : rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1 ;
+    // InternalPerspectiveDsl.g:4901:1: rule__Perspective__Group_5_1__0 : rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1 ;
     public final void rule__Perspective__Group_5_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4884:1: ( rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1 )
-            // InternalPerspectiveDsl.g:4885:2: rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1
+            // InternalPerspectiveDsl.g:4905:1: ( rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1 )
+            // InternalPerspectiveDsl.g:4906:2: rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1
             {
             pushFollow(FOLLOW_15);
             rule__Perspective__Group_5_1__0__Impl();
@@ -17758,17 +17859,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__0__Impl"
-    // InternalPerspectiveDsl.g:4892:1: rule__Perspective__Group_5_1__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:4913:1: rule__Perspective__Group_5_1__0__Impl : ( 'accessibility' ) ;
     public final void rule__Perspective__Group_5_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4896:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:4897:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:4917:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:4918:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:4897:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:4898:2: 'accessibility'
+            // InternalPerspectiveDsl.g:4918:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:4919:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getAccessibilityKeyword_5_1_0()); 
@@ -17799,14 +17900,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__1"
-    // InternalPerspectiveDsl.g:4907:1: rule__Perspective__Group_5_1__1 : rule__Perspective__Group_5_1__1__Impl ;
+    // InternalPerspectiveDsl.g:4928:1: rule__Perspective__Group_5_1__1 : rule__Perspective__Group_5_1__1__Impl ;
     public final void rule__Perspective__Group_5_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4911:1: ( rule__Perspective__Group_5_1__1__Impl )
-            // InternalPerspectiveDsl.g:4912:2: rule__Perspective__Group_5_1__1__Impl
+            // InternalPerspectiveDsl.g:4932:1: ( rule__Perspective__Group_5_1__1__Impl )
+            // InternalPerspectiveDsl.g:4933:2: rule__Perspective__Group_5_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_5_1__1__Impl();
@@ -17832,23 +17933,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__1__Impl"
-    // InternalPerspectiveDsl.g:4918:1: rule__Perspective__Group_5_1__1__Impl : ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:4939:1: rule__Perspective__Group_5_1__1__Impl : ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) ) ;
     public final void rule__Perspective__Group_5_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4922:1: ( ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) ) )
-            // InternalPerspectiveDsl.g:4923:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
+            // InternalPerspectiveDsl.g:4943:1: ( ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) ) )
+            // InternalPerspectiveDsl.g:4944:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:4923:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
-            // InternalPerspectiveDsl.g:4924:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
+            // InternalPerspectiveDsl.g:4944:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
+            // InternalPerspectiveDsl.g:4945:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getAccessibilityPhraseAssignment_5_1_1()); 
             }
-            // InternalPerspectiveDsl.g:4925:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
-            // InternalPerspectiveDsl.g:4925:3: rule__Perspective__AccessibilityPhraseAssignment_5_1_1
+            // InternalPerspectiveDsl.g:4946:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
+            // InternalPerspectiveDsl.g:4946:3: rule__Perspective__AccessibilityPhraseAssignment_5_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__AccessibilityPhraseAssignment_5_1_1();
@@ -17883,14 +17984,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__0"
-    // InternalPerspectiveDsl.g:4934:1: rule__Perspective__Group_5_2__0 : rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1 ;
+    // InternalPerspectiveDsl.g:4955:1: rule__Perspective__Group_5_2__0 : rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1 ;
     public final void rule__Perspective__Group_5_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4938:1: ( rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1 )
-            // InternalPerspectiveDsl.g:4939:2: rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1
+            // InternalPerspectiveDsl.g:4959:1: ( rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1 )
+            // InternalPerspectiveDsl.g:4960:2: rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group_5_2__0__Impl();
@@ -17921,17 +18022,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__0__Impl"
-    // InternalPerspectiveDsl.g:4946:1: rule__Perspective__Group_5_2__0__Impl : ( 'toolbar' ) ;
+    // InternalPerspectiveDsl.g:4967:1: rule__Perspective__Group_5_2__0__Impl : ( 'toolbar' ) ;
     public final void rule__Perspective__Group_5_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4950:1: ( ( 'toolbar' ) )
-            // InternalPerspectiveDsl.g:4951:1: ( 'toolbar' )
+            // InternalPerspectiveDsl.g:4971:1: ( ( 'toolbar' ) )
+            // InternalPerspectiveDsl.g:4972:1: ( 'toolbar' )
             {
-            // InternalPerspectiveDsl.g:4951:1: ( 'toolbar' )
-            // InternalPerspectiveDsl.g:4952:2: 'toolbar'
+            // InternalPerspectiveDsl.g:4972:1: ( 'toolbar' )
+            // InternalPerspectiveDsl.g:4973:2: 'toolbar'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarKeyword_5_2_0()); 
@@ -17962,14 +18063,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__1"
-    // InternalPerspectiveDsl.g:4961:1: rule__Perspective__Group_5_2__1 : rule__Perspective__Group_5_2__1__Impl ;
+    // InternalPerspectiveDsl.g:4982:1: rule__Perspective__Group_5_2__1 : rule__Perspective__Group_5_2__1__Impl ;
     public final void rule__Perspective__Group_5_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4965:1: ( rule__Perspective__Group_5_2__1__Impl )
-            // InternalPerspectiveDsl.g:4966:2: rule__Perspective__Group_5_2__1__Impl
+            // InternalPerspectiveDsl.g:4986:1: ( rule__Perspective__Group_5_2__1__Impl )
+            // InternalPerspectiveDsl.g:4987:2: rule__Perspective__Group_5_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_5_2__1__Impl();
@@ -17995,23 +18096,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__1__Impl"
-    // InternalPerspectiveDsl.g:4972:1: rule__Perspective__Group_5_2__1__Impl : ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:4993:1: rule__Perspective__Group_5_2__1__Impl : ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) ) ;
     public final void rule__Perspective__Group_5_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4976:1: ( ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) ) )
-            // InternalPerspectiveDsl.g:4977:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
+            // InternalPerspectiveDsl.g:4997:1: ( ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) ) )
+            // InternalPerspectiveDsl.g:4998:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:4977:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
-            // InternalPerspectiveDsl.g:4978:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
+            // InternalPerspectiveDsl.g:4998:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
+            // InternalPerspectiveDsl.g:4999:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarAssignment_5_2_1()); 
             }
-            // InternalPerspectiveDsl.g:4979:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
-            // InternalPerspectiveDsl.g:4979:3: rule__Perspective__ToolbarAssignment_5_2_1
+            // InternalPerspectiveDsl.g:5000:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
+            // InternalPerspectiveDsl.g:5000:3: rule__Perspective__ToolbarAssignment_5_2_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__ToolbarAssignment_5_2_1();
@@ -18046,14 +18147,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_8__0"
-    // InternalPerspectiveDsl.g:4988:1: rule__Perspective__Group_8__0 : rule__Perspective__Group_8__0__Impl rule__Perspective__Group_8__1 ;
+    // InternalPerspectiveDsl.g:5009:1: rule__Perspective__Group_8__0 : rule__Perspective__Group_8__0__Impl rule__Perspective__Group_8__1 ;
     public final void rule__Perspective__Group_8__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4992:1: ( rule__Perspective__Group_8__0__Impl rule__Perspective__Group_8__1 )
-            // InternalPerspectiveDsl.g:4993:2: rule__Perspective__Group_8__0__Impl rule__Perspective__Group_8__1
+            // InternalPerspectiveDsl.g:5013:1: ( rule__Perspective__Group_8__0__Impl rule__Perspective__Group_8__1 )
+            // InternalPerspectiveDsl.g:5014:2: rule__Perspective__Group_8__0__Impl rule__Perspective__Group_8__1
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group_8__0__Impl();
@@ -18084,17 +18185,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_8__0__Impl"
-    // InternalPerspectiveDsl.g:5000:1: rule__Perspective__Group_8__0__Impl : ( 'eventManager' ) ;
+    // InternalPerspectiveDsl.g:5021:1: rule__Perspective__Group_8__0__Impl : ( 'eventManager' ) ;
     public final void rule__Perspective__Group_8__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5004:1: ( ( 'eventManager' ) )
-            // InternalPerspectiveDsl.g:5005:1: ( 'eventManager' )
+            // InternalPerspectiveDsl.g:5025:1: ( ( 'eventManager' ) )
+            // InternalPerspectiveDsl.g:5026:1: ( 'eventManager' )
             {
-            // InternalPerspectiveDsl.g:5005:1: ( 'eventManager' )
-            // InternalPerspectiveDsl.g:5006:2: 'eventManager'
+            // InternalPerspectiveDsl.g:5026:1: ( 'eventManager' )
+            // InternalPerspectiveDsl.g:5027:2: 'eventManager'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getEventManagerKeyword_8_0()); 
@@ -18125,14 +18226,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_8__1"
-    // InternalPerspectiveDsl.g:5015:1: rule__Perspective__Group_8__1 : rule__Perspective__Group_8__1__Impl ;
+    // InternalPerspectiveDsl.g:5036:1: rule__Perspective__Group_8__1 : rule__Perspective__Group_8__1__Impl ;
     public final void rule__Perspective__Group_8__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5019:1: ( rule__Perspective__Group_8__1__Impl )
-            // InternalPerspectiveDsl.g:5020:2: rule__Perspective__Group_8__1__Impl
+            // InternalPerspectiveDsl.g:5040:1: ( rule__Perspective__Group_8__1__Impl )
+            // InternalPerspectiveDsl.g:5041:2: rule__Perspective__Group_8__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_8__1__Impl();
@@ -18158,23 +18259,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_8__1__Impl"
-    // InternalPerspectiveDsl.g:5026:1: rule__Perspective__Group_8__1__Impl : ( ( rule__Perspective__EventmanagerAssignment_8_1 ) ) ;
+    // InternalPerspectiveDsl.g:5047:1: rule__Perspective__Group_8__1__Impl : ( ( rule__Perspective__EventmanagerAssignment_8_1 ) ) ;
     public final void rule__Perspective__Group_8__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5030:1: ( ( ( rule__Perspective__EventmanagerAssignment_8_1 ) ) )
-            // InternalPerspectiveDsl.g:5031:1: ( ( rule__Perspective__EventmanagerAssignment_8_1 ) )
+            // InternalPerspectiveDsl.g:5051:1: ( ( ( rule__Perspective__EventmanagerAssignment_8_1 ) ) )
+            // InternalPerspectiveDsl.g:5052:1: ( ( rule__Perspective__EventmanagerAssignment_8_1 ) )
             {
-            // InternalPerspectiveDsl.g:5031:1: ( ( rule__Perspective__EventmanagerAssignment_8_1 ) )
-            // InternalPerspectiveDsl.g:5032:2: ( rule__Perspective__EventmanagerAssignment_8_1 )
+            // InternalPerspectiveDsl.g:5052:1: ( ( rule__Perspective__EventmanagerAssignment_8_1 ) )
+            // InternalPerspectiveDsl.g:5053:2: ( rule__Perspective__EventmanagerAssignment_8_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getEventmanagerAssignment_8_1()); 
             }
-            // InternalPerspectiveDsl.g:5033:2: ( rule__Perspective__EventmanagerAssignment_8_1 )
-            // InternalPerspectiveDsl.g:5033:3: rule__Perspective__EventmanagerAssignment_8_1
+            // InternalPerspectiveDsl.g:5054:2: ( rule__Perspective__EventmanagerAssignment_8_1 )
+            // InternalPerspectiveDsl.g:5054:3: rule__Perspective__EventmanagerAssignment_8_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__EventmanagerAssignment_8_1();
@@ -18209,14 +18310,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__0"
-    // InternalPerspectiveDsl.g:5042:1: rule__PerspectiveSashContainer__Group__0 : rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1 ;
+    // InternalPerspectiveDsl.g:5063:1: rule__PerspectiveSashContainer__Group__0 : rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1 ;
     public final void rule__PerspectiveSashContainer__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5046:1: ( rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1 )
-            // InternalPerspectiveDsl.g:5047:2: rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1
+            // InternalPerspectiveDsl.g:5067:1: ( rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1 )
+            // InternalPerspectiveDsl.g:5068:2: rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1
             {
             pushFollow(FOLLOW_17);
             rule__PerspectiveSashContainer__Group__0__Impl();
@@ -18247,23 +18348,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__0__Impl"
-    // InternalPerspectiveDsl.g:5054:1: rule__PerspectiveSashContainer__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5075:1: rule__PerspectiveSashContainer__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSashContainer__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5058:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:5059:1: ( () )
+            // InternalPerspectiveDsl.g:5079:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5080:1: ( () )
             {
-            // InternalPerspectiveDsl.g:5059:1: ( () )
-            // InternalPerspectiveDsl.g:5060:2: ()
+            // InternalPerspectiveDsl.g:5080:1: ( () )
+            // InternalPerspectiveDsl.g:5081:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getPerspectiveSashContainerAction_0()); 
             }
-            // InternalPerspectiveDsl.g:5061:2: ()
-            // InternalPerspectiveDsl.g:5061:3: 
+            // InternalPerspectiveDsl.g:5082:2: ()
+            // InternalPerspectiveDsl.g:5082:3: 
             {
             }
 
@@ -18288,14 +18389,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__1"
-    // InternalPerspectiveDsl.g:5069:1: rule__PerspectiveSashContainer__Group__1 : rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2 ;
+    // InternalPerspectiveDsl.g:5090:1: rule__PerspectiveSashContainer__Group__1 : rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2 ;
     public final void rule__PerspectiveSashContainer__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5073:1: ( rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2 )
-            // InternalPerspectiveDsl.g:5074:2: rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2
+            // InternalPerspectiveDsl.g:5094:1: ( rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2 )
+            // InternalPerspectiveDsl.g:5095:2: rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSashContainer__Group__1__Impl();
@@ -18326,17 +18427,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__1__Impl"
-    // InternalPerspectiveDsl.g:5081:1: rule__PerspectiveSashContainer__Group__1__Impl : ( 'sashContainer' ) ;
+    // InternalPerspectiveDsl.g:5102:1: rule__PerspectiveSashContainer__Group__1__Impl : ( 'sashContainer' ) ;
     public final void rule__PerspectiveSashContainer__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5085:1: ( ( 'sashContainer' ) )
-            // InternalPerspectiveDsl.g:5086:1: ( 'sashContainer' )
+            // InternalPerspectiveDsl.g:5106:1: ( ( 'sashContainer' ) )
+            // InternalPerspectiveDsl.g:5107:1: ( 'sashContainer' )
             {
-            // InternalPerspectiveDsl.g:5086:1: ( 'sashContainer' )
-            // InternalPerspectiveDsl.g:5087:2: 'sashContainer'
+            // InternalPerspectiveDsl.g:5107:1: ( 'sashContainer' )
+            // InternalPerspectiveDsl.g:5108:2: 'sashContainer'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSashContainerKeyword_1()); 
@@ -18367,14 +18468,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__2"
-    // InternalPerspectiveDsl.g:5096:1: rule__PerspectiveSashContainer__Group__2 : rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3 ;
+    // InternalPerspectiveDsl.g:5117:1: rule__PerspectiveSashContainer__Group__2 : rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3 ;
     public final void rule__PerspectiveSashContainer__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5100:1: ( rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3 )
-            // InternalPerspectiveDsl.g:5101:2: rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3
+            // InternalPerspectiveDsl.g:5121:1: ( rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3 )
+            // InternalPerspectiveDsl.g:5122:2: rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3
             {
             pushFollow(FOLLOW_18);
             rule__PerspectiveSashContainer__Group__2__Impl();
@@ -18405,23 +18506,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__2__Impl"
-    // InternalPerspectiveDsl.g:5108:1: rule__PerspectiveSashContainer__Group__2__Impl : ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:5129:1: rule__PerspectiveSashContainer__Group__2__Impl : ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) ) ;
     public final void rule__PerspectiveSashContainer__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5112:1: ( ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:5113:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5133:1: ( ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:5134:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:5113:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
-            // InternalPerspectiveDsl.g:5114:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5134:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5135:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementIdAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:5115:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
-            // InternalPerspectiveDsl.g:5115:3: rule__PerspectiveSashContainer__ElementIdAssignment_2
+            // InternalPerspectiveDsl.g:5136:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5136:3: rule__PerspectiveSashContainer__ElementIdAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__ElementIdAssignment_2();
@@ -18456,14 +18557,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__3"
-    // InternalPerspectiveDsl.g:5123:1: rule__PerspectiveSashContainer__Group__3 : rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4 ;
+    // InternalPerspectiveDsl.g:5144:1: rule__PerspectiveSashContainer__Group__3 : rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4 ;
     public final void rule__PerspectiveSashContainer__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5127:1: ( rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4 )
-            // InternalPerspectiveDsl.g:5128:2: rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4
+            // InternalPerspectiveDsl.g:5148:1: ( rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4 )
+            // InternalPerspectiveDsl.g:5149:2: rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4
             {
             pushFollow(FOLLOW_8);
             rule__PerspectiveSashContainer__Group__3__Impl();
@@ -18494,23 +18595,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__3__Impl"
-    // InternalPerspectiveDsl.g:5135:1: rule__PerspectiveSashContainer__Group__3__Impl : ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) ) ;
+    // InternalPerspectiveDsl.g:5156:1: rule__PerspectiveSashContainer__Group__3__Impl : ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) ) ;
     public final void rule__PerspectiveSashContainer__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5139:1: ( ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) ) )
-            // InternalPerspectiveDsl.g:5140:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5160:1: ( ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) ) )
+            // InternalPerspectiveDsl.g:5161:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
             {
-            // InternalPerspectiveDsl.g:5140:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
-            // InternalPerspectiveDsl.g:5141:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5161:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5162:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:5142:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
-            // InternalPerspectiveDsl.g:5142:3: rule__PerspectiveSashContainer__UnorderedGroup_3
+            // InternalPerspectiveDsl.g:5163:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5163:3: rule__PerspectiveSashContainer__UnorderedGroup_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__UnorderedGroup_3();
@@ -18545,14 +18646,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__4"
-    // InternalPerspectiveDsl.g:5150:1: rule__PerspectiveSashContainer__Group__4 : rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5 ;
+    // InternalPerspectiveDsl.g:5171:1: rule__PerspectiveSashContainer__Group__4 : rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5 ;
     public final void rule__PerspectiveSashContainer__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5154:1: ( rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5 )
-            // InternalPerspectiveDsl.g:5155:2: rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5
+            // InternalPerspectiveDsl.g:5175:1: ( rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5 )
+            // InternalPerspectiveDsl.g:5176:2: rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5
             {
             pushFollow(FOLLOW_19);
             rule__PerspectiveSashContainer__Group__4__Impl();
@@ -18583,17 +18684,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__4__Impl"
-    // InternalPerspectiveDsl.g:5162:1: rule__PerspectiveSashContainer__Group__4__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:5183:1: rule__PerspectiveSashContainer__Group__4__Impl : ( '{' ) ;
     public final void rule__PerspectiveSashContainer__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5166:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:5167:1: ( '{' )
+            // InternalPerspectiveDsl.g:5187:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:5188:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:5167:1: ( '{' )
-            // InternalPerspectiveDsl.g:5168:2: '{'
+            // InternalPerspectiveDsl.g:5188:1: ( '{' )
+            // InternalPerspectiveDsl.g:5189:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getLeftCurlyBracketKeyword_4()); 
@@ -18624,14 +18725,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__5"
-    // InternalPerspectiveDsl.g:5177:1: rule__PerspectiveSashContainer__Group__5 : rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6 ;
+    // InternalPerspectiveDsl.g:5198:1: rule__PerspectiveSashContainer__Group__5 : rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6 ;
     public final void rule__PerspectiveSashContainer__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5181:1: ( rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6 )
-            // InternalPerspectiveDsl.g:5182:2: rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6
+            // InternalPerspectiveDsl.g:5202:1: ( rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6 )
+            // InternalPerspectiveDsl.g:5203:2: rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6
             {
             pushFollow(FOLLOW_19);
             rule__PerspectiveSashContainer__Group__5__Impl();
@@ -18662,35 +18763,35 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__5__Impl"
-    // InternalPerspectiveDsl.g:5189:1: rule__PerspectiveSashContainer__Group__5__Impl : ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* ) ;
+    // InternalPerspectiveDsl.g:5210:1: rule__PerspectiveSashContainer__Group__5__Impl : ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* ) ;
     public final void rule__PerspectiveSashContainer__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5193:1: ( ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* ) )
-            // InternalPerspectiveDsl.g:5194:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:5214:1: ( ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* ) )
+            // InternalPerspectiveDsl.g:5215:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
             {
-            // InternalPerspectiveDsl.g:5194:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
-            // InternalPerspectiveDsl.g:5195:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
+            // InternalPerspectiveDsl.g:5215:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:5216:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementsAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:5196:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
-            loop57:
+            // InternalPerspectiveDsl.g:5217:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
+            loop58:
             do {
-                int alt57=2;
-                int LA57_0 = input.LA(1);
+                int alt58=2;
+                int LA58_0 = input.LA(1);
 
-                if ( (LA57_0==63||LA57_0==67||LA57_0==69) ) {
-                    alt57=1;
+                if ( (LA58_0==63||LA58_0==67||LA58_0==69) ) {
+                    alt58=1;
                 }
 
 
-                switch (alt57) {
+                switch (alt58) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:5196:3: rule__PerspectiveSashContainer__ElementsAssignment_5
+            	    // InternalPerspectiveDsl.g:5217:3: rule__PerspectiveSashContainer__ElementsAssignment_5
             	    {
             	    pushFollow(FOLLOW_14);
             	    rule__PerspectiveSashContainer__ElementsAssignment_5();
@@ -18702,7 +18803,7 @@
             	    break;
 
             	default :
-            	    break loop57;
+            	    break loop58;
                 }
             } while (true);
 
@@ -18731,14 +18832,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__6"
-    // InternalPerspectiveDsl.g:5204:1: rule__PerspectiveSashContainer__Group__6 : rule__PerspectiveSashContainer__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:5225:1: rule__PerspectiveSashContainer__Group__6 : rule__PerspectiveSashContainer__Group__6__Impl ;
     public final void rule__PerspectiveSashContainer__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5208:1: ( rule__PerspectiveSashContainer__Group__6__Impl )
-            // InternalPerspectiveDsl.g:5209:2: rule__PerspectiveSashContainer__Group__6__Impl
+            // InternalPerspectiveDsl.g:5229:1: ( rule__PerspectiveSashContainer__Group__6__Impl )
+            // InternalPerspectiveDsl.g:5230:2: rule__PerspectiveSashContainer__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group__6__Impl();
@@ -18764,17 +18865,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__6__Impl"
-    // InternalPerspectiveDsl.g:5215:1: rule__PerspectiveSashContainer__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:5236:1: rule__PerspectiveSashContainer__Group__6__Impl : ( '}' ) ;
     public final void rule__PerspectiveSashContainer__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5219:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:5220:1: ( '}' )
+            // InternalPerspectiveDsl.g:5240:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:5241:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:5220:1: ( '}' )
-            // InternalPerspectiveDsl.g:5221:2: '}'
+            // InternalPerspectiveDsl.g:5241:1: ( '}' )
+            // InternalPerspectiveDsl.g:5242:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getRightCurlyBracketKeyword_6()); 
@@ -18805,14 +18906,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__0"
-    // InternalPerspectiveDsl.g:5231:1: rule__PerspectiveSashContainer__Group_3_0__0 : rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:5252:1: rule__PerspectiveSashContainer__Group_3_0__0 : rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1 ;
     public final void rule__PerspectiveSashContainer__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5235:1: ( rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:5236:2: rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1
+            // InternalPerspectiveDsl.g:5256:1: ( rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:5257:2: rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1
             {
             pushFollow(FOLLOW_20);
             rule__PerspectiveSashContainer__Group_3_0__0__Impl();
@@ -18843,17 +18944,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:5243:1: rule__PerspectiveSashContainer__Group_3_0__0__Impl : ( 'orientation' ) ;
+    // InternalPerspectiveDsl.g:5264:1: rule__PerspectiveSashContainer__Group_3_0__0__Impl : ( 'orientation' ) ;
     public final void rule__PerspectiveSashContainer__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5247:1: ( ( 'orientation' ) )
-            // InternalPerspectiveDsl.g:5248:1: ( 'orientation' )
+            // InternalPerspectiveDsl.g:5268:1: ( ( 'orientation' ) )
+            // InternalPerspectiveDsl.g:5269:1: ( 'orientation' )
             {
-            // InternalPerspectiveDsl.g:5248:1: ( 'orientation' )
-            // InternalPerspectiveDsl.g:5249:2: 'orientation'
+            // InternalPerspectiveDsl.g:5269:1: ( 'orientation' )
+            // InternalPerspectiveDsl.g:5270:2: 'orientation'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationKeyword_3_0_0()); 
@@ -18884,14 +18985,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__1"
-    // InternalPerspectiveDsl.g:5258:1: rule__PerspectiveSashContainer__Group_3_0__1 : rule__PerspectiveSashContainer__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:5279:1: rule__PerspectiveSashContainer__Group_3_0__1 : rule__PerspectiveSashContainer__Group_3_0__1__Impl ;
     public final void rule__PerspectiveSashContainer__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5262:1: ( rule__PerspectiveSashContainer__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:5263:2: rule__PerspectiveSashContainer__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:5283:1: ( rule__PerspectiveSashContainer__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:5284:2: rule__PerspectiveSashContainer__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_0__1__Impl();
@@ -18917,23 +19018,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:5269:1: rule__PerspectiveSashContainer__Group_3_0__1__Impl : ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:5290:1: rule__PerspectiveSashContainer__Group_3_0__1__Impl : ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) ) ;
     public final void rule__PerspectiveSashContainer__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5273:1: ( ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:5274:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5294:1: ( ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:5295:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:5274:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:5275:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5295:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5296:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:5276:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:5276:3: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1
+            // InternalPerspectiveDsl.g:5297:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5297:3: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__OrientationAssignment_3_0_1();
@@ -18968,14 +19069,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__0"
-    // InternalPerspectiveDsl.g:5285:1: rule__PerspectiveSashContainer__Group_3_1__0 : rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:5306:1: rule__PerspectiveSashContainer__Group_3_1__0 : rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1 ;
     public final void rule__PerspectiveSashContainer__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5289:1: ( rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:5290:2: rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1
+            // InternalPerspectiveDsl.g:5310:1: ( rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:5311:2: rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSashContainer__Group_3_1__0__Impl();
@@ -19006,17 +19107,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:5297:1: rule__PerspectiveSashContainer__Group_3_1__0__Impl : ( 'selectedElement' ) ;
+    // InternalPerspectiveDsl.g:5318:1: rule__PerspectiveSashContainer__Group_3_1__0__Impl : ( 'selectedElement' ) ;
     public final void rule__PerspectiveSashContainer__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5301:1: ( ( 'selectedElement' ) )
-            // InternalPerspectiveDsl.g:5302:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5322:1: ( ( 'selectedElement' ) )
+            // InternalPerspectiveDsl.g:5323:1: ( 'selectedElement' )
             {
-            // InternalPerspectiveDsl.g:5302:1: ( 'selectedElement' )
-            // InternalPerspectiveDsl.g:5303:2: 'selectedElement'
+            // InternalPerspectiveDsl.g:5323:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5324:2: 'selectedElement'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementKeyword_3_1_0()); 
@@ -19047,14 +19148,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__1"
-    // InternalPerspectiveDsl.g:5312:1: rule__PerspectiveSashContainer__Group_3_1__1 : rule__PerspectiveSashContainer__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:5333:1: rule__PerspectiveSashContainer__Group_3_1__1 : rule__PerspectiveSashContainer__Group_3_1__1__Impl ;
     public final void rule__PerspectiveSashContainer__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5316:1: ( rule__PerspectiveSashContainer__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:5317:2: rule__PerspectiveSashContainer__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:5337:1: ( rule__PerspectiveSashContainer__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:5338:2: rule__PerspectiveSashContainer__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_1__1__Impl();
@@ -19080,23 +19181,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:5323:1: rule__PerspectiveSashContainer__Group_3_1__1__Impl : ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:5344:1: rule__PerspectiveSashContainer__Group_3_1__1__Impl : ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) ) ;
     public final void rule__PerspectiveSashContainer__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5327:1: ( ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:5328:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5348:1: ( ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:5349:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:5328:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:5329:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5349:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5350:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:5330:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:5330:3: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1
+            // InternalPerspectiveDsl.g:5351:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5351:3: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1();
@@ -19131,14 +19232,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__0"
-    // InternalPerspectiveDsl.g:5339:1: rule__PerspectiveSashContainer__Group_3_2__0 : rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:5360:1: rule__PerspectiveSashContainer__Group_3_2__0 : rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1 ;
     public final void rule__PerspectiveSashContainer__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5343:1: ( rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:5344:2: rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1
+            // InternalPerspectiveDsl.g:5364:1: ( rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:5365:2: rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveSashContainer__Group_3_2__0__Impl();
@@ -19169,17 +19270,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:5351:1: rule__PerspectiveSashContainer__Group_3_2__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5372:1: rule__PerspectiveSashContainer__Group_3_2__0__Impl : ( 'spaceVolume' ) ;
     public final void rule__PerspectiveSashContainer__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5355:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5356:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5376:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5377:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5356:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5357:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5377:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5378:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSpaceVolumeKeyword_3_2_0()); 
@@ -19210,14 +19311,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__1"
-    // InternalPerspectiveDsl.g:5366:1: rule__PerspectiveSashContainer__Group_3_2__1 : rule__PerspectiveSashContainer__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:5387:1: rule__PerspectiveSashContainer__Group_3_2__1 : rule__PerspectiveSashContainer__Group_3_2__1__Impl ;
     public final void rule__PerspectiveSashContainer__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5370:1: ( rule__PerspectiveSashContainer__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:5371:2: rule__PerspectiveSashContainer__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:5391:1: ( rule__PerspectiveSashContainer__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:5392:2: rule__PerspectiveSashContainer__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_2__1__Impl();
@@ -19243,23 +19344,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:5377:1: rule__PerspectiveSashContainer__Group_3_2__1__Impl : ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:5398:1: rule__PerspectiveSashContainer__Group_3_2__1__Impl : ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) ) ;
     public final void rule__PerspectiveSashContainer__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5381:1: ( ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:5382:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5402:1: ( ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:5403:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:5382:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:5383:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5403:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5404:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getContainerDataAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:5384:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:5384:3: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1
+            // InternalPerspectiveDsl.g:5405:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5405:3: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1();
@@ -19294,14 +19395,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__0"
-    // InternalPerspectiveDsl.g:5393:1: rule__PerspectiveSashContainer__Group_3_3__0 : rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1 ;
+    // InternalPerspectiveDsl.g:5414:1: rule__PerspectiveSashContainer__Group_3_3__0 : rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1 ;
     public final void rule__PerspectiveSashContainer__Group_3_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5397:1: ( rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1 )
-            // InternalPerspectiveDsl.g:5398:2: rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1
+            // InternalPerspectiveDsl.g:5418:1: ( rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1 )
+            // InternalPerspectiveDsl.g:5419:2: rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveSashContainer__Group_3_3__0__Impl();
@@ -19332,17 +19433,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__0__Impl"
-    // InternalPerspectiveDsl.g:5405:1: rule__PerspectiveSashContainer__Group_3_3__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:5426:1: rule__PerspectiveSashContainer__Group_3_3__0__Impl : ( 'accessibility' ) ;
     public final void rule__PerspectiveSashContainer__Group_3_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5409:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:5410:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5430:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:5431:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:5410:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:5411:2: 'accessibility'
+            // InternalPerspectiveDsl.g:5431:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5432:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityKeyword_3_3_0()); 
@@ -19373,14 +19474,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__1"
-    // InternalPerspectiveDsl.g:5420:1: rule__PerspectiveSashContainer__Group_3_3__1 : rule__PerspectiveSashContainer__Group_3_3__1__Impl ;
+    // InternalPerspectiveDsl.g:5441:1: rule__PerspectiveSashContainer__Group_3_3__1 : rule__PerspectiveSashContainer__Group_3_3__1__Impl ;
     public final void rule__PerspectiveSashContainer__Group_3_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5424:1: ( rule__PerspectiveSashContainer__Group_3_3__1__Impl )
-            // InternalPerspectiveDsl.g:5425:2: rule__PerspectiveSashContainer__Group_3_3__1__Impl
+            // InternalPerspectiveDsl.g:5445:1: ( rule__PerspectiveSashContainer__Group_3_3__1__Impl )
+            // InternalPerspectiveDsl.g:5446:2: rule__PerspectiveSashContainer__Group_3_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_3__1__Impl();
@@ -19406,23 +19507,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__1__Impl"
-    // InternalPerspectiveDsl.g:5431:1: rule__PerspectiveSashContainer__Group_3_3__1__Impl : ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:5452:1: rule__PerspectiveSashContainer__Group_3_3__1__Impl : ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) ) ;
     public final void rule__PerspectiveSashContainer__Group_3_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5435:1: ( ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) ) )
-            // InternalPerspectiveDsl.g:5436:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5456:1: ( ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) ) )
+            // InternalPerspectiveDsl.g:5457:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:5436:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
-            // InternalPerspectiveDsl.g:5437:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5457:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5458:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityPhraseAssignment_3_3_1()); 
             }
-            // InternalPerspectiveDsl.g:5438:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
-            // InternalPerspectiveDsl.g:5438:3: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1
+            // InternalPerspectiveDsl.g:5459:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5459:3: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1();
@@ -19457,14 +19558,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__0"
-    // InternalPerspectiveDsl.g:5447:1: rule__PerspectivePartStack__Group__0 : rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1 ;
+    // InternalPerspectiveDsl.g:5468:1: rule__PerspectivePartStack__Group__0 : rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1 ;
     public final void rule__PerspectivePartStack__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5451:1: ( rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1 )
-            // InternalPerspectiveDsl.g:5452:2: rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1
+            // InternalPerspectiveDsl.g:5472:1: ( rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1 )
+            // InternalPerspectiveDsl.g:5473:2: rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1
             {
             pushFollow(FOLLOW_21);
             rule__PerspectivePartStack__Group__0__Impl();
@@ -19495,23 +19596,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__0__Impl"
-    // InternalPerspectiveDsl.g:5459:1: rule__PerspectivePartStack__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5480:1: rule__PerspectivePartStack__Group__0__Impl : ( () ) ;
     public final void rule__PerspectivePartStack__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5463:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:5464:1: ( () )
+            // InternalPerspectiveDsl.g:5484:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5485:1: ( () )
             {
-            // InternalPerspectiveDsl.g:5464:1: ( () )
-            // InternalPerspectiveDsl.g:5465:2: ()
+            // InternalPerspectiveDsl.g:5485:1: ( () )
+            // InternalPerspectiveDsl.g:5486:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getPerspectivePartStackAction_0()); 
             }
-            // InternalPerspectiveDsl.g:5466:2: ()
-            // InternalPerspectiveDsl.g:5466:3: 
+            // InternalPerspectiveDsl.g:5487:2: ()
+            // InternalPerspectiveDsl.g:5487:3: 
             {
             }
 
@@ -19536,14 +19637,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__1"
-    // InternalPerspectiveDsl.g:5474:1: rule__PerspectivePartStack__Group__1 : rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2 ;
+    // InternalPerspectiveDsl.g:5495:1: rule__PerspectivePartStack__Group__1 : rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2 ;
     public final void rule__PerspectivePartStack__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5478:1: ( rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2 )
-            // InternalPerspectiveDsl.g:5479:2: rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2
+            // InternalPerspectiveDsl.g:5499:1: ( rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2 )
+            // InternalPerspectiveDsl.g:5500:2: rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePartStack__Group__1__Impl();
@@ -19574,17 +19675,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__1__Impl"
-    // InternalPerspectiveDsl.g:5486:1: rule__PerspectivePartStack__Group__1__Impl : ( 'partStack' ) ;
+    // InternalPerspectiveDsl.g:5507:1: rule__PerspectivePartStack__Group__1__Impl : ( 'partStack' ) ;
     public final void rule__PerspectivePartStack__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5490:1: ( ( 'partStack' ) )
-            // InternalPerspectiveDsl.g:5491:1: ( 'partStack' )
+            // InternalPerspectiveDsl.g:5511:1: ( ( 'partStack' ) )
+            // InternalPerspectiveDsl.g:5512:1: ( 'partStack' )
             {
-            // InternalPerspectiveDsl.g:5491:1: ( 'partStack' )
-            // InternalPerspectiveDsl.g:5492:2: 'partStack'
+            // InternalPerspectiveDsl.g:5512:1: ( 'partStack' )
+            // InternalPerspectiveDsl.g:5513:2: 'partStack'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getPartStackKeyword_1()); 
@@ -19615,14 +19716,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__2"
-    // InternalPerspectiveDsl.g:5501:1: rule__PerspectivePartStack__Group__2 : rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3 ;
+    // InternalPerspectiveDsl.g:5522:1: rule__PerspectivePartStack__Group__2 : rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3 ;
     public final void rule__PerspectivePartStack__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5505:1: ( rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3 )
-            // InternalPerspectiveDsl.g:5506:2: rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3
+            // InternalPerspectiveDsl.g:5526:1: ( rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3 )
+            // InternalPerspectiveDsl.g:5527:2: rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3
             {
             pushFollow(FOLLOW_22);
             rule__PerspectivePartStack__Group__2__Impl();
@@ -19653,23 +19754,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__2__Impl"
-    // InternalPerspectiveDsl.g:5513:1: rule__PerspectivePartStack__Group__2__Impl : ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:5534:1: rule__PerspectivePartStack__Group__2__Impl : ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) ) ;
     public final void rule__PerspectivePartStack__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5517:1: ( ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:5518:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5538:1: ( ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:5539:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:5518:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
-            // InternalPerspectiveDsl.g:5519:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5539:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5540:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementIdAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:5520:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
-            // InternalPerspectiveDsl.g:5520:3: rule__PerspectivePartStack__ElementIdAssignment_2
+            // InternalPerspectiveDsl.g:5541:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5541:3: rule__PerspectivePartStack__ElementIdAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__ElementIdAssignment_2();
@@ -19704,14 +19805,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__3"
-    // InternalPerspectiveDsl.g:5528:1: rule__PerspectivePartStack__Group__3 : rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4 ;
+    // InternalPerspectiveDsl.g:5549:1: rule__PerspectivePartStack__Group__3 : rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4 ;
     public final void rule__PerspectivePartStack__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5532:1: ( rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4 )
-            // InternalPerspectiveDsl.g:5533:2: rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4
+            // InternalPerspectiveDsl.g:5553:1: ( rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4 )
+            // InternalPerspectiveDsl.g:5554:2: rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4
             {
             pushFollow(FOLLOW_8);
             rule__PerspectivePartStack__Group__3__Impl();
@@ -19742,23 +19843,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__3__Impl"
-    // InternalPerspectiveDsl.g:5540:1: rule__PerspectivePartStack__Group__3__Impl : ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) ) ;
+    // InternalPerspectiveDsl.g:5561:1: rule__PerspectivePartStack__Group__3__Impl : ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) ) ;
     public final void rule__PerspectivePartStack__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5544:1: ( ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) ) )
-            // InternalPerspectiveDsl.g:5545:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5565:1: ( ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) ) )
+            // InternalPerspectiveDsl.g:5566:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
             {
-            // InternalPerspectiveDsl.g:5545:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
-            // InternalPerspectiveDsl.g:5546:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5566:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5567:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:5547:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
-            // InternalPerspectiveDsl.g:5547:3: rule__PerspectivePartStack__UnorderedGroup_3
+            // InternalPerspectiveDsl.g:5568:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5568:3: rule__PerspectivePartStack__UnorderedGroup_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__UnorderedGroup_3();
@@ -19793,14 +19894,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__4"
-    // InternalPerspectiveDsl.g:5555:1: rule__PerspectivePartStack__Group__4 : rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5 ;
+    // InternalPerspectiveDsl.g:5576:1: rule__PerspectivePartStack__Group__4 : rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5 ;
     public final void rule__PerspectivePartStack__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5559:1: ( rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5 )
-            // InternalPerspectiveDsl.g:5560:2: rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5
+            // InternalPerspectiveDsl.g:5580:1: ( rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5 )
+            // InternalPerspectiveDsl.g:5581:2: rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5
             {
             pushFollow(FOLLOW_19);
             rule__PerspectivePartStack__Group__4__Impl();
@@ -19831,17 +19932,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__4__Impl"
-    // InternalPerspectiveDsl.g:5567:1: rule__PerspectivePartStack__Group__4__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:5588:1: rule__PerspectivePartStack__Group__4__Impl : ( '{' ) ;
     public final void rule__PerspectivePartStack__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5571:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:5572:1: ( '{' )
+            // InternalPerspectiveDsl.g:5592:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:5593:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:5572:1: ( '{' )
-            // InternalPerspectiveDsl.g:5573:2: '{'
+            // InternalPerspectiveDsl.g:5593:1: ( '{' )
+            // InternalPerspectiveDsl.g:5594:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getLeftCurlyBracketKeyword_4()); 
@@ -19872,14 +19973,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__5"
-    // InternalPerspectiveDsl.g:5582:1: rule__PerspectivePartStack__Group__5 : rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6 ;
+    // InternalPerspectiveDsl.g:5603:1: rule__PerspectivePartStack__Group__5 : rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6 ;
     public final void rule__PerspectivePartStack__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5586:1: ( rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6 )
-            // InternalPerspectiveDsl.g:5587:2: rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6
+            // InternalPerspectiveDsl.g:5607:1: ( rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6 )
+            // InternalPerspectiveDsl.g:5608:2: rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6
             {
             pushFollow(FOLLOW_19);
             rule__PerspectivePartStack__Group__5__Impl();
@@ -19910,35 +20011,35 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__5__Impl"
-    // InternalPerspectiveDsl.g:5594:1: rule__PerspectivePartStack__Group__5__Impl : ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* ) ;
+    // InternalPerspectiveDsl.g:5615:1: rule__PerspectivePartStack__Group__5__Impl : ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* ) ;
     public final void rule__PerspectivePartStack__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5598:1: ( ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* ) )
-            // InternalPerspectiveDsl.g:5599:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:5619:1: ( ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* ) )
+            // InternalPerspectiveDsl.g:5620:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
             {
-            // InternalPerspectiveDsl.g:5599:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
-            // InternalPerspectiveDsl.g:5600:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
+            // InternalPerspectiveDsl.g:5620:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:5621:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementsAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:5601:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
-            loop58:
+            // InternalPerspectiveDsl.g:5622:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
+            loop59:
             do {
-                int alt58=2;
-                int LA58_0 = input.LA(1);
+                int alt59=2;
+                int LA59_0 = input.LA(1);
 
-                if ( (LA58_0==63||LA58_0==67||LA58_0==69) ) {
-                    alt58=1;
+                if ( (LA59_0==63||LA59_0==67||LA59_0==69) ) {
+                    alt59=1;
                 }
 
 
-                switch (alt58) {
+                switch (alt59) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:5601:3: rule__PerspectivePartStack__ElementsAssignment_5
+            	    // InternalPerspectiveDsl.g:5622:3: rule__PerspectivePartStack__ElementsAssignment_5
             	    {
             	    pushFollow(FOLLOW_14);
             	    rule__PerspectivePartStack__ElementsAssignment_5();
@@ -19950,7 +20051,7 @@
             	    break;
 
             	default :
-            	    break loop58;
+            	    break loop59;
                 }
             } while (true);
 
@@ -19979,14 +20080,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__6"
-    // InternalPerspectiveDsl.g:5609:1: rule__PerspectivePartStack__Group__6 : rule__PerspectivePartStack__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:5630:1: rule__PerspectivePartStack__Group__6 : rule__PerspectivePartStack__Group__6__Impl ;
     public final void rule__PerspectivePartStack__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5613:1: ( rule__PerspectivePartStack__Group__6__Impl )
-            // InternalPerspectiveDsl.g:5614:2: rule__PerspectivePartStack__Group__6__Impl
+            // InternalPerspectiveDsl.g:5634:1: ( rule__PerspectivePartStack__Group__6__Impl )
+            // InternalPerspectiveDsl.g:5635:2: rule__PerspectivePartStack__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group__6__Impl();
@@ -20012,17 +20113,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__6__Impl"
-    // InternalPerspectiveDsl.g:5620:1: rule__PerspectivePartStack__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:5641:1: rule__PerspectivePartStack__Group__6__Impl : ( '}' ) ;
     public final void rule__PerspectivePartStack__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5624:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:5625:1: ( '}' )
+            // InternalPerspectiveDsl.g:5645:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:5646:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:5625:1: ( '}' )
-            // InternalPerspectiveDsl.g:5626:2: '}'
+            // InternalPerspectiveDsl.g:5646:1: ( '}' )
+            // InternalPerspectiveDsl.g:5647:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getRightCurlyBracketKeyword_6()); 
@@ -20053,14 +20154,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__0"
-    // InternalPerspectiveDsl.g:5636:1: rule__PerspectivePartStack__Group_3_0__0 : rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:5657:1: rule__PerspectivePartStack__Group_3_0__0 : rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1 ;
     public final void rule__PerspectivePartStack__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5640:1: ( rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:5641:2: rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1
+            // InternalPerspectiveDsl.g:5661:1: ( rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:5662:2: rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePartStack__Group_3_0__0__Impl();
@@ -20091,17 +20192,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:5648:1: rule__PerspectivePartStack__Group_3_0__0__Impl : ( 'selectedElement' ) ;
+    // InternalPerspectiveDsl.g:5669:1: rule__PerspectivePartStack__Group_3_0__0__Impl : ( 'selectedElement' ) ;
     public final void rule__PerspectivePartStack__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5652:1: ( ( 'selectedElement' ) )
-            // InternalPerspectiveDsl.g:5653:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5673:1: ( ( 'selectedElement' ) )
+            // InternalPerspectiveDsl.g:5674:1: ( 'selectedElement' )
             {
-            // InternalPerspectiveDsl.g:5653:1: ( 'selectedElement' )
-            // InternalPerspectiveDsl.g:5654:2: 'selectedElement'
+            // InternalPerspectiveDsl.g:5674:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5675:2: 'selectedElement'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementKeyword_3_0_0()); 
@@ -20132,14 +20233,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__1"
-    // InternalPerspectiveDsl.g:5663:1: rule__PerspectivePartStack__Group_3_0__1 : rule__PerspectivePartStack__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:5684:1: rule__PerspectivePartStack__Group_3_0__1 : rule__PerspectivePartStack__Group_3_0__1__Impl ;
     public final void rule__PerspectivePartStack__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5667:1: ( rule__PerspectivePartStack__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:5668:2: rule__PerspectivePartStack__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:5688:1: ( rule__PerspectivePartStack__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:5689:2: rule__PerspectivePartStack__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group_3_0__1__Impl();
@@ -20165,23 +20266,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:5674:1: rule__PerspectivePartStack__Group_3_0__1__Impl : ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:5695:1: rule__PerspectivePartStack__Group_3_0__1__Impl : ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5678:1: ( ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:5679:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5699:1: ( ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:5700:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:5679:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:5680:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5700:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5701:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:5681:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:5681:3: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1
+            // InternalPerspectiveDsl.g:5702:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5702:3: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__SelectedElementAssignment_3_0_1();
@@ -20216,14 +20317,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__0"
-    // InternalPerspectiveDsl.g:5690:1: rule__PerspectivePartStack__Group_3_1__0 : rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:5711:1: rule__PerspectivePartStack__Group_3_1__0 : rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 ;
     public final void rule__PerspectivePartStack__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5694:1: ( rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:5695:2: rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1
+            // InternalPerspectiveDsl.g:5715:1: ( rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:5716:2: rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePartStack__Group_3_1__0__Impl();
@@ -20254,17 +20355,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:5702:1: rule__PerspectivePartStack__Group_3_1__0__Impl : ( 'synchronize' ) ;
+    // InternalPerspectiveDsl.g:5723:1: rule__PerspectivePartStack__Group_3_1__0__Impl : ( 'synchronize' ) ;
     public final void rule__PerspectivePartStack__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5706:1: ( ( 'synchronize' ) )
-            // InternalPerspectiveDsl.g:5707:1: ( 'synchronize' )
+            // InternalPerspectiveDsl.g:5727:1: ( ( 'synchronize' ) )
+            // InternalPerspectiveDsl.g:5728:1: ( 'synchronize' )
             {
-            // InternalPerspectiveDsl.g:5707:1: ( 'synchronize' )
-            // InternalPerspectiveDsl.g:5708:2: 'synchronize'
+            // InternalPerspectiveDsl.g:5728:1: ( 'synchronize' )
+            // InternalPerspectiveDsl.g:5729:2: 'synchronize'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSynchronizeKeyword_3_1_0()); 
@@ -20295,14 +20396,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__1"
-    // InternalPerspectiveDsl.g:5717:1: rule__PerspectivePartStack__Group_3_1__1 : rule__PerspectivePartStack__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:5738:1: rule__PerspectivePartStack__Group_3_1__1 : rule__PerspectivePartStack__Group_3_1__1__Impl ;
     public final void rule__PerspectivePartStack__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5721:1: ( rule__PerspectivePartStack__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:5722:2: rule__PerspectivePartStack__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:5742:1: ( rule__PerspectivePartStack__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:5743:2: rule__PerspectivePartStack__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group_3_1__1__Impl();
@@ -20328,23 +20429,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:5728:1: rule__PerspectivePartStack__Group_3_1__1__Impl : ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:5749:1: rule__PerspectivePartStack__Group_3_1__1__Impl : ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5732:1: ( ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:5733:1: ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5753:1: ( ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:5754:1: ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:5733:1: ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:5734:2: ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5754:1: ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5755:2: ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSynchronizeAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:5735:2: ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:5735:3: rule__PerspectivePartStack__SynchronizeAssignment_3_1_1
+            // InternalPerspectiveDsl.g:5756:2: ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5756:3: rule__PerspectivePartStack__SynchronizeAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__SynchronizeAssignment_3_1_1();
@@ -20379,14 +20480,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__0"
-    // InternalPerspectiveDsl.g:5744:1: rule__PerspectivePartStack__Group_3_2__0 : rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:5765:1: rule__PerspectivePartStack__Group_3_2__0 : rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1 ;
     public final void rule__PerspectivePartStack__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5748:1: ( rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:5749:2: rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1
+            // InternalPerspectiveDsl.g:5769:1: ( rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:5770:2: rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePartStack__Group_3_2__0__Impl();
@@ -20417,17 +20518,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:5756:1: rule__PerspectivePartStack__Group_3_2__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5777:1: rule__PerspectivePartStack__Group_3_2__0__Impl : ( 'spaceVolume' ) ;
     public final void rule__PerspectivePartStack__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5760:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5761:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5781:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5782:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5761:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5762:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5782:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5783:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_2_0()); 
@@ -20458,14 +20559,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__1"
-    // InternalPerspectiveDsl.g:5771:1: rule__PerspectivePartStack__Group_3_2__1 : rule__PerspectivePartStack__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:5792:1: rule__PerspectivePartStack__Group_3_2__1 : rule__PerspectivePartStack__Group_3_2__1__Impl ;
     public final void rule__PerspectivePartStack__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5775:1: ( rule__PerspectivePartStack__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:5776:2: rule__PerspectivePartStack__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:5796:1: ( rule__PerspectivePartStack__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:5797:2: rule__PerspectivePartStack__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group_3_2__1__Impl();
@@ -20491,23 +20592,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:5782:1: rule__PerspectivePartStack__Group_3_2__1__Impl : ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:5803:1: rule__PerspectivePartStack__Group_3_2__1__Impl : ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5786:1: ( ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:5787:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5807:1: ( ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:5808:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:5787:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:5788:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5808:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5809:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:5789:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:5789:3: rule__PerspectivePartStack__ContainerDataAssignment_3_2_1
+            // InternalPerspectiveDsl.g:5810:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5810:3: rule__PerspectivePartStack__ContainerDataAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__ContainerDataAssignment_3_2_1();
@@ -20542,14 +20643,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_3__0"
-    // InternalPerspectiveDsl.g:5798:1: rule__PerspectivePartStack__Group_3_3__0 : rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1 ;
+    // InternalPerspectiveDsl.g:5819:1: rule__PerspectivePartStack__Group_3_3__0 : rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1 ;
     public final void rule__PerspectivePartStack__Group_3_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5802:1: ( rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1 )
-            // InternalPerspectiveDsl.g:5803:2: rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1
+            // InternalPerspectiveDsl.g:5823:1: ( rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1 )
+            // InternalPerspectiveDsl.g:5824:2: rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePartStack__Group_3_3__0__Impl();
@@ -20580,17 +20681,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_3__0__Impl"
-    // InternalPerspectiveDsl.g:5810:1: rule__PerspectivePartStack__Group_3_3__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:5831:1: rule__PerspectivePartStack__Group_3_3__0__Impl : ( 'accessibility' ) ;
     public final void rule__PerspectivePartStack__Group_3_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5814:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:5815:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5835:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:5836:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:5815:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:5816:2: 'accessibility'
+            // InternalPerspectiveDsl.g:5836:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5837:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_3_0()); 
@@ -20621,14 +20722,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_3__1"
-    // InternalPerspectiveDsl.g:5825:1: rule__PerspectivePartStack__Group_3_3__1 : rule__PerspectivePartStack__Group_3_3__1__Impl ;
+    // InternalPerspectiveDsl.g:5846:1: rule__PerspectivePartStack__Group_3_3__1 : rule__PerspectivePartStack__Group_3_3__1__Impl ;
     public final void rule__PerspectivePartStack__Group_3_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5829:1: ( rule__PerspectivePartStack__Group_3_3__1__Impl )
-            // InternalPerspectiveDsl.g:5830:2: rule__PerspectivePartStack__Group_3_3__1__Impl
+            // InternalPerspectiveDsl.g:5850:1: ( rule__PerspectivePartStack__Group_3_3__1__Impl )
+            // InternalPerspectiveDsl.g:5851:2: rule__PerspectivePartStack__Group_3_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group_3_3__1__Impl();
@@ -20654,23 +20755,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_3__1__Impl"
-    // InternalPerspectiveDsl.g:5836:1: rule__PerspectivePartStack__Group_3_3__1__Impl : ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:5857:1: rule__PerspectivePartStack__Group_3_3__1__Impl : ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5840:1: ( ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) ) )
-            // InternalPerspectiveDsl.g:5841:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5861:1: ( ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) ) )
+            // InternalPerspectiveDsl.g:5862:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:5841:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) )
-            // InternalPerspectiveDsl.g:5842:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5862:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5863:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_3_1()); 
             }
-            // InternalPerspectiveDsl.g:5843:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 )
-            // InternalPerspectiveDsl.g:5843:3: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1
+            // InternalPerspectiveDsl.g:5864:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5864:3: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1();
@@ -20705,14 +20806,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__0"
-    // InternalPerspectiveDsl.g:5852:1: rule__PerspectivePart__Group__0 : rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 ;
+    // InternalPerspectiveDsl.g:5873:1: rule__PerspectivePart__Group__0 : rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 ;
     public final void rule__PerspectivePart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5856:1: ( rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 )
-            // InternalPerspectiveDsl.g:5857:2: rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1
+            // InternalPerspectiveDsl.g:5877:1: ( rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 )
+            // InternalPerspectiveDsl.g:5878:2: rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1
             {
             pushFollow(FOLLOW_23);
             rule__PerspectivePart__Group__0__Impl();
@@ -20743,23 +20844,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:5864:1: rule__PerspectivePart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5885:1: rule__PerspectivePart__Group__0__Impl : ( () ) ;
     public final void rule__PerspectivePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5868:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:5869:1: ( () )
+            // InternalPerspectiveDsl.g:5889:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5890:1: ( () )
             {
-            // InternalPerspectiveDsl.g:5869:1: ( () )
-            // InternalPerspectiveDsl.g:5870:2: ()
+            // InternalPerspectiveDsl.g:5890:1: ( () )
+            // InternalPerspectiveDsl.g:5891:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getPerspectivePartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:5871:2: ()
-            // InternalPerspectiveDsl.g:5871:3: 
+            // InternalPerspectiveDsl.g:5892:2: ()
+            // InternalPerspectiveDsl.g:5892:3: 
             {
             }
 
@@ -20784,14 +20885,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__1"
-    // InternalPerspectiveDsl.g:5879:1: rule__PerspectivePart__Group__1 : rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 ;
+    // InternalPerspectiveDsl.g:5900:1: rule__PerspectivePart__Group__1 : rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 ;
     public final void rule__PerspectivePart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5883:1: ( rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 )
-            // InternalPerspectiveDsl.g:5884:2: rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2
+            // InternalPerspectiveDsl.g:5904:1: ( rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 )
+            // InternalPerspectiveDsl.g:5905:2: rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePart__Group__1__Impl();
@@ -20822,17 +20923,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:5891:1: rule__PerspectivePart__Group__1__Impl : ( 'part' ) ;
+    // InternalPerspectiveDsl.g:5912:1: rule__PerspectivePart__Group__1__Impl : ( 'part' ) ;
     public final void rule__PerspectivePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5895:1: ( ( 'part' ) )
-            // InternalPerspectiveDsl.g:5896:1: ( 'part' )
+            // InternalPerspectiveDsl.g:5916:1: ( ( 'part' ) )
+            // InternalPerspectiveDsl.g:5917:1: ( 'part' )
             {
-            // InternalPerspectiveDsl.g:5896:1: ( 'part' )
-            // InternalPerspectiveDsl.g:5897:2: 'part'
+            // InternalPerspectiveDsl.g:5917:1: ( 'part' )
+            // InternalPerspectiveDsl.g:5918:2: 'part'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getPartKeyword_1()); 
@@ -20863,14 +20964,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__2"
-    // InternalPerspectiveDsl.g:5906:1: rule__PerspectivePart__Group__2 : rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 ;
+    // InternalPerspectiveDsl.g:5927:1: rule__PerspectivePart__Group__2 : rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 ;
     public final void rule__PerspectivePart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5910:1: ( rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 )
-            // InternalPerspectiveDsl.g:5911:2: rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3
+            // InternalPerspectiveDsl.g:5931:1: ( rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 )
+            // InternalPerspectiveDsl.g:5932:2: rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3
             {
             pushFollow(FOLLOW_24);
             rule__PerspectivePart__Group__2__Impl();
@@ -20901,23 +21002,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:5918:1: rule__PerspectivePart__Group__2__Impl : ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:5939:1: rule__PerspectivePart__Group__2__Impl : ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) ;
     public final void rule__PerspectivePart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5922:1: ( ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:5923:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5943:1: ( ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:5944:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:5923:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
-            // InternalPerspectiveDsl.g:5924:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5944:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5945:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getElementIdAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:5925:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
-            // InternalPerspectiveDsl.g:5925:3: rule__PerspectivePart__ElementIdAssignment_2
+            // InternalPerspectiveDsl.g:5946:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5946:3: rule__PerspectivePart__ElementIdAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ElementIdAssignment_2();
@@ -20952,14 +21053,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__3"
-    // InternalPerspectiveDsl.g:5933:1: rule__PerspectivePart__Group__3 : rule__PerspectivePart__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:5954:1: rule__PerspectivePart__Group__3 : rule__PerspectivePart__Group__3__Impl ;
     public final void rule__PerspectivePart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5937:1: ( rule__PerspectivePart__Group__3__Impl )
-            // InternalPerspectiveDsl.g:5938:2: rule__PerspectivePart__Group__3__Impl
+            // InternalPerspectiveDsl.g:5958:1: ( rule__PerspectivePart__Group__3__Impl )
+            // InternalPerspectiveDsl.g:5959:2: rule__PerspectivePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group__3__Impl();
@@ -20985,23 +21086,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__3__Impl"
-    // InternalPerspectiveDsl.g:5944:1: rule__PerspectivePart__Group__3__Impl : ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) ;
+    // InternalPerspectiveDsl.g:5965:1: rule__PerspectivePart__Group__3__Impl : ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) ;
     public final void rule__PerspectivePart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5948:1: ( ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) )
-            // InternalPerspectiveDsl.g:5949:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5969:1: ( ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) )
+            // InternalPerspectiveDsl.g:5970:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
             {
-            // InternalPerspectiveDsl.g:5949:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
-            // InternalPerspectiveDsl.g:5950:2: ( rule__PerspectivePart__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5970:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5971:2: ( rule__PerspectivePart__UnorderedGroup_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:5951:2: ( rule__PerspectivePart__UnorderedGroup_3 )
-            // InternalPerspectiveDsl.g:5951:3: rule__PerspectivePart__UnorderedGroup_3
+            // InternalPerspectiveDsl.g:5972:2: ( rule__PerspectivePart__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5972:3: rule__PerspectivePart__UnorderedGroup_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__UnorderedGroup_3();
@@ -21036,14 +21137,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__0"
-    // InternalPerspectiveDsl.g:5960:1: rule__PerspectivePart__Group_3_0__0 : rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:5981:1: rule__PerspectivePart__Group_3_0__0 : rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 ;
     public final void rule__PerspectivePart__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5964:1: ( rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:5965:2: rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1
+            // InternalPerspectiveDsl.g:5985:1: ( rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:5986:2: rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_0__0__Impl();
@@ -21074,17 +21175,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:5972:1: rule__PerspectivePart__Group_3_0__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5993:1: rule__PerspectivePart__Group_3_0__0__Impl : ( 'spaceVolume' ) ;
     public final void rule__PerspectivePart__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5976:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5977:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5997:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5998:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5977:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5978:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5998:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5999:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getSpaceVolumeKeyword_3_0_0()); 
@@ -21115,14 +21216,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__1"
-    // InternalPerspectiveDsl.g:5987:1: rule__PerspectivePart__Group_3_0__1 : rule__PerspectivePart__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:6008:1: rule__PerspectivePart__Group_3_0__1 : rule__PerspectivePart__Group_3_0__1__Impl ;
     public final void rule__PerspectivePart__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5991:1: ( rule__PerspectivePart__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:5992:2: rule__PerspectivePart__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:6012:1: ( rule__PerspectivePart__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:6013:2: rule__PerspectivePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_0__1__Impl();
@@ -21148,23 +21249,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:5998:1: rule__PerspectivePart__Group_3_0__1__Impl : ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:6019:1: rule__PerspectivePart__Group_3_0__1__Impl : ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) ;
     public final void rule__PerspectivePart__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6002:1: ( ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:6003:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:6023:1: ( ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:6024:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:6003:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:6004:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:6024:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:6025:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getContainerDataAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:6005:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:6005:3: rule__PerspectivePart__ContainerDataAssignment_3_0_1
+            // InternalPerspectiveDsl.g:6026:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:6026:3: rule__PerspectivePart__ContainerDataAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ContainerDataAssignment_3_0_1();
@@ -21199,14 +21300,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__0"
-    // InternalPerspectiveDsl.g:6014:1: rule__PerspectivePart__Group_3_1__0 : rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:6035:1: rule__PerspectivePart__Group_3_1__0 : rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 ;
     public final void rule__PerspectivePart__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6018:1: ( rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:6019:2: rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1
+            // InternalPerspectiveDsl.g:6039:1: ( rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:6040:2: rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_1__0__Impl();
@@ -21237,17 +21338,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:6026:1: rule__PerspectivePart__Group_3_1__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:6047:1: rule__PerspectivePart__Group_3_1__0__Impl : ( 'accessibility' ) ;
     public final void rule__PerspectivePart__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6030:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:6031:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:6051:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:6052:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:6031:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:6032:2: 'accessibility'
+            // InternalPerspectiveDsl.g:6052:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:6053:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityKeyword_3_1_0()); 
@@ -21278,14 +21379,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__1"
-    // InternalPerspectiveDsl.g:6041:1: rule__PerspectivePart__Group_3_1__1 : rule__PerspectivePart__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:6062:1: rule__PerspectivePart__Group_3_1__1 : rule__PerspectivePart__Group_3_1__1__Impl ;
     public final void rule__PerspectivePart__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6045:1: ( rule__PerspectivePart__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:6046:2: rule__PerspectivePart__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:6066:1: ( rule__PerspectivePart__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:6067:2: rule__PerspectivePart__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_1__1__Impl();
@@ -21311,23 +21412,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:6052:1: rule__PerspectivePart__Group_3_1__1__Impl : ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:6073:1: rule__PerspectivePart__Group_3_1__1__Impl : ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) ;
     public final void rule__PerspectivePart__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6056:1: ( ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:6057:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:6077:1: ( ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:6078:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:6057:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:6058:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:6078:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:6079:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:6059:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:6059:3: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1
+            // InternalPerspectiveDsl.g:6080:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:6080:3: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1();
@@ -21362,14 +21463,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__0"
-    // InternalPerspectiveDsl.g:6068:1: rule__PerspectivePart__Group_3_2__0 : rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:6089:1: rule__PerspectivePart__Group_3_2__0 : rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 ;
     public final void rule__PerspectivePart__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6072:1: ( rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:6073:2: rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1
+            // InternalPerspectiveDsl.g:6093:1: ( rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:6094:2: rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_2__0__Impl();
@@ -21400,17 +21501,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:6080:1: rule__PerspectivePart__Group_3_2__0__Impl : ( 'iconURI' ) ;
+    // InternalPerspectiveDsl.g:6101:1: rule__PerspectivePart__Group_3_2__0__Impl : ( 'iconURI' ) ;
     public final void rule__PerspectivePart__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6084:1: ( ( 'iconURI' ) )
-            // InternalPerspectiveDsl.g:6085:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:6105:1: ( ( 'iconURI' ) )
+            // InternalPerspectiveDsl.g:6106:1: ( 'iconURI' )
             {
-            // InternalPerspectiveDsl.g:6085:1: ( 'iconURI' )
-            // InternalPerspectiveDsl.g:6086:2: 'iconURI'
+            // InternalPerspectiveDsl.g:6106:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:6107:2: 'iconURI'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURIKeyword_3_2_0()); 
@@ -21441,14 +21542,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__1"
-    // InternalPerspectiveDsl.g:6095:1: rule__PerspectivePart__Group_3_2__1 : rule__PerspectivePart__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:6116:1: rule__PerspectivePart__Group_3_2__1 : rule__PerspectivePart__Group_3_2__1__Impl ;
     public final void rule__PerspectivePart__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6099:1: ( rule__PerspectivePart__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:6100:2: rule__PerspectivePart__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:6120:1: ( rule__PerspectivePart__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:6121:2: rule__PerspectivePart__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_2__1__Impl();
@@ -21474,23 +21575,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:6106:1: rule__PerspectivePart__Group_3_2__1__Impl : ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:6127:1: rule__PerspectivePart__Group_3_2__1__Impl : ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) ;
     public final void rule__PerspectivePart__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6110:1: ( ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:6111:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:6131:1: ( ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:6132:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:6111:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:6112:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:6132:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:6133:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURIAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:6113:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:6113:3: rule__PerspectivePart__IconURIAssignment_3_2_1
+            // InternalPerspectiveDsl.g:6134:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:6134:3: rule__PerspectivePart__IconURIAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__IconURIAssignment_3_2_1();
@@ -21525,14 +21626,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__0"
-    // InternalPerspectiveDsl.g:6122:1: rule__PerspectivePart__Group_3_3__0 : rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 ;
+    // InternalPerspectiveDsl.g:6143:1: rule__PerspectivePart__Group_3_3__0 : rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 ;
     public final void rule__PerspectivePart__Group_3_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6126:1: ( rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 )
-            // InternalPerspectiveDsl.g:6127:2: rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1
+            // InternalPerspectiveDsl.g:6147:1: ( rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 )
+            // InternalPerspectiveDsl.g:6148:2: rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1
             {
             pushFollow(FOLLOW_25);
             rule__PerspectivePart__Group_3_3__0__Impl();
@@ -21563,17 +21664,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__0__Impl"
-    // InternalPerspectiveDsl.g:6134:1: rule__PerspectivePart__Group_3_3__0__Impl : ( 'view' ) ;
+    // InternalPerspectiveDsl.g:6155:1: rule__PerspectivePart__Group_3_3__0__Impl : ( 'view' ) ;
     public final void rule__PerspectivePart__Group_3_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6138:1: ( ( 'view' ) )
-            // InternalPerspectiveDsl.g:6139:1: ( 'view' )
+            // InternalPerspectiveDsl.g:6159:1: ( ( 'view' ) )
+            // InternalPerspectiveDsl.g:6160:1: ( 'view' )
             {
-            // InternalPerspectiveDsl.g:6139:1: ( 'view' )
-            // InternalPerspectiveDsl.g:6140:2: 'view'
+            // InternalPerspectiveDsl.g:6160:1: ( 'view' )
+            // InternalPerspectiveDsl.g:6161:2: 'view'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewKeyword_3_3_0()); 
@@ -21604,14 +21705,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__1"
-    // InternalPerspectiveDsl.g:6149:1: rule__PerspectivePart__Group_3_3__1 : rule__PerspectivePart__Group_3_3__1__Impl ;
+    // InternalPerspectiveDsl.g:6170:1: rule__PerspectivePart__Group_3_3__1 : rule__PerspectivePart__Group_3_3__1__Impl ;
     public final void rule__PerspectivePart__Group_3_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6153:1: ( rule__PerspectivePart__Group_3_3__1__Impl )
-            // InternalPerspectiveDsl.g:6154:2: rule__PerspectivePart__Group_3_3__1__Impl
+            // InternalPerspectiveDsl.g:6174:1: ( rule__PerspectivePart__Group_3_3__1__Impl )
+            // InternalPerspectiveDsl.g:6175:2: rule__PerspectivePart__Group_3_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_3__1__Impl();
@@ -21637,23 +21738,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__1__Impl"
-    // InternalPerspectiveDsl.g:6160:1: rule__PerspectivePart__Group_3_3__1__Impl : ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:6181:1: rule__PerspectivePart__Group_3_3__1__Impl : ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) ;
     public final void rule__PerspectivePart__Group_3_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6164:1: ( ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) )
-            // InternalPerspectiveDsl.g:6165:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:6185:1: ( ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) )
+            // InternalPerspectiveDsl.g:6186:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:6165:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
-            // InternalPerspectiveDsl.g:6166:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:6186:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:6187:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewAssignment_3_3_1()); 
             }
-            // InternalPerspectiveDsl.g:6167:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
-            // InternalPerspectiveDsl.g:6167:3: rule__PerspectivePart__ViewAssignment_3_3_1
+            // InternalPerspectiveDsl.g:6188:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:6188:3: rule__PerspectivePart__ViewAssignment_3_3_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ViewAssignment_3_3_1();
@@ -21688,14 +21789,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__0"
-    // InternalPerspectiveDsl.g:6176:1: rule__PerspectiveEventManager__Group__0 : rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 ;
+    // InternalPerspectiveDsl.g:6197:1: rule__PerspectiveEventManager__Group__0 : rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 ;
     public final void rule__PerspectiveEventManager__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6180:1: ( rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 )
-            // InternalPerspectiveDsl.g:6181:2: rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1
+            // InternalPerspectiveDsl.g:6201:1: ( rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 )
+            // InternalPerspectiveDsl.g:6202:2: rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveEventManager__Group__0__Impl();
@@ -21726,23 +21827,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6188:1: rule__PerspectiveEventManager__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6209:1: rule__PerspectiveEventManager__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveEventManager__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6192:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6193:1: ( () )
+            // InternalPerspectiveDsl.g:6213:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6214:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6193:1: ( () )
-            // InternalPerspectiveDsl.g:6194:2: ()
+            // InternalPerspectiveDsl.g:6214:1: ( () )
+            // InternalPerspectiveDsl.g:6215:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getPerspectiveEventManagerAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6195:2: ()
-            // InternalPerspectiveDsl.g:6195:3: 
+            // InternalPerspectiveDsl.g:6216:2: ()
+            // InternalPerspectiveDsl.g:6216:3: 
             {
             }
 
@@ -21767,14 +21868,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__1"
-    // InternalPerspectiveDsl.g:6203:1: rule__PerspectiveEventManager__Group__1 : rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 ;
+    // InternalPerspectiveDsl.g:6224:1: rule__PerspectiveEventManager__Group__1 : rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 ;
     public final void rule__PerspectiveEventManager__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6207:1: ( rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 )
-            // InternalPerspectiveDsl.g:6208:2: rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2
+            // InternalPerspectiveDsl.g:6228:1: ( rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 )
+            // InternalPerspectiveDsl.g:6229:2: rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__PerspectiveEventManager__Group__1__Impl();
@@ -21805,23 +21906,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6215:1: rule__PerspectiveEventManager__Group__1__Impl : ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:6236:1: rule__PerspectiveEventManager__Group__1__Impl : ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) ;
     public final void rule__PerspectiveEventManager__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6219:1: ( ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:6220:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:6240:1: ( ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:6241:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:6220:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
-            // InternalPerspectiveDsl.g:6221:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:6241:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:6242:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getNameAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:6222:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
-            // InternalPerspectiveDsl.g:6222:3: rule__PerspectiveEventManager__NameAssignment_1
+            // InternalPerspectiveDsl.g:6243:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:6243:3: rule__PerspectiveEventManager__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEventManager__NameAssignment_1();
@@ -21856,14 +21957,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__2"
-    // InternalPerspectiveDsl.g:6230:1: rule__PerspectiveEventManager__Group__2 : rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 ;
+    // InternalPerspectiveDsl.g:6251:1: rule__PerspectiveEventManager__Group__2 : rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 ;
     public final void rule__PerspectiveEventManager__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6234:1: ( rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 )
-            // InternalPerspectiveDsl.g:6235:2: rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3
+            // InternalPerspectiveDsl.g:6255:1: ( rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 )
+            // InternalPerspectiveDsl.g:6256:2: rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3
             {
             pushFollow(FOLLOW_26);
             rule__PerspectiveEventManager__Group__2__Impl();
@@ -21894,17 +21995,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6242:1: rule__PerspectiveEventManager__Group__2__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:6263:1: rule__PerspectiveEventManager__Group__2__Impl : ( '{' ) ;
     public final void rule__PerspectiveEventManager__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6246:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:6247:1: ( '{' )
+            // InternalPerspectiveDsl.g:6267:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:6268:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:6247:1: ( '{' )
-            // InternalPerspectiveDsl.g:6248:2: '{'
+            // InternalPerspectiveDsl.g:6268:1: ( '{' )
+            // InternalPerspectiveDsl.g:6269:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getLeftCurlyBracketKeyword_2()); 
@@ -21935,14 +22036,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__3"
-    // InternalPerspectiveDsl.g:6257:1: rule__PerspectiveEventManager__Group__3 : rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 ;
+    // InternalPerspectiveDsl.g:6278:1: rule__PerspectiveEventManager__Group__3 : rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 ;
     public final void rule__PerspectiveEventManager__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6261:1: ( rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 )
-            // InternalPerspectiveDsl.g:6262:2: rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4
+            // InternalPerspectiveDsl.g:6282:1: ( rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 )
+            // InternalPerspectiveDsl.g:6283:2: rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4
             {
             pushFollow(FOLLOW_26);
             rule__PerspectiveEventManager__Group__3__Impl();
@@ -21973,35 +22074,35 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__3__Impl"
-    // InternalPerspectiveDsl.g:6269:1: rule__PerspectiveEventManager__Group__3__Impl : ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) ;
+    // InternalPerspectiveDsl.g:6290:1: rule__PerspectiveEventManager__Group__3__Impl : ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) ;
     public final void rule__PerspectiveEventManager__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6273:1: ( ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) )
-            // InternalPerspectiveDsl.g:6274:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
+            // InternalPerspectiveDsl.g:6294:1: ( ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) )
+            // InternalPerspectiveDsl.g:6295:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
             {
-            // InternalPerspectiveDsl.g:6274:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
-            // InternalPerspectiveDsl.g:6275:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
+            // InternalPerspectiveDsl.g:6295:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
+            // InternalPerspectiveDsl.g:6296:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getEventsAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:6276:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
-            loop59:
+            // InternalPerspectiveDsl.g:6297:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
+            loop60:
             do {
-                int alt59=2;
-                int LA59_0 = input.LA(1);
+                int alt60=2;
+                int LA60_0 = input.LA(1);
 
-                if ( (LA59_0==72) ) {
-                    alt59=1;
+                if ( (LA60_0==72) ) {
+                    alt60=1;
                 }
 
 
-                switch (alt59) {
+                switch (alt60) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:6276:3: rule__PerspectiveEventManager__EventsAssignment_3
+            	    // InternalPerspectiveDsl.g:6297:3: rule__PerspectiveEventManager__EventsAssignment_3
             	    {
             	    pushFollow(FOLLOW_27);
             	    rule__PerspectiveEventManager__EventsAssignment_3();
@@ -22013,7 +22114,7 @@
             	    break;
 
             	default :
-            	    break loop59;
+            	    break loop60;
                 }
             } while (true);
 
@@ -22042,14 +22143,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__4"
-    // InternalPerspectiveDsl.g:6284:1: rule__PerspectiveEventManager__Group__4 : rule__PerspectiveEventManager__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:6305:1: rule__PerspectiveEventManager__Group__4 : rule__PerspectiveEventManager__Group__4__Impl ;
     public final void rule__PerspectiveEventManager__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6288:1: ( rule__PerspectiveEventManager__Group__4__Impl )
-            // InternalPerspectiveDsl.g:6289:2: rule__PerspectiveEventManager__Group__4__Impl
+            // InternalPerspectiveDsl.g:6309:1: ( rule__PerspectiveEventManager__Group__4__Impl )
+            // InternalPerspectiveDsl.g:6310:2: rule__PerspectiveEventManager__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEventManager__Group__4__Impl();
@@ -22075,17 +22176,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__4__Impl"
-    // InternalPerspectiveDsl.g:6295:1: rule__PerspectiveEventManager__Group__4__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:6316:1: rule__PerspectiveEventManager__Group__4__Impl : ( '}' ) ;
     public final void rule__PerspectiveEventManager__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6299:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:6300:1: ( '}' )
+            // InternalPerspectiveDsl.g:6320:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:6321:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:6300:1: ( '}' )
-            // InternalPerspectiveDsl.g:6301:2: '}'
+            // InternalPerspectiveDsl.g:6321:1: ( '}' )
+            // InternalPerspectiveDsl.g:6322:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getRightCurlyBracketKeyword_4()); 
@@ -22116,14 +22217,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__0"
-    // InternalPerspectiveDsl.g:6311:1: rule__PerspectiveEvent__Group__0 : rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 ;
+    // InternalPerspectiveDsl.g:6332:1: rule__PerspectiveEvent__Group__0 : rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 ;
     public final void rule__PerspectiveEvent__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6315:1: ( rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 )
-            // InternalPerspectiveDsl.g:6316:2: rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1
+            // InternalPerspectiveDsl.g:6336:1: ( rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 )
+            // InternalPerspectiveDsl.g:6337:2: rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1
             {
             pushFollow(FOLLOW_28);
             rule__PerspectiveEvent__Group__0__Impl();
@@ -22154,23 +22255,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6323:1: rule__PerspectiveEvent__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6344:1: rule__PerspectiveEvent__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveEvent__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6327:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6328:1: ( () )
+            // InternalPerspectiveDsl.g:6348:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6349:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6328:1: ( () )
-            // InternalPerspectiveDsl.g:6329:2: ()
+            // InternalPerspectiveDsl.g:6349:1: ( () )
+            // InternalPerspectiveDsl.g:6350:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getPerspectiveEventAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6330:2: ()
-            // InternalPerspectiveDsl.g:6330:3: 
+            // InternalPerspectiveDsl.g:6351:2: ()
+            // InternalPerspectiveDsl.g:6351:3: 
             {
             }
 
@@ -22195,14 +22296,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__1"
-    // InternalPerspectiveDsl.g:6338:1: rule__PerspectiveEvent__Group__1 : rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 ;
+    // InternalPerspectiveDsl.g:6359:1: rule__PerspectiveEvent__Group__1 : rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 ;
     public final void rule__PerspectiveEvent__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6342:1: ( rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 )
-            // InternalPerspectiveDsl.g:6343:2: rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2
+            // InternalPerspectiveDsl.g:6363:1: ( rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 )
+            // InternalPerspectiveDsl.g:6364:2: rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveEvent__Group__1__Impl();
@@ -22233,17 +22334,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6350:1: rule__PerspectiveEvent__Group__1__Impl : ( 'targetPart' ) ;
+    // InternalPerspectiveDsl.g:6371:1: rule__PerspectiveEvent__Group__1__Impl : ( 'targetPart' ) ;
     public final void rule__PerspectiveEvent__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6354:1: ( ( 'targetPart' ) )
-            // InternalPerspectiveDsl.g:6355:1: ( 'targetPart' )
+            // InternalPerspectiveDsl.g:6375:1: ( ( 'targetPart' ) )
+            // InternalPerspectiveDsl.g:6376:1: ( 'targetPart' )
             {
-            // InternalPerspectiveDsl.g:6355:1: ( 'targetPart' )
-            // InternalPerspectiveDsl.g:6356:2: 'targetPart'
+            // InternalPerspectiveDsl.g:6376:1: ( 'targetPart' )
+            // InternalPerspectiveDsl.g:6377:2: 'targetPart'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getTargetPartKeyword_1()); 
@@ -22274,14 +22375,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__2"
-    // InternalPerspectiveDsl.g:6365:1: rule__PerspectiveEvent__Group__2 : rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 ;
+    // InternalPerspectiveDsl.g:6386:1: rule__PerspectiveEvent__Group__2 : rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 ;
     public final void rule__PerspectiveEvent__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6369:1: ( rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 )
-            // InternalPerspectiveDsl.g:6370:2: rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3
+            // InternalPerspectiveDsl.g:6390:1: ( rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 )
+            // InternalPerspectiveDsl.g:6391:2: rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3
             {
             pushFollow(FOLLOW_29);
             rule__PerspectiveEvent__Group__2__Impl();
@@ -22312,23 +22413,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6377:1: rule__PerspectiveEvent__Group__2__Impl : ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6398:1: rule__PerspectiveEvent__Group__2__Impl : ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) ;
     public final void rule__PerspectiveEvent__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6381:1: ( ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6382:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6402:1: ( ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6403:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6382:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6383:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
+            // InternalPerspectiveDsl.g:6403:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6404:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getTargetAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6384:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
-            // InternalPerspectiveDsl.g:6384:3: rule__PerspectiveEvent__TargetAssignment_2
+            // InternalPerspectiveDsl.g:6405:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
+            // InternalPerspectiveDsl.g:6405:3: rule__PerspectiveEvent__TargetAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEvent__TargetAssignment_2();
@@ -22363,14 +22464,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__3"
-    // InternalPerspectiveDsl.g:6392:1: rule__PerspectiveEvent__Group__3 : rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 ;
+    // InternalPerspectiveDsl.g:6413:1: rule__PerspectiveEvent__Group__3 : rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 ;
     public final void rule__PerspectiveEvent__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6396:1: ( rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 )
-            // InternalPerspectiveDsl.g:6397:2: rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4
+            // InternalPerspectiveDsl.g:6417:1: ( rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 )
+            // InternalPerspectiveDsl.g:6418:2: rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4
             {
             pushFollow(FOLLOW_8);
             rule__PerspectiveEvent__Group__3__Impl();
@@ -22401,17 +22502,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__3__Impl"
-    // InternalPerspectiveDsl.g:6404:1: rule__PerspectiveEvent__Group__3__Impl : ( 'allowedSources' ) ;
+    // InternalPerspectiveDsl.g:6425:1: rule__PerspectiveEvent__Group__3__Impl : ( 'allowedSources' ) ;
     public final void rule__PerspectiveEvent__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6408:1: ( ( 'allowedSources' ) )
-            // InternalPerspectiveDsl.g:6409:1: ( 'allowedSources' )
+            // InternalPerspectiveDsl.g:6429:1: ( ( 'allowedSources' ) )
+            // InternalPerspectiveDsl.g:6430:1: ( 'allowedSources' )
             {
-            // InternalPerspectiveDsl.g:6409:1: ( 'allowedSources' )
-            // InternalPerspectiveDsl.g:6410:2: 'allowedSources'
+            // InternalPerspectiveDsl.g:6430:1: ( 'allowedSources' )
+            // InternalPerspectiveDsl.g:6431:2: 'allowedSources'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getAllowedSourcesKeyword_3()); 
@@ -22442,14 +22543,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__4"
-    // InternalPerspectiveDsl.g:6419:1: rule__PerspectiveEvent__Group__4 : rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 ;
+    // InternalPerspectiveDsl.g:6440:1: rule__PerspectiveEvent__Group__4 : rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 ;
     public final void rule__PerspectiveEvent__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6423:1: ( rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 )
-            // InternalPerspectiveDsl.g:6424:2: rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5
+            // InternalPerspectiveDsl.g:6444:1: ( rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 )
+            // InternalPerspectiveDsl.g:6445:2: rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5
             {
             pushFollow(FOLLOW_30);
             rule__PerspectiveEvent__Group__4__Impl();
@@ -22480,17 +22581,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__4__Impl"
-    // InternalPerspectiveDsl.g:6431:1: rule__PerspectiveEvent__Group__4__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:6452:1: rule__PerspectiveEvent__Group__4__Impl : ( '{' ) ;
     public final void rule__PerspectiveEvent__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6435:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:6436:1: ( '{' )
+            // InternalPerspectiveDsl.g:6456:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:6457:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:6436:1: ( '{' )
-            // InternalPerspectiveDsl.g:6437:2: '{'
+            // InternalPerspectiveDsl.g:6457:1: ( '{' )
+            // InternalPerspectiveDsl.g:6458:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getLeftCurlyBracketKeyword_4()); 
@@ -22521,14 +22622,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__5"
-    // InternalPerspectiveDsl.g:6446:1: rule__PerspectiveEvent__Group__5 : rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 ;
+    // InternalPerspectiveDsl.g:6467:1: rule__PerspectiveEvent__Group__5 : rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 ;
     public final void rule__PerspectiveEvent__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6450:1: ( rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 )
-            // InternalPerspectiveDsl.g:6451:2: rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6
+            // InternalPerspectiveDsl.g:6471:1: ( rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 )
+            // InternalPerspectiveDsl.g:6472:2: rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6
             {
             pushFollow(FOLLOW_30);
             rule__PerspectiveEvent__Group__5__Impl();
@@ -22559,35 +22660,35 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__5__Impl"
-    // InternalPerspectiveDsl.g:6458:1: rule__PerspectiveEvent__Group__5__Impl : ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) ;
+    // InternalPerspectiveDsl.g:6479:1: rule__PerspectiveEvent__Group__5__Impl : ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) ;
     public final void rule__PerspectiveEvent__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6462:1: ( ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) )
-            // InternalPerspectiveDsl.g:6463:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
+            // InternalPerspectiveDsl.g:6483:1: ( ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) )
+            // InternalPerspectiveDsl.g:6484:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
             {
-            // InternalPerspectiveDsl.g:6463:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
-            // InternalPerspectiveDsl.g:6464:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
+            // InternalPerspectiveDsl.g:6484:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
+            // InternalPerspectiveDsl.g:6485:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getAllowedsourcesAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:6465:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
-            loop60:
+            // InternalPerspectiveDsl.g:6486:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
+            loop61:
             do {
-                int alt60=2;
-                int LA60_0 = input.LA(1);
+                int alt61=2;
+                int LA61_0 = input.LA(1);
 
-                if ( (LA60_0==RULE_ID) ) {
-                    alt60=1;
+                if ( (LA61_0==RULE_ID) ) {
+                    alt61=1;
                 }
 
 
-                switch (alt60) {
+                switch (alt61) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:6465:3: rule__PerspectiveEvent__AllowedsourcesAssignment_5
+            	    // InternalPerspectiveDsl.g:6486:3: rule__PerspectiveEvent__AllowedsourcesAssignment_5
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__PerspectiveEvent__AllowedsourcesAssignment_5();
@@ -22599,7 +22700,7 @@
             	    break;
 
             	default :
-            	    break loop60;
+            	    break loop61;
                 }
             } while (true);
 
@@ -22628,14 +22729,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__6"
-    // InternalPerspectiveDsl.g:6473:1: rule__PerspectiveEvent__Group__6 : rule__PerspectiveEvent__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:6494:1: rule__PerspectiveEvent__Group__6 : rule__PerspectiveEvent__Group__6__Impl ;
     public final void rule__PerspectiveEvent__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6477:1: ( rule__PerspectiveEvent__Group__6__Impl )
-            // InternalPerspectiveDsl.g:6478:2: rule__PerspectiveEvent__Group__6__Impl
+            // InternalPerspectiveDsl.g:6498:1: ( rule__PerspectiveEvent__Group__6__Impl )
+            // InternalPerspectiveDsl.g:6499:2: rule__PerspectiveEvent__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEvent__Group__6__Impl();
@@ -22661,17 +22762,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__6__Impl"
-    // InternalPerspectiveDsl.g:6484:1: rule__PerspectiveEvent__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:6505:1: rule__PerspectiveEvent__Group__6__Impl : ( '}' ) ;
     public final void rule__PerspectiveEvent__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6488:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:6489:1: ( '}' )
+            // InternalPerspectiveDsl.g:6509:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:6510:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:6489:1: ( '}' )
-            // InternalPerspectiveDsl.g:6490:2: '}'
+            // InternalPerspectiveDsl.g:6510:1: ( '}' )
+            // InternalPerspectiveDsl.g:6511:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getRightCurlyBracketKeyword_6()); 
@@ -22702,14 +22803,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__0"
-    // InternalPerspectiveDsl.g:6500:1: rule__PerspectiveSelection__Group__0 : rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 ;
+    // InternalPerspectiveDsl.g:6521:1: rule__PerspectiveSelection__Group__0 : rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 ;
     public final void rule__PerspectiveSelection__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6504:1: ( rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 )
-            // InternalPerspectiveDsl.g:6505:2: rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1
+            // InternalPerspectiveDsl.g:6525:1: ( rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 )
+            // InternalPerspectiveDsl.g:6526:2: rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1
             {
             pushFollow(FOLLOW_31);
             rule__PerspectiveSelection__Group__0__Impl();
@@ -22740,23 +22841,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6512:1: rule__PerspectiveSelection__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6533:1: rule__PerspectiveSelection__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSelection__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6516:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6517:1: ( () )
+            // InternalPerspectiveDsl.g:6537:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6538:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6517:1: ( () )
-            // InternalPerspectiveDsl.g:6518:2: ()
+            // InternalPerspectiveDsl.g:6538:1: ( () )
+            // InternalPerspectiveDsl.g:6539:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getPerspectiveSelectionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6519:2: ()
-            // InternalPerspectiveDsl.g:6519:3: 
+            // InternalPerspectiveDsl.g:6540:2: ()
+            // InternalPerspectiveDsl.g:6540:3: 
             {
             }
 
@@ -22781,14 +22882,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__1"
-    // InternalPerspectiveDsl.g:6527:1: rule__PerspectiveSelection__Group__1 : rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 ;
+    // InternalPerspectiveDsl.g:6548:1: rule__PerspectiveSelection__Group__1 : rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 ;
     public final void rule__PerspectiveSelection__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6531:1: ( rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 )
-            // InternalPerspectiveDsl.g:6532:2: rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2
+            // InternalPerspectiveDsl.g:6552:1: ( rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 )
+            // InternalPerspectiveDsl.g:6553:2: rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSelection__Group__1__Impl();
@@ -22819,17 +22920,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6539:1: rule__PerspectiveSelection__Group__1__Impl : ( 'select' ) ;
+    // InternalPerspectiveDsl.g:6560:1: rule__PerspectiveSelection__Group__1__Impl : ( 'select' ) ;
     public final void rule__PerspectiveSelection__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6543:1: ( ( 'select' ) )
-            // InternalPerspectiveDsl.g:6544:1: ( 'select' )
+            // InternalPerspectiveDsl.g:6564:1: ( ( 'select' ) )
+            // InternalPerspectiveDsl.g:6565:1: ( 'select' )
             {
-            // InternalPerspectiveDsl.g:6544:1: ( 'select' )
-            // InternalPerspectiveDsl.g:6545:2: 'select'
+            // InternalPerspectiveDsl.g:6565:1: ( 'select' )
+            // InternalPerspectiveDsl.g:6566:2: 'select'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getSelectKeyword_1()); 
@@ -22860,14 +22961,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__2"
-    // InternalPerspectiveDsl.g:6554:1: rule__PerspectiveSelection__Group__2 : rule__PerspectiveSelection__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6575:1: rule__PerspectiveSelection__Group__2 : rule__PerspectiveSelection__Group__2__Impl ;
     public final void rule__PerspectiveSelection__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6558:1: ( rule__PerspectiveSelection__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6559:2: rule__PerspectiveSelection__Group__2__Impl
+            // InternalPerspectiveDsl.g:6579:1: ( rule__PerspectiveSelection__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6580:2: rule__PerspectiveSelection__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSelection__Group__2__Impl();
@@ -22893,23 +22994,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6565:1: rule__PerspectiveSelection__Group__2__Impl : ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6586:1: rule__PerspectiveSelection__Group__2__Impl : ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveSelection__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6569:1: ( ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6570:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6590:1: ( ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6591:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6570:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6571:2: ( rule__PerspectiveSelection__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6591:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6592:2: ( rule__PerspectiveSelection__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6572:2: ( rule__PerspectiveSelection__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6572:3: rule__PerspectiveSelection__RefAssignment_2
+            // InternalPerspectiveDsl.g:6593:2: ( rule__PerspectiveSelection__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6593:3: rule__PerspectiveSelection__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSelection__RefAssignment_2();
@@ -22944,14 +23045,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__0"
-    // InternalPerspectiveDsl.g:6581:1: rule__PerspectiveTable__Group__0 : rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 ;
+    // InternalPerspectiveDsl.g:6602:1: rule__PerspectiveTable__Group__0 : rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 ;
     public final void rule__PerspectiveTable__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6585:1: ( rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 )
-            // InternalPerspectiveDsl.g:6586:2: rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1
+            // InternalPerspectiveDsl.g:6606:1: ( rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 )
+            // InternalPerspectiveDsl.g:6607:2: rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1
             {
             pushFollow(FOLLOW_32);
             rule__PerspectiveTable__Group__0__Impl();
@@ -22982,23 +23083,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6593:1: rule__PerspectiveTable__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6614:1: rule__PerspectiveTable__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTable__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6597:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6598:1: ( () )
+            // InternalPerspectiveDsl.g:6618:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6619:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6598:1: ( () )
-            // InternalPerspectiveDsl.g:6599:2: ()
+            // InternalPerspectiveDsl.g:6619:1: ( () )
+            // InternalPerspectiveDsl.g:6620:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getPerspectiveTableAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6600:2: ()
-            // InternalPerspectiveDsl.g:6600:3: 
+            // InternalPerspectiveDsl.g:6621:2: ()
+            // InternalPerspectiveDsl.g:6621:3: 
             {
             }
 
@@ -23023,14 +23124,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__1"
-    // InternalPerspectiveDsl.g:6608:1: rule__PerspectiveTable__Group__1 : rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 ;
+    // InternalPerspectiveDsl.g:6629:1: rule__PerspectiveTable__Group__1 : rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 ;
     public final void rule__PerspectiveTable__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6612:1: ( rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 )
-            // InternalPerspectiveDsl.g:6613:2: rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2
+            // InternalPerspectiveDsl.g:6633:1: ( rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 )
+            // InternalPerspectiveDsl.g:6634:2: rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveTable__Group__1__Impl();
@@ -23061,17 +23162,17 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6620:1: rule__PerspectiveTable__Group__1__Impl : ( 'readOnlyTable' ) ;
+    // InternalPerspectiveDsl.g:6641:1: rule__PerspectiveTable__Group__1__Impl : ( 'readOnlyTable' ) ;
     public final void rule__PerspectiveTable__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6624:1: ( ( 'readOnlyTable' ) )
-            // InternalPerspectiveDsl.g:6625:1: ( 'readOnlyTable' )
+            // InternalPerspectiveDsl.g:6645:1: ( ( 'readOnlyTable' ) )
+            // InternalPerspectiveDsl.g:6646:1: ( 'readOnlyTable' )
             {
-            // InternalPerspectiveDsl.g:6625:1: ( 'readOnlyTable' )
-            // InternalPerspectiveDsl.g:6626:2: 'readOnlyTable'
+            // InternalPerspectiveDsl.g:6646:1: ( 'readOnlyTable' )
+            // InternalPerspectiveDsl.g:6647:2: 'readOnlyTable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getReadOnlyTableKeyword_1()); 
@@ -23102,14 +23203,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__2"
-    // InternalPerspectiveDsl.g:6635:1: rule__PerspectiveTable__Group__2 : rule__PerspectiveTable__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6656:1: rule__PerspectiveTable__Group__2 : rule__PerspectiveTable__Group__2__Impl ;
     public final void rule__PerspectiveTable__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6639:1: ( rule__PerspectiveTable__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6640:2: rule__PerspectiveTable__Group__2__Impl
+            // InternalPerspectiveDsl.g:6660:1: ( rule__PerspectiveTable__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6661:2: rule__PerspectiveTable__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTable__Group__2__Impl();
@@ -23135,23 +23236,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6646:1: rule__PerspectiveTable__Group__2__Impl : ( ( rule__PerspectiveTable__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6667:1: rule__PerspectiveTable__Group__2__Impl : ( ( rule__PerspectiveTable__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveTable__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6650:1: ( ( ( rule__PerspectiveTable__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6651:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6671:1: ( ( ( rule__PerspectiveTable__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6672:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6651:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6652:2: ( rule__PerspectiveTable__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6672:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6673:2: ( rule__PerspectiveTable__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6653:2: ( rule__PerspectiveTable__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6653:3: rule__PerspectiveTable__RefAssignment_2
+            // InternalPerspectiveDsl.g:6674:2: ( rule__PerspectiveTable__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6674:3: rule__PerspectiveTable__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTable__RefAssignment_2();
@@ -23186,14 +23287,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__0"
-    // InternalPerspectiveDsl.g:6662:1: rule__PerspectiveGrid__Group__0 : rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 ;
+    // InternalPerspectiveDsl.g:6683:1: rule__PerspectiveGrid__Group__0 : rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 ;
     public final void rule__PerspectiveGrid__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6666:1: ( rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 )
-            // InternalPerspectiveDsl.g:6667:2: rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1
+            // InternalPerspectiveDsl.g:6687:1: ( rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 )
+            // InternalPerspectiveDsl.g:6688:2: rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1
             {
             pushFollow(FOLLOW_33);
             rule__PerspectiveGrid__Group__0__Impl();
@@ -23224,23 +23325,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6674:1: rule__PerspectiveGrid__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6695:1: rule__PerspectiveGrid__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveGrid__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6678:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6679:1: ( () )
+            // InternalPerspectiveDsl.g:6699:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6700:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6679:1: ( () )
-            // InternalPerspectiveDsl.g:6680:2: ()
+            // InternalPerspectiveDsl.g:6700:1: ( () )
+            // InternalPerspectiveDsl.g:6701:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getPerspectiveGridAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6681:2: ()
-            // InternalPerspectiveDsl.g:6681:3: 
+            // InternalPerspectiveDsl.g:6702:2: ()
+            // InternalPerspectiveDsl.g:6702:3: 
             {
             }
 
@@ -23265,14 +23366,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__1"
-    // InternalPerspectiveDsl.g:6689:1: rule__PerspectiveGrid__Group__1 : rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 ;
+    // InternalPerspectiveDsl.g:6710:1: rule__PerspectiveGrid__Group__1 : rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 ;
     public final void rule__PerspectiveGrid__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6693:1: ( rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 )
-            // InternalPerspectiveDsl.g:6694:2: rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2
+            // InternalPerspectiveDsl.g:6714:1: ( rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 )
+            // InternalPerspectiveDsl.g:6715:2: rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveGrid__Group__1__Impl();
@@ -23303,17 +23404,17 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6701:1: rule__PerspectiveGrid__Group__1__Impl : ( 'editableTable' ) ;
+    // InternalPerspectiveDsl.g:6722:1: rule__PerspectiveGrid__Group__1__Impl : ( 'editableTable' ) ;
     public final void rule__PerspectiveGrid__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6705:1: ( ( 'editableTable' ) )
-            // InternalPerspectiveDsl.g:6706:1: ( 'editableTable' )
+            // InternalPerspectiveDsl.g:6726:1: ( ( 'editableTable' ) )
+            // InternalPerspectiveDsl.g:6727:1: ( 'editableTable' )
             {
-            // InternalPerspectiveDsl.g:6706:1: ( 'editableTable' )
-            // InternalPerspectiveDsl.g:6707:2: 'editableTable'
+            // InternalPerspectiveDsl.g:6727:1: ( 'editableTable' )
+            // InternalPerspectiveDsl.g:6728:2: 'editableTable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getEditableTableKeyword_1()); 
@@ -23344,14 +23445,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__2"
-    // InternalPerspectiveDsl.g:6716:1: rule__PerspectiveGrid__Group__2 : rule__PerspectiveGrid__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6737:1: rule__PerspectiveGrid__Group__2 : rule__PerspectiveGrid__Group__2__Impl ;
     public final void rule__PerspectiveGrid__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6720:1: ( rule__PerspectiveGrid__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6721:2: rule__PerspectiveGrid__Group__2__Impl
+            // InternalPerspectiveDsl.g:6741:1: ( rule__PerspectiveGrid__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6742:2: rule__PerspectiveGrid__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveGrid__Group__2__Impl();
@@ -23377,23 +23478,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6727:1: rule__PerspectiveGrid__Group__2__Impl : ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6748:1: rule__PerspectiveGrid__Group__2__Impl : ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveGrid__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6731:1: ( ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6732:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6752:1: ( ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6753:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6732:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6733:2: ( rule__PerspectiveGrid__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6753:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6754:2: ( rule__PerspectiveGrid__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6734:2: ( rule__PerspectiveGrid__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6734:3: rule__PerspectiveGrid__RefAssignment_2
+            // InternalPerspectiveDsl.g:6755:2: ( rule__PerspectiveGrid__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6755:3: rule__PerspectiveGrid__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveGrid__RefAssignment_2();
@@ -23428,14 +23529,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__0"
-    // InternalPerspectiveDsl.g:6743:1: rule__PerspectiveChart__Group__0 : rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 ;
+    // InternalPerspectiveDsl.g:6764:1: rule__PerspectiveChart__Group__0 : rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 ;
     public final void rule__PerspectiveChart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6747:1: ( rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 )
-            // InternalPerspectiveDsl.g:6748:2: rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1
+            // InternalPerspectiveDsl.g:6768:1: ( rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 )
+            // InternalPerspectiveDsl.g:6769:2: rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1
             {
             pushFollow(FOLLOW_34);
             rule__PerspectiveChart__Group__0__Impl();
@@ -23466,23 +23567,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6755:1: rule__PerspectiveChart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6776:1: rule__PerspectiveChart__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveChart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6759:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6760:1: ( () )
+            // InternalPerspectiveDsl.g:6780:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6781:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6760:1: ( () )
-            // InternalPerspectiveDsl.g:6761:2: ()
+            // InternalPerspectiveDsl.g:6781:1: ( () )
+            // InternalPerspectiveDsl.g:6782:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getPerspectiveChartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6762:2: ()
-            // InternalPerspectiveDsl.g:6762:3: 
+            // InternalPerspectiveDsl.g:6783:2: ()
+            // InternalPerspectiveDsl.g:6783:3: 
             {
             }
 
@@ -23507,14 +23608,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__1"
-    // InternalPerspectiveDsl.g:6770:1: rule__PerspectiveChart__Group__1 : rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 ;
+    // InternalPerspectiveDsl.g:6791:1: rule__PerspectiveChart__Group__1 : rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 ;
     public final void rule__PerspectiveChart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6774:1: ( rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 )
-            // InternalPerspectiveDsl.g:6775:2: rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2
+            // InternalPerspectiveDsl.g:6795:1: ( rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 )
+            // InternalPerspectiveDsl.g:6796:2: rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveChart__Group__1__Impl();
@@ -23545,17 +23646,17 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6782:1: rule__PerspectiveChart__Group__1__Impl : ( 'chart' ) ;
+    // InternalPerspectiveDsl.g:6803:1: rule__PerspectiveChart__Group__1__Impl : ( 'chart' ) ;
     public final void rule__PerspectiveChart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6786:1: ( ( 'chart' ) )
-            // InternalPerspectiveDsl.g:6787:1: ( 'chart' )
+            // InternalPerspectiveDsl.g:6807:1: ( ( 'chart' ) )
+            // InternalPerspectiveDsl.g:6808:1: ( 'chart' )
             {
-            // InternalPerspectiveDsl.g:6787:1: ( 'chart' )
-            // InternalPerspectiveDsl.g:6788:2: 'chart'
+            // InternalPerspectiveDsl.g:6808:1: ( 'chart' )
+            // InternalPerspectiveDsl.g:6809:2: 'chart'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getChartKeyword_1()); 
@@ -23586,14 +23687,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__2"
-    // InternalPerspectiveDsl.g:6797:1: rule__PerspectiveChart__Group__2 : rule__PerspectiveChart__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6818:1: rule__PerspectiveChart__Group__2 : rule__PerspectiveChart__Group__2__Impl ;
     public final void rule__PerspectiveChart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6801:1: ( rule__PerspectiveChart__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6802:2: rule__PerspectiveChart__Group__2__Impl
+            // InternalPerspectiveDsl.g:6822:1: ( rule__PerspectiveChart__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6823:2: rule__PerspectiveChart__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveChart__Group__2__Impl();
@@ -23619,23 +23720,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6808:1: rule__PerspectiveChart__Group__2__Impl : ( ( rule__PerspectiveChart__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6829:1: rule__PerspectiveChart__Group__2__Impl : ( ( rule__PerspectiveChart__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveChart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6812:1: ( ( ( rule__PerspectiveChart__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6813:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6833:1: ( ( ( rule__PerspectiveChart__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6834:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6813:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6814:2: ( rule__PerspectiveChart__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6834:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6835:2: ( rule__PerspectiveChart__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6815:2: ( rule__PerspectiveChart__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6815:3: rule__PerspectiveChart__RefAssignment_2
+            // InternalPerspectiveDsl.g:6836:2: ( rule__PerspectiveChart__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6836:3: rule__PerspectiveChart__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveChart__RefAssignment_2();
@@ -23670,14 +23771,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__0"
-    // InternalPerspectiveDsl.g:6824:1: rule__PerspectiveReport__Group__0 : rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 ;
+    // InternalPerspectiveDsl.g:6845:1: rule__PerspectiveReport__Group__0 : rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 ;
     public final void rule__PerspectiveReport__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6828:1: ( rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 )
-            // InternalPerspectiveDsl.g:6829:2: rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1
+            // InternalPerspectiveDsl.g:6849:1: ( rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 )
+            // InternalPerspectiveDsl.g:6850:2: rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1
             {
             pushFollow(FOLLOW_35);
             rule__PerspectiveReport__Group__0__Impl();
@@ -23708,23 +23809,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6836:1: rule__PerspectiveReport__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6857:1: rule__PerspectiveReport__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveReport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6840:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6841:1: ( () )
+            // InternalPerspectiveDsl.g:6861:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6862:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6841:1: ( () )
-            // InternalPerspectiveDsl.g:6842:2: ()
+            // InternalPerspectiveDsl.g:6862:1: ( () )
+            // InternalPerspectiveDsl.g:6863:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getPerspectiveReportAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6843:2: ()
-            // InternalPerspectiveDsl.g:6843:3: 
+            // InternalPerspectiveDsl.g:6864:2: ()
+            // InternalPerspectiveDsl.g:6864:3: 
             {
             }
 
@@ -23749,14 +23850,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__1"
-    // InternalPerspectiveDsl.g:6851:1: rule__PerspectiveReport__Group__1 : rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 ;
+    // InternalPerspectiveDsl.g:6872:1: rule__PerspectiveReport__Group__1 : rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 ;
     public final void rule__PerspectiveReport__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6855:1: ( rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 )
-            // InternalPerspectiveDsl.g:6856:2: rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2
+            // InternalPerspectiveDsl.g:6876:1: ( rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 )
+            // InternalPerspectiveDsl.g:6877:2: rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveReport__Group__1__Impl();
@@ -23787,17 +23888,17 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6863:1: rule__PerspectiveReport__Group__1__Impl : ( 'report' ) ;
+    // InternalPerspectiveDsl.g:6884:1: rule__PerspectiveReport__Group__1__Impl : ( 'report' ) ;
     public final void rule__PerspectiveReport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6867:1: ( ( 'report' ) )
-            // InternalPerspectiveDsl.g:6868:1: ( 'report' )
+            // InternalPerspectiveDsl.g:6888:1: ( ( 'report' ) )
+            // InternalPerspectiveDsl.g:6889:1: ( 'report' )
             {
-            // InternalPerspectiveDsl.g:6868:1: ( 'report' )
-            // InternalPerspectiveDsl.g:6869:2: 'report'
+            // InternalPerspectiveDsl.g:6889:1: ( 'report' )
+            // InternalPerspectiveDsl.g:6890:2: 'report'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getReportKeyword_1()); 
@@ -23828,14 +23929,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__2"
-    // InternalPerspectiveDsl.g:6878:1: rule__PerspectiveReport__Group__2 : rule__PerspectiveReport__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6899:1: rule__PerspectiveReport__Group__2 : rule__PerspectiveReport__Group__2__Impl ;
     public final void rule__PerspectiveReport__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6882:1: ( rule__PerspectiveReport__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6883:2: rule__PerspectiveReport__Group__2__Impl
+            // InternalPerspectiveDsl.g:6903:1: ( rule__PerspectiveReport__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6904:2: rule__PerspectiveReport__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveReport__Group__2__Impl();
@@ -23861,23 +23962,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6889:1: rule__PerspectiveReport__Group__2__Impl : ( ( rule__PerspectiveReport__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6910:1: rule__PerspectiveReport__Group__2__Impl : ( ( rule__PerspectiveReport__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveReport__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6893:1: ( ( ( rule__PerspectiveReport__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6894:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6914:1: ( ( ( rule__PerspectiveReport__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6915:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6894:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6895:2: ( rule__PerspectiveReport__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6915:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6916:2: ( rule__PerspectiveReport__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6896:2: ( rule__PerspectiveReport__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6896:3: rule__PerspectiveReport__RefAssignment_2
+            // InternalPerspectiveDsl.g:6917:2: ( rule__PerspectiveReport__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6917:3: rule__PerspectiveReport__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveReport__RefAssignment_2();
@@ -23912,14 +24013,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__0"
-    // InternalPerspectiveDsl.g:6905:1: rule__PerspectiveOrganization__Group__0 : rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 ;
+    // InternalPerspectiveDsl.g:6926:1: rule__PerspectiveOrganization__Group__0 : rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 ;
     public final void rule__PerspectiveOrganization__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6909:1: ( rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 )
-            // InternalPerspectiveDsl.g:6910:2: rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1
+            // InternalPerspectiveDsl.g:6930:1: ( rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 )
+            // InternalPerspectiveDsl.g:6931:2: rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__PerspectiveOrganization__Group__0__Impl();
@@ -23950,23 +24051,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6917:1: rule__PerspectiveOrganization__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6938:1: rule__PerspectiveOrganization__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveOrganization__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6921:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6922:1: ( () )
+            // InternalPerspectiveDsl.g:6942:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6943:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6922:1: ( () )
-            // InternalPerspectiveDsl.g:6923:2: ()
+            // InternalPerspectiveDsl.g:6943:1: ( () )
+            // InternalPerspectiveDsl.g:6944:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getPerspectiveOrganizationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6924:2: ()
-            // InternalPerspectiveDsl.g:6924:3: 
+            // InternalPerspectiveDsl.g:6945:2: ()
+            // InternalPerspectiveDsl.g:6945:3: 
             {
             }
 
@@ -23991,14 +24092,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__1"
-    // InternalPerspectiveDsl.g:6932:1: rule__PerspectiveOrganization__Group__1 : rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 ;
+    // InternalPerspectiveDsl.g:6953:1: rule__PerspectiveOrganization__Group__1 : rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 ;
     public final void rule__PerspectiveOrganization__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6936:1: ( rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 )
-            // InternalPerspectiveDsl.g:6937:2: rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2
+            // InternalPerspectiveDsl.g:6957:1: ( rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 )
+            // InternalPerspectiveDsl.g:6958:2: rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveOrganization__Group__1__Impl();
@@ -24029,17 +24130,17 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6944:1: rule__PerspectiveOrganization__Group__1__Impl : ( 'organigram' ) ;
+    // InternalPerspectiveDsl.g:6965:1: rule__PerspectiveOrganization__Group__1__Impl : ( 'organigram' ) ;
     public final void rule__PerspectiveOrganization__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6948:1: ( ( 'organigram' ) )
-            // InternalPerspectiveDsl.g:6949:1: ( 'organigram' )
+            // InternalPerspectiveDsl.g:6969:1: ( ( 'organigram' ) )
+            // InternalPerspectiveDsl.g:6970:1: ( 'organigram' )
             {
-            // InternalPerspectiveDsl.g:6949:1: ( 'organigram' )
-            // InternalPerspectiveDsl.g:6950:2: 'organigram'
+            // InternalPerspectiveDsl.g:6970:1: ( 'organigram' )
+            // InternalPerspectiveDsl.g:6971:2: 'organigram'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getOrganigramKeyword_1()); 
@@ -24070,14 +24171,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__2"
-    // InternalPerspectiveDsl.g:6959:1: rule__PerspectiveOrganization__Group__2 : rule__PerspectiveOrganization__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6980:1: rule__PerspectiveOrganization__Group__2 : rule__PerspectiveOrganization__Group__2__Impl ;
     public final void rule__PerspectiveOrganization__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6963:1: ( rule__PerspectiveOrganization__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6964:2: rule__PerspectiveOrganization__Group__2__Impl
+            // InternalPerspectiveDsl.g:6984:1: ( rule__PerspectiveOrganization__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6985:2: rule__PerspectiveOrganization__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveOrganization__Group__2__Impl();
@@ -24103,23 +24204,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6970:1: rule__PerspectiveOrganization__Group__2__Impl : ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6991:1: rule__PerspectiveOrganization__Group__2__Impl : ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveOrganization__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6974:1: ( ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6975:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6995:1: ( ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6996:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6975:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6976:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6996:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6997:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6977:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6977:3: rule__PerspectiveOrganization__RefAssignment_2
+            // InternalPerspectiveDsl.g:6998:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6998:3: rule__PerspectiveOrganization__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveOrganization__RefAssignment_2();
@@ -24154,14 +24255,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__0"
-    // InternalPerspectiveDsl.g:6986:1: rule__PerspectiveTopology__Group__0 : rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 ;
+    // InternalPerspectiveDsl.g:7007:1: rule__PerspectiveTopology__Group__0 : rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 ;
     public final void rule__PerspectiveTopology__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6990:1: ( rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 )
-            // InternalPerspectiveDsl.g:6991:2: rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1
+            // InternalPerspectiveDsl.g:7011:1: ( rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 )
+            // InternalPerspectiveDsl.g:7012:2: rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1
             {
             pushFollow(FOLLOW_37);
             rule__PerspectiveTopology__Group__0__Impl();
@@ -24192,23 +24293,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6998:1: rule__PerspectiveTopology__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7019:1: rule__PerspectiveTopology__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTopology__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7002:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7003:1: ( () )
+            // InternalPerspectiveDsl.g:7023:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7024:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7003:1: ( () )
-            // InternalPerspectiveDsl.g:7004:2: ()
+            // InternalPerspectiveDsl.g:7024:1: ( () )
+            // InternalPerspectiveDsl.g:7025:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getPerspectiveTopologyAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7005:2: ()
-            // InternalPerspectiveDsl.g:7005:3: 
+            // InternalPerspectiveDsl.g:7026:2: ()
+            // InternalPerspectiveDsl.g:7026:3: 
             {
             }
 
@@ -24233,14 +24334,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__1"
-    // InternalPerspectiveDsl.g:7013:1: rule__PerspectiveTopology__Group__1 : rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 ;
+    // InternalPerspectiveDsl.g:7034:1: rule__PerspectiveTopology__Group__1 : rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 ;
     public final void rule__PerspectiveTopology__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7017:1: ( rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 )
-            // InternalPerspectiveDsl.g:7018:2: rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2
+            // InternalPerspectiveDsl.g:7038:1: ( rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 )
+            // InternalPerspectiveDsl.g:7039:2: rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveTopology__Group__1__Impl();
@@ -24271,17 +24372,17 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7025:1: rule__PerspectiveTopology__Group__1__Impl : ( 'topology' ) ;
+    // InternalPerspectiveDsl.g:7046:1: rule__PerspectiveTopology__Group__1__Impl : ( 'topology' ) ;
     public final void rule__PerspectiveTopology__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7029:1: ( ( 'topology' ) )
-            // InternalPerspectiveDsl.g:7030:1: ( 'topology' )
+            // InternalPerspectiveDsl.g:7050:1: ( ( 'topology' ) )
+            // InternalPerspectiveDsl.g:7051:1: ( 'topology' )
             {
-            // InternalPerspectiveDsl.g:7030:1: ( 'topology' )
-            // InternalPerspectiveDsl.g:7031:2: 'topology'
+            // InternalPerspectiveDsl.g:7051:1: ( 'topology' )
+            // InternalPerspectiveDsl.g:7052:2: 'topology'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getTopologyKeyword_1()); 
@@ -24312,14 +24413,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__2"
-    // InternalPerspectiveDsl.g:7040:1: rule__PerspectiveTopology__Group__2 : rule__PerspectiveTopology__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7061:1: rule__PerspectiveTopology__Group__2 : rule__PerspectiveTopology__Group__2__Impl ;
     public final void rule__PerspectiveTopology__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7044:1: ( rule__PerspectiveTopology__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7045:2: rule__PerspectiveTopology__Group__2__Impl
+            // InternalPerspectiveDsl.g:7065:1: ( rule__PerspectiveTopology__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7066:2: rule__PerspectiveTopology__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTopology__Group__2__Impl();
@@ -24345,23 +24446,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7051:1: rule__PerspectiveTopology__Group__2__Impl : ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7072:1: rule__PerspectiveTopology__Group__2__Impl : ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveTopology__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7055:1: ( ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7056:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7076:1: ( ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7077:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7056:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7057:2: ( rule__PerspectiveTopology__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7077:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7078:2: ( rule__PerspectiveTopology__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7058:2: ( rule__PerspectiveTopology__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:7058:3: rule__PerspectiveTopology__RefAssignment_2
+            // InternalPerspectiveDsl.g:7079:2: ( rule__PerspectiveTopology__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7079:3: rule__PerspectiveTopology__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTopology__RefAssignment_2();
@@ -24396,14 +24497,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__0"
-    // InternalPerspectiveDsl.g:7067:1: rule__PerspectiveDialog__Group__0 : rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 ;
+    // InternalPerspectiveDsl.g:7088:1: rule__PerspectiveDialog__Group__0 : rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 ;
     public final void rule__PerspectiveDialog__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7071:1: ( rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 )
-            // InternalPerspectiveDsl.g:7072:2: rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1
+            // InternalPerspectiveDsl.g:7092:1: ( rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 )
+            // InternalPerspectiveDsl.g:7093:2: rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1
             {
             pushFollow(FOLLOW_38);
             rule__PerspectiveDialog__Group__0__Impl();
@@ -24434,23 +24535,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7079:1: rule__PerspectiveDialog__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7100:1: rule__PerspectiveDialog__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDialog__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7083:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7084:1: ( () )
+            // InternalPerspectiveDsl.g:7104:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7105:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7084:1: ( () )
-            // InternalPerspectiveDsl.g:7085:2: ()
+            // InternalPerspectiveDsl.g:7105:1: ( () )
+            // InternalPerspectiveDsl.g:7106:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getPerspectiveDialogAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7086:2: ()
-            // InternalPerspectiveDsl.g:7086:3: 
+            // InternalPerspectiveDsl.g:7107:2: ()
+            // InternalPerspectiveDsl.g:7107:3: 
             {
             }
 
@@ -24475,14 +24576,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__1"
-    // InternalPerspectiveDsl.g:7094:1: rule__PerspectiveDialog__Group__1 : rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 ;
+    // InternalPerspectiveDsl.g:7115:1: rule__PerspectiveDialog__Group__1 : rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 ;
     public final void rule__PerspectiveDialog__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7098:1: ( rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 )
-            // InternalPerspectiveDsl.g:7099:2: rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2
+            // InternalPerspectiveDsl.g:7119:1: ( rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 )
+            // InternalPerspectiveDsl.g:7120:2: rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveDialog__Group__1__Impl();
@@ -24513,17 +24614,17 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7106:1: rule__PerspectiveDialog__Group__1__Impl : ( 'dialog' ) ;
+    // InternalPerspectiveDsl.g:7127:1: rule__PerspectiveDialog__Group__1__Impl : ( 'dialog' ) ;
     public final void rule__PerspectiveDialog__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7110:1: ( ( 'dialog' ) )
-            // InternalPerspectiveDsl.g:7111:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7131:1: ( ( 'dialog' ) )
+            // InternalPerspectiveDsl.g:7132:1: ( 'dialog' )
             {
-            // InternalPerspectiveDsl.g:7111:1: ( 'dialog' )
-            // InternalPerspectiveDsl.g:7112:2: 'dialog'
+            // InternalPerspectiveDsl.g:7132:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7133:2: 'dialog'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getDialogKeyword_1()); 
@@ -24554,14 +24655,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__2"
-    // InternalPerspectiveDsl.g:7121:1: rule__PerspectiveDialog__Group__2 : rule__PerspectiveDialog__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7142:1: rule__PerspectiveDialog__Group__2 : rule__PerspectiveDialog__Group__2__Impl ;
     public final void rule__PerspectiveDialog__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7125:1: ( rule__PerspectiveDialog__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7126:2: rule__PerspectiveDialog__Group__2__Impl
+            // InternalPerspectiveDsl.g:7146:1: ( rule__PerspectiveDialog__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7147:2: rule__PerspectiveDialog__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDialog__Group__2__Impl();
@@ -24587,23 +24688,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7132:1: rule__PerspectiveDialog__Group__2__Impl : ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7153:1: rule__PerspectiveDialog__Group__2__Impl : ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveDialog__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7136:1: ( ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7137:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7157:1: ( ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7158:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7137:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7138:2: ( rule__PerspectiveDialog__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7158:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7159:2: ( rule__PerspectiveDialog__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7139:2: ( rule__PerspectiveDialog__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:7139:3: rule__PerspectiveDialog__RefAssignment_2
+            // InternalPerspectiveDsl.g:7160:2: ( rule__PerspectiveDialog__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7160:3: rule__PerspectiveDialog__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDialog__RefAssignment_2();
@@ -24638,14 +24739,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__0"
-    // InternalPerspectiveDsl.g:7148:1: rule__PerspectiveBPMN__Group__0 : rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 ;
+    // InternalPerspectiveDsl.g:7169:1: rule__PerspectiveBPMN__Group__0 : rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 ;
     public final void rule__PerspectiveBPMN__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7152:1: ( rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 )
-            // InternalPerspectiveDsl.g:7153:2: rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1
+            // InternalPerspectiveDsl.g:7173:1: ( rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 )
+            // InternalPerspectiveDsl.g:7174:2: rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1
             {
             pushFollow(FOLLOW_39);
             rule__PerspectiveBPMN__Group__0__Impl();
@@ -24676,23 +24777,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7160:1: rule__PerspectiveBPMN__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7181:1: rule__PerspectiveBPMN__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveBPMN__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7164:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7165:1: ( () )
+            // InternalPerspectiveDsl.g:7185:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7186:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7165:1: ( () )
-            // InternalPerspectiveDsl.g:7166:2: ()
+            // InternalPerspectiveDsl.g:7186:1: ( () )
+            // InternalPerspectiveDsl.g:7187:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7167:2: ()
-            // InternalPerspectiveDsl.g:7167:3: 
+            // InternalPerspectiveDsl.g:7188:2: ()
+            // InternalPerspectiveDsl.g:7188:3: 
             {
             }
 
@@ -24717,14 +24818,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__1"
-    // InternalPerspectiveDsl.g:7175:1: rule__PerspectiveBPMN__Group__1 : rule__PerspectiveBPMN__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:7196:1: rule__PerspectiveBPMN__Group__1 : rule__PerspectiveBPMN__Group__1__Impl ;
     public final void rule__PerspectiveBPMN__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7179:1: ( rule__PerspectiveBPMN__Group__1__Impl )
-            // InternalPerspectiveDsl.g:7180:2: rule__PerspectiveBPMN__Group__1__Impl
+            // InternalPerspectiveDsl.g:7200:1: ( rule__PerspectiveBPMN__Group__1__Impl )
+            // InternalPerspectiveDsl.g:7201:2: rule__PerspectiveBPMN__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveBPMN__Group__1__Impl();
@@ -24750,17 +24851,17 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7186:1: rule__PerspectiveBPMN__Group__1__Impl : ( 'bpmn' ) ;
+    // InternalPerspectiveDsl.g:7207:1: rule__PerspectiveBPMN__Group__1__Impl : ( 'bpmn' ) ;
     public final void rule__PerspectiveBPMN__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7190:1: ( ( 'bpmn' ) )
-            // InternalPerspectiveDsl.g:7191:1: ( 'bpmn' )
+            // InternalPerspectiveDsl.g:7211:1: ( ( 'bpmn' ) )
+            // InternalPerspectiveDsl.g:7212:1: ( 'bpmn' )
             {
-            // InternalPerspectiveDsl.g:7191:1: ( 'bpmn' )
-            // InternalPerspectiveDsl.g:7192:2: 'bpmn'
+            // InternalPerspectiveDsl.g:7212:1: ( 'bpmn' )
+            // InternalPerspectiveDsl.g:7213:2: 'bpmn'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); 
@@ -24791,14 +24892,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__0"
-    // InternalPerspectiveDsl.g:7202:1: rule__PerspectiveKanban__Group__0 : rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 ;
+    // InternalPerspectiveDsl.g:7223:1: rule__PerspectiveKanban__Group__0 : rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 ;
     public final void rule__PerspectiveKanban__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7206:1: ( rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 )
-            // InternalPerspectiveDsl.g:7207:2: rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1
+            // InternalPerspectiveDsl.g:7227:1: ( rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 )
+            // InternalPerspectiveDsl.g:7228:2: rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1
             {
             pushFollow(FOLLOW_40);
             rule__PerspectiveKanban__Group__0__Impl();
@@ -24829,23 +24930,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7214:1: rule__PerspectiveKanban__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7235:1: rule__PerspectiveKanban__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveKanban__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7218:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7219:1: ( () )
+            // InternalPerspectiveDsl.g:7239:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7240:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7219:1: ( () )
-            // InternalPerspectiveDsl.g:7220:2: ()
+            // InternalPerspectiveDsl.g:7240:1: ( () )
+            // InternalPerspectiveDsl.g:7241:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getPerspectiveKanbanAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7221:2: ()
-            // InternalPerspectiveDsl.g:7221:3: 
+            // InternalPerspectiveDsl.g:7242:2: ()
+            // InternalPerspectiveDsl.g:7242:3: 
             {
             }
 
@@ -24870,14 +24971,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__1"
-    // InternalPerspectiveDsl.g:7229:1: rule__PerspectiveKanban__Group__1 : rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 ;
+    // InternalPerspectiveDsl.g:7250:1: rule__PerspectiveKanban__Group__1 : rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 ;
     public final void rule__PerspectiveKanban__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7233:1: ( rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 )
-            // InternalPerspectiveDsl.g:7234:2: rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2
+            // InternalPerspectiveDsl.g:7254:1: ( rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 )
+            // InternalPerspectiveDsl.g:7255:2: rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2
             {
             pushFollow(FOLLOW_41);
             rule__PerspectiveKanban__Group__1__Impl();
@@ -24908,17 +25009,17 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7241:1: rule__PerspectiveKanban__Group__1__Impl : ( 'kanban' ) ;
+    // InternalPerspectiveDsl.g:7262:1: rule__PerspectiveKanban__Group__1__Impl : ( 'kanban' ) ;
     public final void rule__PerspectiveKanban__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7245:1: ( ( 'kanban' ) )
-            // InternalPerspectiveDsl.g:7246:1: ( 'kanban' )
+            // InternalPerspectiveDsl.g:7266:1: ( ( 'kanban' ) )
+            // InternalPerspectiveDsl.g:7267:1: ( 'kanban' )
             {
-            // InternalPerspectiveDsl.g:7246:1: ( 'kanban' )
-            // InternalPerspectiveDsl.g:7247:2: 'kanban'
+            // InternalPerspectiveDsl.g:7267:1: ( 'kanban' )
+            // InternalPerspectiveDsl.g:7268:2: 'kanban'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getKanbanKeyword_1()); 
@@ -24949,14 +25050,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__2"
-    // InternalPerspectiveDsl.g:7256:1: rule__PerspectiveKanban__Group__2 : rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 ;
+    // InternalPerspectiveDsl.g:7277:1: rule__PerspectiveKanban__Group__2 : rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 ;
     public final void rule__PerspectiveKanban__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7260:1: ( rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 )
-            // InternalPerspectiveDsl.g:7261:2: rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3
+            // InternalPerspectiveDsl.g:7281:1: ( rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 )
+            // InternalPerspectiveDsl.g:7282:2: rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__2__Impl();
@@ -24987,17 +25088,17 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7268:1: rule__PerspectiveKanban__Group__2__Impl : ( 'of' ) ;
+    // InternalPerspectiveDsl.g:7289:1: rule__PerspectiveKanban__Group__2__Impl : ( 'of' ) ;
     public final void rule__PerspectiveKanban__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7272:1: ( ( 'of' ) )
-            // InternalPerspectiveDsl.g:7273:1: ( 'of' )
+            // InternalPerspectiveDsl.g:7293:1: ( ( 'of' ) )
+            // InternalPerspectiveDsl.g:7294:1: ( 'of' )
             {
-            // InternalPerspectiveDsl.g:7273:1: ( 'of' )
-            // InternalPerspectiveDsl.g:7274:2: 'of'
+            // InternalPerspectiveDsl.g:7294:1: ( 'of' )
+            // InternalPerspectiveDsl.g:7295:2: 'of'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getOfKeyword_2()); 
@@ -25028,14 +25129,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__3"
-    // InternalPerspectiveDsl.g:7283:1: rule__PerspectiveKanban__Group__3 : rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 ;
+    // InternalPerspectiveDsl.g:7304:1: rule__PerspectiveKanban__Group__3 : rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 ;
     public final void rule__PerspectiveKanban__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7287:1: ( rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 )
-            // InternalPerspectiveDsl.g:7288:2: rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4
+            // InternalPerspectiveDsl.g:7308:1: ( rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 )
+            // InternalPerspectiveDsl.g:7309:2: rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4
             {
             pushFollow(FOLLOW_42);
             rule__PerspectiveKanban__Group__3__Impl();
@@ -25066,23 +25167,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7295:1: rule__PerspectiveKanban__Group__3__Impl : ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:7316:1: rule__PerspectiveKanban__Group__3__Impl : ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) ;
     public final void rule__PerspectiveKanban__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7299:1: ( ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:7300:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7320:1: ( ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:7321:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:7300:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
-            // InternalPerspectiveDsl.g:7301:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7321:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7322:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDtoRefAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:7302:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
-            // InternalPerspectiveDsl.g:7302:3: rule__PerspectiveKanban__DtoRefAssignment_3
+            // InternalPerspectiveDsl.g:7323:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7323:3: rule__PerspectiveKanban__DtoRefAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__DtoRefAssignment_3();
@@ -25117,14 +25218,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__4"
-    // InternalPerspectiveDsl.g:7310:1: rule__PerspectiveKanban__Group__4 : rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 ;
+    // InternalPerspectiveDsl.g:7331:1: rule__PerspectiveKanban__Group__4 : rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 ;
     public final void rule__PerspectiveKanban__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7314:1: ( rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 )
-            // InternalPerspectiveDsl.g:7315:2: rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5
+            // InternalPerspectiveDsl.g:7335:1: ( rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 )
+            // InternalPerspectiveDsl.g:7336:2: rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__4__Impl();
@@ -25155,17 +25256,17 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__4__Impl"
-    // InternalPerspectiveDsl.g:7322:1: rule__PerspectiveKanban__Group__4__Impl : ( 'card' ) ;
+    // InternalPerspectiveDsl.g:7343:1: rule__PerspectiveKanban__Group__4__Impl : ( 'card' ) ;
     public final void rule__PerspectiveKanban__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7326:1: ( ( 'card' ) )
-            // InternalPerspectiveDsl.g:7327:1: ( 'card' )
+            // InternalPerspectiveDsl.g:7347:1: ( ( 'card' ) )
+            // InternalPerspectiveDsl.g:7348:1: ( 'card' )
             {
-            // InternalPerspectiveDsl.g:7327:1: ( 'card' )
-            // InternalPerspectiveDsl.g:7328:2: 'card'
+            // InternalPerspectiveDsl.g:7348:1: ( 'card' )
+            // InternalPerspectiveDsl.g:7349:2: 'card'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardKeyword_4()); 
@@ -25196,14 +25297,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__5"
-    // InternalPerspectiveDsl.g:7337:1: rule__PerspectiveKanban__Group__5 : rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 ;
+    // InternalPerspectiveDsl.g:7358:1: rule__PerspectiveKanban__Group__5 : rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 ;
     public final void rule__PerspectiveKanban__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7341:1: ( rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 )
-            // InternalPerspectiveDsl.g:7342:2: rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6
+            // InternalPerspectiveDsl.g:7362:1: ( rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 )
+            // InternalPerspectiveDsl.g:7363:2: rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6
             {
             pushFollow(FOLLOW_38);
             rule__PerspectiveKanban__Group__5__Impl();
@@ -25234,23 +25335,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__5__Impl"
-    // InternalPerspectiveDsl.g:7349:1: rule__PerspectiveKanban__Group__5__Impl : ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:7370:1: rule__PerspectiveKanban__Group__5__Impl : ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) ;
     public final void rule__PerspectiveKanban__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7353:1: ( ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:7354:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
+            // InternalPerspectiveDsl.g:7374:1: ( ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:7375:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:7354:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
-            // InternalPerspectiveDsl.g:7355:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
+            // InternalPerspectiveDsl.g:7375:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
+            // InternalPerspectiveDsl.g:7376:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardRefAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:7356:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
-            // InternalPerspectiveDsl.g:7356:3: rule__PerspectiveKanban__CardRefAssignment_5
+            // InternalPerspectiveDsl.g:7377:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
+            // InternalPerspectiveDsl.g:7377:3: rule__PerspectiveKanban__CardRefAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__CardRefAssignment_5();
@@ -25285,14 +25386,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__6"
-    // InternalPerspectiveDsl.g:7364:1: rule__PerspectiveKanban__Group__6 : rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 ;
+    // InternalPerspectiveDsl.g:7385:1: rule__PerspectiveKanban__Group__6 : rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 ;
     public final void rule__PerspectiveKanban__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7368:1: ( rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 )
-            // InternalPerspectiveDsl.g:7369:2: rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7
+            // InternalPerspectiveDsl.g:7389:1: ( rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 )
+            // InternalPerspectiveDsl.g:7390:2: rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__6__Impl();
@@ -25323,17 +25424,17 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__6__Impl"
-    // InternalPerspectiveDsl.g:7376:1: rule__PerspectiveKanban__Group__6__Impl : ( 'dialog' ) ;
+    // InternalPerspectiveDsl.g:7397:1: rule__PerspectiveKanban__Group__6__Impl : ( 'dialog' ) ;
     public final void rule__PerspectiveKanban__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7380:1: ( ( 'dialog' ) )
-            // InternalPerspectiveDsl.g:7381:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7401:1: ( ( 'dialog' ) )
+            // InternalPerspectiveDsl.g:7402:1: ( 'dialog' )
             {
-            // InternalPerspectiveDsl.g:7381:1: ( 'dialog' )
-            // InternalPerspectiveDsl.g:7382:2: 'dialog'
+            // InternalPerspectiveDsl.g:7402:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7403:2: 'dialog'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogKeyword_6()); 
@@ -25364,14 +25465,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__7"
-    // InternalPerspectiveDsl.g:7391:1: rule__PerspectiveKanban__Group__7 : rule__PerspectiveKanban__Group__7__Impl ;
+    // InternalPerspectiveDsl.g:7412:1: rule__PerspectiveKanban__Group__7 : rule__PerspectiveKanban__Group__7__Impl ;
     public final void rule__PerspectiveKanban__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7395:1: ( rule__PerspectiveKanban__Group__7__Impl )
-            // InternalPerspectiveDsl.g:7396:2: rule__PerspectiveKanban__Group__7__Impl
+            // InternalPerspectiveDsl.g:7416:1: ( rule__PerspectiveKanban__Group__7__Impl )
+            // InternalPerspectiveDsl.g:7417:2: rule__PerspectiveKanban__Group__7__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__Group__7__Impl();
@@ -25397,23 +25498,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__7__Impl"
-    // InternalPerspectiveDsl.g:7402:1: rule__PerspectiveKanban__Group__7__Impl : ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) ;
+    // InternalPerspectiveDsl.g:7423:1: rule__PerspectiveKanban__Group__7__Impl : ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) ;
     public final void rule__PerspectiveKanban__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7406:1: ( ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) )
-            // InternalPerspectiveDsl.g:7407:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
+            // InternalPerspectiveDsl.g:7427:1: ( ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) )
+            // InternalPerspectiveDsl.g:7428:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
             {
-            // InternalPerspectiveDsl.g:7407:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
-            // InternalPerspectiveDsl.g:7408:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
+            // InternalPerspectiveDsl.g:7428:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
+            // InternalPerspectiveDsl.g:7429:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogRefAssignment_7()); 
             }
-            // InternalPerspectiveDsl.g:7409:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
-            // InternalPerspectiveDsl.g:7409:3: rule__PerspectiveKanban__DialogRefAssignment_7
+            // InternalPerspectiveDsl.g:7430:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
+            // InternalPerspectiveDsl.g:7430:3: rule__PerspectiveKanban__DialogRefAssignment_7
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__DialogRefAssignment_7();
@@ -25448,14 +25549,14 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__0"
-    // InternalPerspectiveDsl.g:7418:1: rule__PerspectiveWelcome__Group__0 : rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 ;
+    // InternalPerspectiveDsl.g:7439:1: rule__PerspectiveWelcome__Group__0 : rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 ;
     public final void rule__PerspectiveWelcome__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7422:1: ( rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 )
-            // InternalPerspectiveDsl.g:7423:2: rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1
+            // InternalPerspectiveDsl.g:7443:1: ( rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 )
+            // InternalPerspectiveDsl.g:7444:2: rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__PerspectiveWelcome__Group__0__Impl();
@@ -25486,23 +25587,23 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7430:1: rule__PerspectiveWelcome__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7451:1: rule__PerspectiveWelcome__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveWelcome__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7434:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7435:1: ( () )
+            // InternalPerspectiveDsl.g:7455:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7456:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7435:1: ( () )
-            // InternalPerspectiveDsl.g:7436:2: ()
+            // InternalPerspectiveDsl.g:7456:1: ( () )
+            // InternalPerspectiveDsl.g:7457:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeAccess().getPerspectiveWelcomeAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7437:2: ()
-            // InternalPerspectiveDsl.g:7437:3: 
+            // InternalPerspectiveDsl.g:7458:2: ()
+            // InternalPerspectiveDsl.g:7458:3: 
             {
             }
 
@@ -25527,14 +25628,14 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__1"
-    // InternalPerspectiveDsl.g:7445:1: rule__PerspectiveWelcome__Group__1 : rule__PerspectiveWelcome__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:7466:1: rule__PerspectiveWelcome__Group__1 : rule__PerspectiveWelcome__Group__1__Impl ;
     public final void rule__PerspectiveWelcome__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7449:1: ( rule__PerspectiveWelcome__Group__1__Impl )
-            // InternalPerspectiveDsl.g:7450:2: rule__PerspectiveWelcome__Group__1__Impl
+            // InternalPerspectiveDsl.g:7470:1: ( rule__PerspectiveWelcome__Group__1__Impl )
+            // InternalPerspectiveDsl.g:7471:2: rule__PerspectiveWelcome__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveWelcome__Group__1__Impl();
@@ -25560,17 +25661,17 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7456:1: rule__PerspectiveWelcome__Group__1__Impl : ( 'welcome' ) ;
+    // InternalPerspectiveDsl.g:7477:1: rule__PerspectiveWelcome__Group__1__Impl : ( 'welcome' ) ;
     public final void rule__PerspectiveWelcome__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7460:1: ( ( 'welcome' ) )
-            // InternalPerspectiveDsl.g:7461:1: ( 'welcome' )
+            // InternalPerspectiveDsl.g:7481:1: ( ( 'welcome' ) )
+            // InternalPerspectiveDsl.g:7482:1: ( 'welcome' )
             {
-            // InternalPerspectiveDsl.g:7461:1: ( 'welcome' )
-            // InternalPerspectiveDsl.g:7462:2: 'welcome'
+            // InternalPerspectiveDsl.g:7482:1: ( 'welcome' )
+            // InternalPerspectiveDsl.g:7483:2: 'welcome'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeAccess().getWelcomeKeyword_1()); 
@@ -25601,14 +25702,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__0"
-    // InternalPerspectiveDsl.g:7472:1: rule__PerspectiveSearch__Group__0 : rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 ;
+    // InternalPerspectiveDsl.g:7493:1: rule__PerspectiveSearch__Group__0 : rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 ;
     public final void rule__PerspectiveSearch__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7476:1: ( rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 )
-            // InternalPerspectiveDsl.g:7477:2: rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1
+            // InternalPerspectiveDsl.g:7497:1: ( rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 )
+            // InternalPerspectiveDsl.g:7498:2: rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1
             {
             pushFollow(FOLLOW_44);
             rule__PerspectiveSearch__Group__0__Impl();
@@ -25639,23 +25740,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7484:1: rule__PerspectiveSearch__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7505:1: rule__PerspectiveSearch__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSearch__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7488:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7489:1: ( () )
+            // InternalPerspectiveDsl.g:7509:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7510:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7489:1: ( () )
-            // InternalPerspectiveDsl.g:7490:2: ()
+            // InternalPerspectiveDsl.g:7510:1: ( () )
+            // InternalPerspectiveDsl.g:7511:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getPerspectiveSearchAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7491:2: ()
-            // InternalPerspectiveDsl.g:7491:3: 
+            // InternalPerspectiveDsl.g:7512:2: ()
+            // InternalPerspectiveDsl.g:7512:3: 
             {
             }
 
@@ -25680,14 +25781,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__1"
-    // InternalPerspectiveDsl.g:7499:1: rule__PerspectiveSearch__Group__1 : rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 ;
+    // InternalPerspectiveDsl.g:7520:1: rule__PerspectiveSearch__Group__1 : rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 ;
     public final void rule__PerspectiveSearch__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7503:1: ( rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 )
-            // InternalPerspectiveDsl.g:7504:2: rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2
+            // InternalPerspectiveDsl.g:7524:1: ( rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 )
+            // InternalPerspectiveDsl.g:7525:2: rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2
             {
             pushFollow(FOLLOW_45);
             rule__PerspectiveSearch__Group__1__Impl();
@@ -25718,17 +25819,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7511:1: rule__PerspectiveSearch__Group__1__Impl : ( 'search' ) ;
+    // InternalPerspectiveDsl.g:7532:1: rule__PerspectiveSearch__Group__1__Impl : ( 'search' ) ;
     public final void rule__PerspectiveSearch__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7515:1: ( ( 'search' ) )
-            // InternalPerspectiveDsl.g:7516:1: ( 'search' )
+            // InternalPerspectiveDsl.g:7536:1: ( ( 'search' ) )
+            // InternalPerspectiveDsl.g:7537:1: ( 'search' )
             {
-            // InternalPerspectiveDsl.g:7516:1: ( 'search' )
-            // InternalPerspectiveDsl.g:7517:2: 'search'
+            // InternalPerspectiveDsl.g:7537:1: ( 'search' )
+            // InternalPerspectiveDsl.g:7538:2: 'search'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getSearchKeyword_1()); 
@@ -25759,14 +25860,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__2"
-    // InternalPerspectiveDsl.g:7526:1: rule__PerspectiveSearch__Group__2 : rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 ;
+    // InternalPerspectiveDsl.g:7547:1: rule__PerspectiveSearch__Group__2 : rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 ;
     public final void rule__PerspectiveSearch__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7530:1: ( rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 )
-            // InternalPerspectiveDsl.g:7531:2: rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3
+            // InternalPerspectiveDsl.g:7551:1: ( rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 )
+            // InternalPerspectiveDsl.g:7552:2: rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSearch__Group__2__Impl();
@@ -25797,17 +25898,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7538:1: rule__PerspectiveSearch__Group__2__Impl : ( 'in' ) ;
+    // InternalPerspectiveDsl.g:7559:1: rule__PerspectiveSearch__Group__2__Impl : ( 'in' ) ;
     public final void rule__PerspectiveSearch__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7542:1: ( ( 'in' ) )
-            // InternalPerspectiveDsl.g:7543:1: ( 'in' )
+            // InternalPerspectiveDsl.g:7563:1: ( ( 'in' ) )
+            // InternalPerspectiveDsl.g:7564:1: ( 'in' )
             {
-            // InternalPerspectiveDsl.g:7543:1: ( 'in' )
-            // InternalPerspectiveDsl.g:7544:2: 'in'
+            // InternalPerspectiveDsl.g:7564:1: ( 'in' )
+            // InternalPerspectiveDsl.g:7565:2: 'in'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getInKeyword_2()); 
@@ -25838,14 +25939,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__3"
-    // InternalPerspectiveDsl.g:7553:1: rule__PerspectiveSearch__Group__3 : rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 ;
+    // InternalPerspectiveDsl.g:7574:1: rule__PerspectiveSearch__Group__3 : rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 ;
     public final void rule__PerspectiveSearch__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7557:1: ( rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 )
-            // InternalPerspectiveDsl.g:7558:2: rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4
+            // InternalPerspectiveDsl.g:7578:1: ( rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 )
+            // InternalPerspectiveDsl.g:7579:2: rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4
             {
             pushFollow(FOLLOW_46);
             rule__PerspectiveSearch__Group__3__Impl();
@@ -25876,23 +25977,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7565:1: rule__PerspectiveSearch__Group__3__Impl : ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:7586:1: rule__PerspectiveSearch__Group__3__Impl : ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) ;
     public final void rule__PerspectiveSearch__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7569:1: ( ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:7570:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7590:1: ( ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:7591:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:7570:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
-            // InternalPerspectiveDsl.g:7571:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7591:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7592:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDtoRefAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:7572:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
-            // InternalPerspectiveDsl.g:7572:3: rule__PerspectiveSearch__DtoRefAssignment_3
+            // InternalPerspectiveDsl.g:7593:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7593:3: rule__PerspectiveSearch__DtoRefAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__DtoRefAssignment_3();
@@ -25927,14 +26028,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__4"
-    // InternalPerspectiveDsl.g:7580:1: rule__PerspectiveSearch__Group__4 : rule__PerspectiveSearch__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:7601:1: rule__PerspectiveSearch__Group__4 : rule__PerspectiveSearch__Group__4__Impl ;
     public final void rule__PerspectiveSearch__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7584:1: ( rule__PerspectiveSearch__Group__4__Impl )
-            // InternalPerspectiveDsl.g:7585:2: rule__PerspectiveSearch__Group__4__Impl
+            // InternalPerspectiveDsl.g:7605:1: ( rule__PerspectiveSearch__Group__4__Impl )
+            // InternalPerspectiveDsl.g:7606:2: rule__PerspectiveSearch__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group__4__Impl();
@@ -25960,23 +26061,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__4__Impl"
-    // InternalPerspectiveDsl.g:7591:1: rule__PerspectiveSearch__Group__4__Impl : ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) ;
+    // InternalPerspectiveDsl.g:7612:1: rule__PerspectiveSearch__Group__4__Impl : ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) ;
     public final void rule__PerspectiveSearch__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7595:1: ( ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) )
-            // InternalPerspectiveDsl.g:7596:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
+            // InternalPerspectiveDsl.g:7616:1: ( ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) )
+            // InternalPerspectiveDsl.g:7617:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
             {
-            // InternalPerspectiveDsl.g:7596:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
-            // InternalPerspectiveDsl.g:7597:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
+            // InternalPerspectiveDsl.g:7617:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
+            // InternalPerspectiveDsl.g:7618:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4()); 
             }
-            // InternalPerspectiveDsl.g:7598:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
-            // InternalPerspectiveDsl.g:7598:3: rule__PerspectiveSearch__UnorderedGroup_4
+            // InternalPerspectiveDsl.g:7619:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
+            // InternalPerspectiveDsl.g:7619:3: rule__PerspectiveSearch__UnorderedGroup_4
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__UnorderedGroup_4();
@@ -26011,14 +26112,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__0"
-    // InternalPerspectiveDsl.g:7607:1: rule__PerspectiveSearch__Group_4_0__0 : rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 ;
+    // InternalPerspectiveDsl.g:7628:1: rule__PerspectiveSearch__Group_4_0__0 : rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 ;
     public final void rule__PerspectiveSearch__Group_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7611:1: ( rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 )
-            // InternalPerspectiveDsl.g:7612:2: rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1
+            // InternalPerspectiveDsl.g:7632:1: ( rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 )
+            // InternalPerspectiveDsl.g:7633:2: rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1
             {
             pushFollow(FOLLOW_47);
             rule__PerspectiveSearch__Group_4_0__0__Impl();
@@ -26049,17 +26150,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__0__Impl"
-    // InternalPerspectiveDsl.g:7619:1: rule__PerspectiveSearch__Group_4_0__0__Impl : ( 'depth' ) ;
+    // InternalPerspectiveDsl.g:7640:1: rule__PerspectiveSearch__Group_4_0__0__Impl : ( 'depth' ) ;
     public final void rule__PerspectiveSearch__Group_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7623:1: ( ( 'depth' ) )
-            // InternalPerspectiveDsl.g:7624:1: ( 'depth' )
+            // InternalPerspectiveDsl.g:7644:1: ( ( 'depth' ) )
+            // InternalPerspectiveDsl.g:7645:1: ( 'depth' )
             {
-            // InternalPerspectiveDsl.g:7624:1: ( 'depth' )
-            // InternalPerspectiveDsl.g:7625:2: 'depth'
+            // InternalPerspectiveDsl.g:7645:1: ( 'depth' )
+            // InternalPerspectiveDsl.g:7646:2: 'depth'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthKeyword_4_0_0()); 
@@ -26090,14 +26191,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__1"
-    // InternalPerspectiveDsl.g:7634:1: rule__PerspectiveSearch__Group_4_0__1 : rule__PerspectiveSearch__Group_4_0__1__Impl ;
+    // InternalPerspectiveDsl.g:7655:1: rule__PerspectiveSearch__Group_4_0__1 : rule__PerspectiveSearch__Group_4_0__1__Impl ;
     public final void rule__PerspectiveSearch__Group_4_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7638:1: ( rule__PerspectiveSearch__Group_4_0__1__Impl )
-            // InternalPerspectiveDsl.g:7639:2: rule__PerspectiveSearch__Group_4_0__1__Impl
+            // InternalPerspectiveDsl.g:7659:1: ( rule__PerspectiveSearch__Group_4_0__1__Impl )
+            // InternalPerspectiveDsl.g:7660:2: rule__PerspectiveSearch__Group_4_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group_4_0__1__Impl();
@@ -26123,23 +26224,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__1__Impl"
-    // InternalPerspectiveDsl.g:7645:1: rule__PerspectiveSearch__Group_4_0__1__Impl : ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:7666:1: rule__PerspectiveSearch__Group_4_0__1__Impl : ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) ;
     public final void rule__PerspectiveSearch__Group_4_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7649:1: ( ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) )
-            // InternalPerspectiveDsl.g:7650:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
+            // InternalPerspectiveDsl.g:7670:1: ( ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) )
+            // InternalPerspectiveDsl.g:7671:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:7650:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
-            // InternalPerspectiveDsl.g:7651:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
+            // InternalPerspectiveDsl.g:7671:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
+            // InternalPerspectiveDsl.g:7672:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthAssignment_4_0_1()); 
             }
-            // InternalPerspectiveDsl.g:7652:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
-            // InternalPerspectiveDsl.g:7652:3: rule__PerspectiveSearch__DepthAssignment_4_0_1
+            // InternalPerspectiveDsl.g:7673:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
+            // InternalPerspectiveDsl.g:7673:3: rule__PerspectiveSearch__DepthAssignment_4_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__DepthAssignment_4_0_1();
@@ -26174,14 +26275,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__0"
-    // InternalPerspectiveDsl.g:7661:1: rule__PerspectiveSearch__Group_4_1__0 : rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 ;
+    // InternalPerspectiveDsl.g:7682:1: rule__PerspectiveSearch__Group_4_1__0 : rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 ;
     public final void rule__PerspectiveSearch__Group_4_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7665:1: ( rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 )
-            // InternalPerspectiveDsl.g:7666:2: rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1
+            // InternalPerspectiveDsl.g:7686:1: ( rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 )
+            // InternalPerspectiveDsl.g:7687:2: rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1
             {
             pushFollow(FOLLOW_47);
             rule__PerspectiveSearch__Group_4_1__0__Impl();
@@ -26212,17 +26313,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__0__Impl"
-    // InternalPerspectiveDsl.g:7673:1: rule__PerspectiveSearch__Group_4_1__0__Impl : ( 'filterColumns' ) ;
+    // InternalPerspectiveDsl.g:7694:1: rule__PerspectiveSearch__Group_4_1__0__Impl : ( 'filterColumns' ) ;
     public final void rule__PerspectiveSearch__Group_4_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7677:1: ( ( 'filterColumns' ) )
-            // InternalPerspectiveDsl.g:7678:1: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:7698:1: ( ( 'filterColumns' ) )
+            // InternalPerspectiveDsl.g:7699:1: ( 'filterColumns' )
             {
-            // InternalPerspectiveDsl.g:7678:1: ( 'filterColumns' )
-            // InternalPerspectiveDsl.g:7679:2: 'filterColumns'
+            // InternalPerspectiveDsl.g:7699:1: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:7700:2: 'filterColumns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColumnsKeyword_4_1_0()); 
@@ -26253,14 +26354,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__1"
-    // InternalPerspectiveDsl.g:7688:1: rule__PerspectiveSearch__Group_4_1__1 : rule__PerspectiveSearch__Group_4_1__1__Impl ;
+    // InternalPerspectiveDsl.g:7709:1: rule__PerspectiveSearch__Group_4_1__1 : rule__PerspectiveSearch__Group_4_1__1__Impl ;
     public final void rule__PerspectiveSearch__Group_4_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7692:1: ( rule__PerspectiveSearch__Group_4_1__1__Impl )
-            // InternalPerspectiveDsl.g:7693:2: rule__PerspectiveSearch__Group_4_1__1__Impl
+            // InternalPerspectiveDsl.g:7713:1: ( rule__PerspectiveSearch__Group_4_1__1__Impl )
+            // InternalPerspectiveDsl.g:7714:2: rule__PerspectiveSearch__Group_4_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group_4_1__1__Impl();
@@ -26286,23 +26387,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__1__Impl"
-    // InternalPerspectiveDsl.g:7699:1: rule__PerspectiveSearch__Group_4_1__1__Impl : ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:7720:1: rule__PerspectiveSearch__Group_4_1__1__Impl : ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) ;
     public final void rule__PerspectiveSearch__Group_4_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7703:1: ( ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) )
-            // InternalPerspectiveDsl.g:7704:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
+            // InternalPerspectiveDsl.g:7724:1: ( ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) )
+            // InternalPerspectiveDsl.g:7725:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:7704:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
-            // InternalPerspectiveDsl.g:7705:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
+            // InternalPerspectiveDsl.g:7725:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
+            // InternalPerspectiveDsl.g:7726:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColsAssignment_4_1_1()); 
             }
-            // InternalPerspectiveDsl.g:7706:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
-            // InternalPerspectiveDsl.g:7706:3: rule__PerspectiveSearch__FilterColsAssignment_4_1_1
+            // InternalPerspectiveDsl.g:7727:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
+            // InternalPerspectiveDsl.g:7727:3: rule__PerspectiveSearch__FilterColsAssignment_4_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__FilterColsAssignment_4_1_1();
@@ -26337,14 +26438,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__0"
-    // InternalPerspectiveDsl.g:7715:1: rule__PerspectiveDataInterchange__Group__0 : rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 ;
+    // InternalPerspectiveDsl.g:7736:1: rule__PerspectiveDataInterchange__Group__0 : rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 ;
     public final void rule__PerspectiveDataInterchange__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7719:1: ( rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 )
-            // InternalPerspectiveDsl.g:7720:2: rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1
+            // InternalPerspectiveDsl.g:7740:1: ( rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 )
+            // InternalPerspectiveDsl.g:7741:2: rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1
             {
             pushFollow(FOLLOW_48);
             rule__PerspectiveDataInterchange__Group__0__Impl();
@@ -26375,23 +26476,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7727:1: rule__PerspectiveDataInterchange__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7748:1: rule__PerspectiveDataInterchange__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDataInterchange__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7731:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7732:1: ( () )
+            // InternalPerspectiveDsl.g:7752:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7753:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7732:1: ( () )
-            // InternalPerspectiveDsl.g:7733:2: ()
+            // InternalPerspectiveDsl.g:7753:1: ( () )
+            // InternalPerspectiveDsl.g:7754:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getPerspectiveDataInterchangeAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7734:2: ()
-            // InternalPerspectiveDsl.g:7734:3: 
+            // InternalPerspectiveDsl.g:7755:2: ()
+            // InternalPerspectiveDsl.g:7755:3: 
             {
             }
 
@@ -26416,14 +26517,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__1"
-    // InternalPerspectiveDsl.g:7742:1: rule__PerspectiveDataInterchange__Group__1 : rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 ;
+    // InternalPerspectiveDsl.g:7763:1: rule__PerspectiveDataInterchange__Group__1 : rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 ;
     public final void rule__PerspectiveDataInterchange__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7746:1: ( rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 )
-            // InternalPerspectiveDsl.g:7747:2: rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2
+            // InternalPerspectiveDsl.g:7767:1: ( rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 )
+            // InternalPerspectiveDsl.g:7768:2: rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveDataInterchange__Group__1__Impl();
@@ -26454,17 +26555,17 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7754:1: rule__PerspectiveDataInterchange__Group__1__Impl : ( 'dataInterchange' ) ;
+    // InternalPerspectiveDsl.g:7775:1: rule__PerspectiveDataInterchange__Group__1__Impl : ( 'dataInterchange' ) ;
     public final void rule__PerspectiveDataInterchange__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7758:1: ( ( 'dataInterchange' ) )
-            // InternalPerspectiveDsl.g:7759:1: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:7779:1: ( ( 'dataInterchange' ) )
+            // InternalPerspectiveDsl.g:7780:1: ( 'dataInterchange' )
             {
-            // InternalPerspectiveDsl.g:7759:1: ( 'dataInterchange' )
-            // InternalPerspectiveDsl.g:7760:2: 'dataInterchange'
+            // InternalPerspectiveDsl.g:7780:1: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:7781:2: 'dataInterchange'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getDataInterchangeKeyword_1()); 
@@ -26495,14 +26596,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__2"
-    // InternalPerspectiveDsl.g:7769:1: rule__PerspectiveDataInterchange__Group__2 : rule__PerspectiveDataInterchange__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7790:1: rule__PerspectiveDataInterchange__Group__2 : rule__PerspectiveDataInterchange__Group__2__Impl ;
     public final void rule__PerspectiveDataInterchange__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7773:1: ( rule__PerspectiveDataInterchange__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7774:2: rule__PerspectiveDataInterchange__Group__2__Impl
+            // InternalPerspectiveDsl.g:7794:1: ( rule__PerspectiveDataInterchange__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7795:2: rule__PerspectiveDataInterchange__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDataInterchange__Group__2__Impl();
@@ -26528,23 +26629,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7780:1: rule__PerspectiveDataInterchange__Group__2__Impl : ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7801:1: rule__PerspectiveDataInterchange__Group__2__Impl : ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveDataInterchange__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7784:1: ( ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7785:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7805:1: ( ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7806:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7785:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7786:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7806:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7807:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7787:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:7787:3: rule__PerspectiveDataInterchange__RefAssignment_2
+            // InternalPerspectiveDsl.g:7808:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7808:3: rule__PerspectiveDataInterchange__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDataInterchange__RefAssignment_2();
@@ -26579,14 +26680,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__0"
-    // InternalPerspectiveDsl.g:7796:1: rule__PerspectiveTitle__Group__0 : rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 ;
+    // InternalPerspectiveDsl.g:7817:1: rule__PerspectiveTitle__Group__0 : rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 ;
     public final void rule__PerspectiveTitle__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7800:1: ( rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 )
-            // InternalPerspectiveDsl.g:7801:2: rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1
+            // InternalPerspectiveDsl.g:7821:1: ( rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 )
+            // InternalPerspectiveDsl.g:7822:2: rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1
             {
             pushFollow(FOLLOW_49);
             rule__PerspectiveTitle__Group__0__Impl();
@@ -26617,23 +26718,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7808:1: rule__PerspectiveTitle__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7829:1: rule__PerspectiveTitle__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTitle__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7812:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7813:1: ( () )
+            // InternalPerspectiveDsl.g:7833:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7834:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7813:1: ( () )
-            // InternalPerspectiveDsl.g:7814:2: ()
+            // InternalPerspectiveDsl.g:7834:1: ( () )
+            // InternalPerspectiveDsl.g:7835:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTitleAccess().getPerspectiveTitleAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7815:2: ()
-            // InternalPerspectiveDsl.g:7815:3: 
+            // InternalPerspectiveDsl.g:7836:2: ()
+            // InternalPerspectiveDsl.g:7836:3: 
             {
             }
 
@@ -26658,14 +26759,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__1"
-    // InternalPerspectiveDsl.g:7823:1: rule__PerspectiveTitle__Group__1 : rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 ;
+    // InternalPerspectiveDsl.g:7844:1: rule__PerspectiveTitle__Group__1 : rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 ;
     public final void rule__PerspectiveTitle__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7827:1: ( rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 )
-            // InternalPerspectiveDsl.g:7828:2: rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2
+            // InternalPerspectiveDsl.g:7848:1: ( rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 )
+            // InternalPerspectiveDsl.g:7849:2: rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveTitle__Group__1__Impl();
@@ -26696,17 +26797,17 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7835:1: rule__PerspectiveTitle__Group__1__Impl : ( 'title' ) ;
+    // InternalPerspectiveDsl.g:7856:1: rule__PerspectiveTitle__Group__1__Impl : ( 'title' ) ;
     public final void rule__PerspectiveTitle__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7839:1: ( ( 'title' ) )
-            // InternalPerspectiveDsl.g:7840:1: ( 'title' )
+            // InternalPerspectiveDsl.g:7860:1: ( ( 'title' ) )
+            // InternalPerspectiveDsl.g:7861:1: ( 'title' )
             {
-            // InternalPerspectiveDsl.g:7840:1: ( 'title' )
-            // InternalPerspectiveDsl.g:7841:2: 'title'
+            // InternalPerspectiveDsl.g:7861:1: ( 'title' )
+            // InternalPerspectiveDsl.g:7862:2: 'title'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTitleAccess().getTitleKeyword_1()); 
@@ -26737,14 +26838,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__2"
-    // InternalPerspectiveDsl.g:7850:1: rule__PerspectiveTitle__Group__2 : rule__PerspectiveTitle__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7871:1: rule__PerspectiveTitle__Group__2 : rule__PerspectiveTitle__Group__2__Impl ;
     public final void rule__PerspectiveTitle__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7854:1: ( rule__PerspectiveTitle__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7855:2: rule__PerspectiveTitle__Group__2__Impl
+            // InternalPerspectiveDsl.g:7875:1: ( rule__PerspectiveTitle__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7876:2: rule__PerspectiveTitle__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTitle__Group__2__Impl();
@@ -26770,23 +26871,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7861:1: rule__PerspectiveTitle__Group__2__Impl : ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7882:1: rule__PerspectiveTitle__Group__2__Impl : ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) ;
     public final void rule__PerspectiveTitle__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7865:1: ( ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7866:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7886:1: ( ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7887:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7866:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7867:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
+            // InternalPerspectiveDsl.g:7887:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7888:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTitleAccess().getHtmlNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7868:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
-            // InternalPerspectiveDsl.g:7868:3: rule__PerspectiveTitle__HtmlNameAssignment_2
+            // InternalPerspectiveDsl.g:7889:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
+            // InternalPerspectiveDsl.g:7889:3: rule__PerspectiveTitle__HtmlNameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTitle__HtmlNameAssignment_2();
@@ -26821,14 +26922,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__0"
-    // InternalPerspectiveDsl.g:7877:1: rule__PerspectiveDashboard__Group__0 : rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 ;
+    // InternalPerspectiveDsl.g:7898:1: rule__PerspectiveDashboard__Group__0 : rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 ;
     public final void rule__PerspectiveDashboard__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7881:1: ( rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 )
-            // InternalPerspectiveDsl.g:7882:2: rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1
+            // InternalPerspectiveDsl.g:7902:1: ( rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 )
+            // InternalPerspectiveDsl.g:7903:2: rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1
             {
             pushFollow(FOLLOW_50);
             rule__PerspectiveDashboard__Group__0__Impl();
@@ -26859,23 +26960,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7889:1: rule__PerspectiveDashboard__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7910:1: rule__PerspectiveDashboard__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDashboard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7893:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7894:1: ( () )
+            // InternalPerspectiveDsl.g:7914:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7915:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7894:1: ( () )
-            // InternalPerspectiveDsl.g:7895:2: ()
+            // InternalPerspectiveDsl.g:7915:1: ( () )
+            // InternalPerspectiveDsl.g:7916:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDashboardAccess().getPerspectiveDashboardAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7896:2: ()
-            // InternalPerspectiveDsl.g:7896:3: 
+            // InternalPerspectiveDsl.g:7917:2: ()
+            // InternalPerspectiveDsl.g:7917:3: 
             {
             }
 
@@ -26900,14 +27001,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__1"
-    // InternalPerspectiveDsl.g:7904:1: rule__PerspectiveDashboard__Group__1 : rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 ;
+    // InternalPerspectiveDsl.g:7925:1: rule__PerspectiveDashboard__Group__1 : rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 ;
     public final void rule__PerspectiveDashboard__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7908:1: ( rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 )
-            // InternalPerspectiveDsl.g:7909:2: rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2
+            // InternalPerspectiveDsl.g:7929:1: ( rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 )
+            // InternalPerspectiveDsl.g:7930:2: rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveDashboard__Group__1__Impl();
@@ -26938,17 +27039,17 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7916:1: rule__PerspectiveDashboard__Group__1__Impl : ( 'name' ) ;
+    // InternalPerspectiveDsl.g:7937:1: rule__PerspectiveDashboard__Group__1__Impl : ( 'name' ) ;
     public final void rule__PerspectiveDashboard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7920:1: ( ( 'name' ) )
-            // InternalPerspectiveDsl.g:7921:1: ( 'name' )
+            // InternalPerspectiveDsl.g:7941:1: ( ( 'name' ) )
+            // InternalPerspectiveDsl.g:7942:1: ( 'name' )
             {
-            // InternalPerspectiveDsl.g:7921:1: ( 'name' )
-            // InternalPerspectiveDsl.g:7922:2: 'name'
+            // InternalPerspectiveDsl.g:7942:1: ( 'name' )
+            // InternalPerspectiveDsl.g:7943:2: 'name'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDashboardAccess().getNameKeyword_1()); 
@@ -26979,14 +27080,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__2"
-    // InternalPerspectiveDsl.g:7931:1: rule__PerspectiveDashboard__Group__2 : rule__PerspectiveDashboard__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7952:1: rule__PerspectiveDashboard__Group__2 : rule__PerspectiveDashboard__Group__2__Impl ;
     public final void rule__PerspectiveDashboard__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7935:1: ( rule__PerspectiveDashboard__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7936:2: rule__PerspectiveDashboard__Group__2__Impl
+            // InternalPerspectiveDsl.g:7956:1: ( rule__PerspectiveDashboard__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7957:2: rule__PerspectiveDashboard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDashboard__Group__2__Impl();
@@ -27012,23 +27113,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7942:1: rule__PerspectiveDashboard__Group__2__Impl : ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7963:1: rule__PerspectiveDashboard__Group__2__Impl : ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) ;
     public final void rule__PerspectiveDashboard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7946:1: ( ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7947:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7967:1: ( ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7968:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7947:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7948:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:7968:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7969:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDashboardAccess().getNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7949:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
-            // InternalPerspectiveDsl.g:7949:3: rule__PerspectiveDashboard__NameAssignment_2
+            // InternalPerspectiveDsl.g:7970:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:7970:3: rule__PerspectiveDashboard__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDashboard__NameAssignment_2();
@@ -27063,14 +27164,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__0"
-    // InternalPerspectiveDsl.g:7958:1: rule__PerspectiveBrowser__Group__0 : rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 ;
+    // InternalPerspectiveDsl.g:7979:1: rule__PerspectiveBrowser__Group__0 : rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 ;
     public final void rule__PerspectiveBrowser__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7962:1: ( rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 )
-            // InternalPerspectiveDsl.g:7963:2: rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1
+            // InternalPerspectiveDsl.g:7983:1: ( rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 )
+            // InternalPerspectiveDsl.g:7984:2: rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1
             {
             pushFollow(FOLLOW_25);
             rule__PerspectiveBrowser__Group__0__Impl();
@@ -27101,23 +27202,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7970:1: rule__PerspectiveBrowser__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7991:1: rule__PerspectiveBrowser__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveBrowser__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7974:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7975:1: ( () )
+            // InternalPerspectiveDsl.g:7995:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7996:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7975:1: ( () )
-            // InternalPerspectiveDsl.g:7976:2: ()
+            // InternalPerspectiveDsl.g:7996:1: ( () )
+            // InternalPerspectiveDsl.g:7997:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBrowserAccess().getPerspectiveBrowserAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7977:2: ()
-            // InternalPerspectiveDsl.g:7977:3: 
+            // InternalPerspectiveDsl.g:7998:2: ()
+            // InternalPerspectiveDsl.g:7998:3: 
             {
             }
 
@@ -27142,14 +27243,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__1"
-    // InternalPerspectiveDsl.g:7985:1: rule__PerspectiveBrowser__Group__1 : rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 ;
+    // InternalPerspectiveDsl.g:8006:1: rule__PerspectiveBrowser__Group__1 : rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 ;
     public final void rule__PerspectiveBrowser__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7989:1: ( rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 )
-            // InternalPerspectiveDsl.g:7990:2: rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2
+            // InternalPerspectiveDsl.g:8010:1: ( rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 )
+            // InternalPerspectiveDsl.g:8011:2: rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2
             {
             pushFollow(FOLLOW_51);
             rule__PerspectiveBrowser__Group__1__Impl();
@@ -27180,17 +27281,17 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7997:1: rule__PerspectiveBrowser__Group__1__Impl : ( 'browser' ) ;
+    // InternalPerspectiveDsl.g:8018:1: rule__PerspectiveBrowser__Group__1__Impl : ( 'browser' ) ;
     public final void rule__PerspectiveBrowser__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8001:1: ( ( 'browser' ) )
-            // InternalPerspectiveDsl.g:8002:1: ( 'browser' )
+            // InternalPerspectiveDsl.g:8022:1: ( ( 'browser' ) )
+            // InternalPerspectiveDsl.g:8023:1: ( 'browser' )
             {
-            // InternalPerspectiveDsl.g:8002:1: ( 'browser' )
-            // InternalPerspectiveDsl.g:8003:2: 'browser'
+            // InternalPerspectiveDsl.g:8023:1: ( 'browser' )
+            // InternalPerspectiveDsl.g:8024:2: 'browser'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBrowserAccess().getBrowserKeyword_1()); 
@@ -27221,22 +27322,17 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__2"
-    // InternalPerspectiveDsl.g:8012:1: rule__PerspectiveBrowser__Group__2 : rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3 ;
+    // InternalPerspectiveDsl.g:8033:1: rule__PerspectiveBrowser__Group__2 : rule__PerspectiveBrowser__Group__2__Impl ;
     public final void rule__PerspectiveBrowser__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8016:1: ( rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3 )
-            // InternalPerspectiveDsl.g:8017:2: rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3
+            // InternalPerspectiveDsl.g:8037:1: ( rule__PerspectiveBrowser__Group__2__Impl )
+            // InternalPerspectiveDsl.g:8038:2: rule__PerspectiveBrowser__Group__2__Impl
             {
-            pushFollow(FOLLOW_15);
-            rule__PerspectiveBrowser__Group__2__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__PerspectiveBrowser__Group__3();
+            rule__PerspectiveBrowser__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -27259,24 +27355,34 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__2__Impl"
-    // InternalPerspectiveDsl.g:8024:1: rule__PerspectiveBrowser__Group__2__Impl : ( 'url' ) ;
+    // InternalPerspectiveDsl.g:8044:1: rule__PerspectiveBrowser__Group__2__Impl : ( ( rule__PerspectiveBrowser__Alternatives_2 ) ) ;
     public final void rule__PerspectiveBrowser__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8028:1: ( ( 'url' ) )
-            // InternalPerspectiveDsl.g:8029:1: ( 'url' )
+            // InternalPerspectiveDsl.g:8048:1: ( ( ( rule__PerspectiveBrowser__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:8049:1: ( ( rule__PerspectiveBrowser__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:8029:1: ( 'url' )
-            // InternalPerspectiveDsl.g:8030:2: 'url'
+            // InternalPerspectiveDsl.g:8049:1: ( ( rule__PerspectiveBrowser__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:8050:2: ( rule__PerspectiveBrowser__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2()); 
+               before(grammarAccess.getPerspectiveBrowserAccess().getAlternatives_2()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            // InternalPerspectiveDsl.g:8051:2: ( rule__PerspectiveBrowser__Alternatives_2 )
+            // InternalPerspectiveDsl.g:8051:3: rule__PerspectiveBrowser__Alternatives_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__PerspectiveBrowser__Alternatives_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2()); 
+               after(grammarAccess.getPerspectiveBrowserAccess().getAlternatives_2()); 
             }
 
             }
@@ -27299,18 +27405,23 @@
     // $ANTLR end "rule__PerspectiveBrowser__Group__2__Impl"
 
 
-    // $ANTLR start "rule__PerspectiveBrowser__Group__3"
-    // InternalPerspectiveDsl.g:8039:1: rule__PerspectiveBrowser__Group__3 : rule__PerspectiveBrowser__Group__3__Impl ;
-    public final void rule__PerspectiveBrowser__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__PerspectiveBrowser__Group_2_0__0"
+    // InternalPerspectiveDsl.g:8060:1: rule__PerspectiveBrowser__Group_2_0__0 : rule__PerspectiveBrowser__Group_2_0__0__Impl rule__PerspectiveBrowser__Group_2_0__1 ;
+    public final void rule__PerspectiveBrowser__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8043:1: ( rule__PerspectiveBrowser__Group__3__Impl )
-            // InternalPerspectiveDsl.g:8044:2: rule__PerspectiveBrowser__Group__3__Impl
+            // InternalPerspectiveDsl.g:8064:1: ( rule__PerspectiveBrowser__Group_2_0__0__Impl rule__PerspectiveBrowser__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:8065:2: rule__PerspectiveBrowser__Group_2_0__0__Impl rule__PerspectiveBrowser__Group_2_0__1
             {
+            pushFollow(FOLLOW_15);
+            rule__PerspectiveBrowser__Group_2_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__PerspectiveBrowser__Group__3__Impl();
+            rule__PerspectiveBrowser__Group_2_0__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -27329,38 +27440,28 @@
         }
         return ;
     }
-    // $ANTLR end "rule__PerspectiveBrowser__Group__3"
+    // $ANTLR end "rule__PerspectiveBrowser__Group_2_0__0"
 
 
-    // $ANTLR start "rule__PerspectiveBrowser__Group__3__Impl"
-    // InternalPerspectiveDsl.g:8050:1: rule__PerspectiveBrowser__Group__3__Impl : ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) ) ;
-    public final void rule__PerspectiveBrowser__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PerspectiveBrowser__Group_2_0__0__Impl"
+    // InternalPerspectiveDsl.g:8072:1: rule__PerspectiveBrowser__Group_2_0__0__Impl : ( 'url' ) ;
+    public final void rule__PerspectiveBrowser__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8054:1: ( ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:8055:1: ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) )
+            // InternalPerspectiveDsl.g:8076:1: ( ( 'url' ) )
+            // InternalPerspectiveDsl.g:8077:1: ( 'url' )
             {
-            // InternalPerspectiveDsl.g:8055:1: ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) )
-            // InternalPerspectiveDsl.g:8056:2: ( rule__PerspectiveBrowser__UrlAssignment_3 )
+            // InternalPerspectiveDsl.g:8077:1: ( 'url' )
+            // InternalPerspectiveDsl.g:8078:2: 'url'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_3()); 
+               before(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8057:2: ( rule__PerspectiveBrowser__UrlAssignment_3 )
-            // InternalPerspectiveDsl.g:8057:3: rule__PerspectiveBrowser__UrlAssignment_3
-            {
-            pushFollow(FOLLOW_2);
-            rule__PerspectiveBrowser__UrlAssignment_3();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
+            match(input,95,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_3()); 
+               after(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2_0_0()); 
             }
 
             }
@@ -27380,18 +27481,102 @@
         }
         return ;
     }
-    // $ANTLR end "rule__PerspectiveBrowser__Group__3__Impl"
+    // $ANTLR end "rule__PerspectiveBrowser__Group_2_0__0__Impl"
+
+
+    // $ANTLR start "rule__PerspectiveBrowser__Group_2_0__1"
+    // InternalPerspectiveDsl.g:8087:1: rule__PerspectiveBrowser__Group_2_0__1 : rule__PerspectiveBrowser__Group_2_0__1__Impl ;
+    public final void rule__PerspectiveBrowser__Group_2_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:8091:1: ( rule__PerspectiveBrowser__Group_2_0__1__Impl )
+            // InternalPerspectiveDsl.g:8092:2: rule__PerspectiveBrowser__Group_2_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PerspectiveBrowser__Group_2_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectiveBrowser__Group_2_0__1"
+
+
+    // $ANTLR start "rule__PerspectiveBrowser__Group_2_0__1__Impl"
+    // InternalPerspectiveDsl.g:8098:1: rule__PerspectiveBrowser__Group_2_0__1__Impl : ( ( rule__PerspectiveBrowser__UrlAssignment_2_0_1 ) ) ;
+    public final void rule__PerspectiveBrowser__Group_2_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:8102:1: ( ( ( rule__PerspectiveBrowser__UrlAssignment_2_0_1 ) ) )
+            // InternalPerspectiveDsl.g:8103:1: ( ( rule__PerspectiveBrowser__UrlAssignment_2_0_1 ) )
+            {
+            // InternalPerspectiveDsl.g:8103:1: ( ( rule__PerspectiveBrowser__UrlAssignment_2_0_1 ) )
+            // InternalPerspectiveDsl.g:8104:2: ( rule__PerspectiveBrowser__UrlAssignment_2_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_2_0_1()); 
+            }
+            // InternalPerspectiveDsl.g:8105:2: ( rule__PerspectiveBrowser__UrlAssignment_2_0_1 )
+            // InternalPerspectiveDsl.g:8105:3: rule__PerspectiveBrowser__UrlAssignment_2_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__PerspectiveBrowser__UrlAssignment_2_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_2_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectiveBrowser__Group_2_0__1__Impl"
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0"
-    // InternalPerspectiveDsl.g:8066:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    // InternalPerspectiveDsl.g:8114: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 {
-            // InternalPerspectiveDsl.g:8070:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
-            // InternalPerspectiveDsl.g:8071:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            // InternalPerspectiveDsl.g:8118:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalPerspectiveDsl.g:8119:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
             {
             pushFollow(FOLLOW_52);
             rule__XImportDeclaration__Group__0__Impl();
@@ -27422,23 +27607,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
-    // InternalPerspectiveDsl.g:8078:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8126:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8082:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8083:1: ( () )
+            // InternalPerspectiveDsl.g:8130:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8131:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8083:1: ( () )
-            // InternalPerspectiveDsl.g:8084:2: ()
+            // InternalPerspectiveDsl.g:8131:1: ( () )
+            // InternalPerspectiveDsl.g:8132:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:8085:2: ()
-            // InternalPerspectiveDsl.g:8085:3: 
+            // InternalPerspectiveDsl.g:8133:2: ()
+            // InternalPerspectiveDsl.g:8133:3: 
             {
             }
 
@@ -27463,14 +27648,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1"
-    // InternalPerspectiveDsl.g:8093:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    // InternalPerspectiveDsl.g:8141: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 {
-            // InternalPerspectiveDsl.g:8097:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
-            // InternalPerspectiveDsl.g:8098:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            // InternalPerspectiveDsl.g:8145:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalPerspectiveDsl.g:8146:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
             {
             pushFollow(FOLLOW_53);
             rule__XImportDeclaration__Group__1__Impl();
@@ -27501,17 +27686,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
-    // InternalPerspectiveDsl.g:8105:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    // InternalPerspectiveDsl.g:8153:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
     public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8109:1: ( ( 'import' ) )
-            // InternalPerspectiveDsl.g:8110:1: ( 'import' )
+            // InternalPerspectiveDsl.g:8157:1: ( ( 'import' ) )
+            // InternalPerspectiveDsl.g:8158:1: ( 'import' )
             {
-            // InternalPerspectiveDsl.g:8110:1: ( 'import' )
-            // InternalPerspectiveDsl.g:8111:2: 'import'
+            // InternalPerspectiveDsl.g:8158:1: ( 'import' )
+            // InternalPerspectiveDsl.g:8159:2: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
@@ -27542,14 +27727,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2"
-    // InternalPerspectiveDsl.g:8120:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    // InternalPerspectiveDsl.g:8168: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 {
-            // InternalPerspectiveDsl.g:8124:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
-            // InternalPerspectiveDsl.g:8125:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            // InternalPerspectiveDsl.g:8172:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalPerspectiveDsl.g:8173:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
             {
             pushFollow(FOLLOW_54);
             rule__XImportDeclaration__Group__2__Impl();
@@ -27580,23 +27765,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
-    // InternalPerspectiveDsl.g:8132:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    // InternalPerspectiveDsl.g:8180:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
     public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8136:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
-            // InternalPerspectiveDsl.g:8137:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:8184:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:8185:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:8137:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
-            // InternalPerspectiveDsl.g:8138:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:8185:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:8186:2: ( rule__XImportDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:8139:2: ( rule__XImportDeclaration__Alternatives_2 )
-            // InternalPerspectiveDsl.g:8139:3: rule__XImportDeclaration__Alternatives_2
+            // InternalPerspectiveDsl.g:8187:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:8187:3: rule__XImportDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2();
@@ -27631,14 +27816,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3"
-    // InternalPerspectiveDsl.g:8147:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:8195:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
     public final void rule__XImportDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8151:1: ( rule__XImportDeclaration__Group__3__Impl )
-            // InternalPerspectiveDsl.g:8152:2: rule__XImportDeclaration__Group__3__Impl
+            // InternalPerspectiveDsl.g:8199:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalPerspectiveDsl.g:8200:2: rule__XImportDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__3__Impl();
@@ -27664,31 +27849,31 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
-    // InternalPerspectiveDsl.g:8158:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    // InternalPerspectiveDsl.g:8206:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8162:1: ( ( ( ';' )? ) )
-            // InternalPerspectiveDsl.g:8163:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:8210:1: ( ( ( ';' )? ) )
+            // InternalPerspectiveDsl.g:8211:1: ( ( ';' )? )
             {
-            // InternalPerspectiveDsl.g:8163:1: ( ( ';' )? )
-            // InternalPerspectiveDsl.g:8164:2: ( ';' )?
+            // InternalPerspectiveDsl.g:8211:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:8212:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
             }
-            // InternalPerspectiveDsl.g:8165:2: ( ';' )?
-            int alt61=2;
-            int LA61_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:8213:2: ( ';' )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
 
-            if ( (LA61_0==96) ) {
-                alt61=1;
+            if ( (LA62_0==96) ) {
+                alt62=1;
             }
-            switch (alt61) {
+            switch (alt62) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8165:3: ';'
+                    // InternalPerspectiveDsl.g:8213:3: ';'
                     {
                     match(input,96,FOLLOW_2); if (state.failed) return ;
 
@@ -27722,14 +27907,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
-    // InternalPerspectiveDsl.g:8174:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    // InternalPerspectiveDsl.g:8222: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 {
-            // InternalPerspectiveDsl.g:8178:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
-            // InternalPerspectiveDsl.g:8179:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            // InternalPerspectiveDsl.g:8226:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:8227:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
             {
             pushFollow(FOLLOW_55);
             rule__XImportDeclaration__Group_2_0__0__Impl();
@@ -27760,23 +27945,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:8186:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:8234: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 {
-            // InternalPerspectiveDsl.g:8190:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
-            // InternalPerspectiveDsl.g:8191:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:8238:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalPerspectiveDsl.g:8239:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:8191:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
-            // InternalPerspectiveDsl.g:8192:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:8239:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:8240:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8193:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
-            // InternalPerspectiveDsl.g:8193:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            // InternalPerspectiveDsl.g:8241:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:8241:3: rule__XImportDeclaration__StaticAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__StaticAssignment_2_0_0();
@@ -27811,14 +27996,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
-    // InternalPerspectiveDsl.g:8201:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    // InternalPerspectiveDsl.g:8249: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 {
-            // InternalPerspectiveDsl.g:8205:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
-            // InternalPerspectiveDsl.g:8206:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            // InternalPerspectiveDsl.g:8253:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalPerspectiveDsl.g:8254:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
             {
             pushFollow(FOLLOW_55);
             rule__XImportDeclaration__Group_2_0__1__Impl();
@@ -27849,31 +28034,31 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
-    // InternalPerspectiveDsl.g:8213:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    // InternalPerspectiveDsl.g:8261: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 {
-            // InternalPerspectiveDsl.g:8217:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
-            // InternalPerspectiveDsl.g:8218:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalPerspectiveDsl.g:8265:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalPerspectiveDsl.g:8266:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
             {
-            // InternalPerspectiveDsl.g:8218:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
-            // InternalPerspectiveDsl.g:8219:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalPerspectiveDsl.g:8266:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalPerspectiveDsl.g:8267:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8220:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
-            int alt62=2;
-            int LA62_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:8268:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
 
-            if ( (LA62_0==48) ) {
-                alt62=1;
+            if ( (LA63_0==48) ) {
+                alt63=1;
             }
-            switch (alt62) {
+            switch (alt63) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8220:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    // InternalPerspectiveDsl.g:8268:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ExtensionAssignment_2_0_1();
@@ -27911,14 +28096,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
-    // InternalPerspectiveDsl.g:8228:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    // InternalPerspectiveDsl.g:8276: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 {
-            // InternalPerspectiveDsl.g:8232:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
-            // InternalPerspectiveDsl.g:8233:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            // InternalPerspectiveDsl.g:8280:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalPerspectiveDsl.g:8281:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
             {
             pushFollow(FOLLOW_56);
             rule__XImportDeclaration__Group_2_0__2__Impl();
@@ -27949,23 +28134,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
-    // InternalPerspectiveDsl.g:8240:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:8288: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 {
-            // InternalPerspectiveDsl.g:8244:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
-            // InternalPerspectiveDsl.g:8245:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalPerspectiveDsl.g:8292:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalPerspectiveDsl.g:8293:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:8245:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
-            // InternalPerspectiveDsl.g:8246:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalPerspectiveDsl.g:8293:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalPerspectiveDsl.g:8294:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
             }
-            // InternalPerspectiveDsl.g:8247:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
-            // InternalPerspectiveDsl.g:8247:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            // InternalPerspectiveDsl.g:8295:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalPerspectiveDsl.g:8295:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
@@ -28000,14 +28185,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
-    // InternalPerspectiveDsl.g:8255:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    // InternalPerspectiveDsl.g:8303: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 {
-            // InternalPerspectiveDsl.g:8259:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
-            // InternalPerspectiveDsl.g:8260:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            // InternalPerspectiveDsl.g:8307:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalPerspectiveDsl.g:8308:2: rule__XImportDeclaration__Group_2_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_0__3__Impl();
@@ -28033,23 +28218,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
-    // InternalPerspectiveDsl.g:8266:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:8314: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 {
-            // InternalPerspectiveDsl.g:8270:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
-            // InternalPerspectiveDsl.g:8271:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalPerspectiveDsl.g:8318:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalPerspectiveDsl.g:8319:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:8271:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
-            // InternalPerspectiveDsl.g:8272:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalPerspectiveDsl.g:8319:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalPerspectiveDsl.g:8320:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
             }
-            // InternalPerspectiveDsl.g:8273:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
-            // InternalPerspectiveDsl.g:8273:3: rule__XImportDeclaration__Alternatives_2_0_3
+            // InternalPerspectiveDsl.g:8321:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalPerspectiveDsl.g:8321:3: rule__XImportDeclaration__Alternatives_2_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2_0_3();
@@ -28084,14 +28269,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
-    // InternalPerspectiveDsl.g:8282:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    // InternalPerspectiveDsl.g:8330: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 {
-            // InternalPerspectiveDsl.g:8286:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
-            // InternalPerspectiveDsl.g:8287:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            // InternalPerspectiveDsl.g:8334:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalPerspectiveDsl.g:8335:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
             {
             pushFollow(FOLLOW_7);
             rule__XImportDeclaration__Group_2_3__0__Impl();
@@ -28122,23 +28307,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
-    // InternalPerspectiveDsl.g:8294:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:8342: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 {
-            // InternalPerspectiveDsl.g:8298:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
-            // InternalPerspectiveDsl.g:8299:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalPerspectiveDsl.g:8346:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalPerspectiveDsl.g:8347:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:8299:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
-            // InternalPerspectiveDsl.g:8300:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalPerspectiveDsl.g:8347:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalPerspectiveDsl.g:8348:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
             }
-            // InternalPerspectiveDsl.g:8301:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
-            // InternalPerspectiveDsl.g:8301:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            // InternalPerspectiveDsl.g:8349:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalPerspectiveDsl.g:8349:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__FqnImportAssignment_2_3_0();
@@ -28173,14 +28358,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
-    // InternalPerspectiveDsl.g:8309:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    // InternalPerspectiveDsl.g:8357: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 {
-            // InternalPerspectiveDsl.g:8313:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
-            // InternalPerspectiveDsl.g:8314:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            // InternalPerspectiveDsl.g:8361:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalPerspectiveDsl.g:8362:2: rule__XImportDeclaration__Group_2_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_3__1__Impl();
@@ -28206,23 +28391,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
-    // InternalPerspectiveDsl.g:8320:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:8368: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 {
-            // InternalPerspectiveDsl.g:8324:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
-            // InternalPerspectiveDsl.g:8325:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalPerspectiveDsl.g:8372:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalPerspectiveDsl.g:8373:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:8325:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
-            // InternalPerspectiveDsl.g:8326:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalPerspectiveDsl.g:8373:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalPerspectiveDsl.g:8374:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
             }
-            // InternalPerspectiveDsl.g:8327:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
-            // InternalPerspectiveDsl.g:8327:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            // InternalPerspectiveDsl.g:8375:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalPerspectiveDsl.g:8375:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
@@ -28257,14 +28442,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0"
-    // InternalPerspectiveDsl.g:8336:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    // InternalPerspectiveDsl.g:8384: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 {
-            // InternalPerspectiveDsl.g:8340:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
-            // InternalPerspectiveDsl.g:8341:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            // InternalPerspectiveDsl.g:8388:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalPerspectiveDsl.g:8389:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
             {
             pushFollow(FOLLOW_57);
             rule__XAnnotation__Group__0__Impl();
@@ -28295,23 +28480,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0__Impl"
-    // InternalPerspectiveDsl.g:8348:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8396:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
     public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8352:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8353:1: ( () )
+            // InternalPerspectiveDsl.g:8400:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8401:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8353:1: ( () )
-            // InternalPerspectiveDsl.g:8354:2: ()
+            // InternalPerspectiveDsl.g:8401:1: ( () )
+            // InternalPerspectiveDsl.g:8402:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:8355:2: ()
-            // InternalPerspectiveDsl.g:8355:3: 
+            // InternalPerspectiveDsl.g:8403:2: ()
+            // InternalPerspectiveDsl.g:8403:3: 
             {
             }
 
@@ -28336,14 +28521,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1"
-    // InternalPerspectiveDsl.g:8363:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    // InternalPerspectiveDsl.g:8411: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 {
-            // InternalPerspectiveDsl.g:8367:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
-            // InternalPerspectiveDsl.g:8368:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            // InternalPerspectiveDsl.g:8415:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalPerspectiveDsl.g:8416:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group__1__Impl();
@@ -28374,17 +28559,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1__Impl"
-    // InternalPerspectiveDsl.g:8375:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    // InternalPerspectiveDsl.g:8423:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
     public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8379:1: ( ( '@' ) )
-            // InternalPerspectiveDsl.g:8380:1: ( '@' )
+            // InternalPerspectiveDsl.g:8427:1: ( ( '@' ) )
+            // InternalPerspectiveDsl.g:8428:1: ( '@' )
             {
-            // InternalPerspectiveDsl.g:8380:1: ( '@' )
-            // InternalPerspectiveDsl.g:8381:2: '@'
+            // InternalPerspectiveDsl.g:8428:1: ( '@' )
+            // InternalPerspectiveDsl.g:8429:2: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
@@ -28415,14 +28600,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2"
-    // InternalPerspectiveDsl.g:8390:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    // InternalPerspectiveDsl.g:8438: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 {
-            // InternalPerspectiveDsl.g:8394:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
-            // InternalPerspectiveDsl.g:8395:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            // InternalPerspectiveDsl.g:8442:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalPerspectiveDsl.g:8443:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
             {
             pushFollow(FOLLOW_58);
             rule__XAnnotation__Group__2__Impl();
@@ -28453,23 +28638,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2__Impl"
-    // InternalPerspectiveDsl.g:8402:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:8450:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
     public final void rule__XAnnotation__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8406:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:8407:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:8454:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:8455:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:8407:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
-            // InternalPerspectiveDsl.g:8408:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:8455:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:8456:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:8409:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
-            // InternalPerspectiveDsl.g:8409:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            // InternalPerspectiveDsl.g:8457:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:8457:3: rule__XAnnotation__AnnotationTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__AnnotationTypeAssignment_2();
@@ -28504,14 +28689,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3"
-    // InternalPerspectiveDsl.g:8417:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:8465:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
     public final void rule__XAnnotation__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8421:1: ( rule__XAnnotation__Group__3__Impl )
-            // InternalPerspectiveDsl.g:8422:2: rule__XAnnotation__Group__3__Impl
+            // InternalPerspectiveDsl.g:8469:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalPerspectiveDsl.g:8470:2: rule__XAnnotation__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__3__Impl();
@@ -28537,31 +28722,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3__Impl"
-    // InternalPerspectiveDsl.g:8428:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:8476: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 {
-            // InternalPerspectiveDsl.g:8432:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:8433:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:8480:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:8481:1: ( ( rule__XAnnotation__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:8433:1: ( ( rule__XAnnotation__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:8434:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalPerspectiveDsl.g:8481:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:8482:2: ( rule__XAnnotation__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:8435:2: ( rule__XAnnotation__Group_3__0 )?
-            int alt63=2;
-            int LA63_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:8483:2: ( rule__XAnnotation__Group_3__0 )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
 
-            if ( (LA63_0==98) ) {
-                alt63=1;
+            if ( (LA64_0==98) ) {
+                alt64=1;
             }
-            switch (alt63) {
+            switch (alt64) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8435:3: rule__XAnnotation__Group_3__0
+                    // InternalPerspectiveDsl.g:8483:3: rule__XAnnotation__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3__0();
@@ -28599,14 +28784,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0"
-    // InternalPerspectiveDsl.g:8444:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    // InternalPerspectiveDsl.g:8492: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 {
-            // InternalPerspectiveDsl.g:8448:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
-            // InternalPerspectiveDsl.g:8449:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            // InternalPerspectiveDsl.g:8496:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalPerspectiveDsl.g:8497:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
             {
             pushFollow(FOLLOW_59);
             rule__XAnnotation__Group_3__0__Impl();
@@ -28637,23 +28822,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:8456:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:8504:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
     public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8460:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:8461:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:8508:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:8509:1: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:8461:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:8462:2: ( '(' )
+            // InternalPerspectiveDsl.g:8509:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:8510:2: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
             }
-            // InternalPerspectiveDsl.g:8463:2: ( '(' )
-            // InternalPerspectiveDsl.g:8463:3: '('
+            // InternalPerspectiveDsl.g:8511:2: ( '(' )
+            // InternalPerspectiveDsl.g:8511:3: '('
             {
             match(input,98,FOLLOW_2); if (state.failed) return ;
 
@@ -28684,14 +28869,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1"
-    // InternalPerspectiveDsl.g:8471:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    // InternalPerspectiveDsl.g:8519: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 {
-            // InternalPerspectiveDsl.g:8475:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
-            // InternalPerspectiveDsl.g:8476:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            // InternalPerspectiveDsl.g:8523:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalPerspectiveDsl.g:8524:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
             {
             pushFollow(FOLLOW_59);
             rule__XAnnotation__Group_3__1__Impl();
@@ -28722,31 +28907,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:8483:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    // InternalPerspectiveDsl.g:8531: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 {
-            // InternalPerspectiveDsl.g:8487:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
-            // InternalPerspectiveDsl.g:8488:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:8535:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalPerspectiveDsl.g:8536:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
             {
-            // InternalPerspectiveDsl.g:8488:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
-            // InternalPerspectiveDsl.g:8489:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:8536:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:8537:2: ( rule__XAnnotation__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
             }
-            // InternalPerspectiveDsl.g:8490:2: ( rule__XAnnotation__Alternatives_3_1 )?
-            int alt64=2;
-            int LA64_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:8538:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            int alt65=2;
+            int LA65_0 = input.LA(1);
 
-            if ( ((LA64_0>=RULE_ID && LA64_0<=RULE_DECIMAL)||LA64_0==27||(LA64_0>=34 && LA64_0<=35)||LA64_0==40||(LA64_0>=45 && LA64_0<=50)||LA64_0==54||(LA64_0>=97 && LA64_0<=98)||(LA64_0>=102 && LA64_0<=103)||LA64_0==106||LA64_0==108||(LA64_0>=112 && LA64_0<=120)||LA64_0==122||LA64_0==133) ) {
-                alt64=1;
+            if ( ((LA65_0>=RULE_ID && LA65_0<=RULE_DECIMAL)||LA65_0==27||(LA65_0>=34 && LA65_0<=35)||LA65_0==40||(LA65_0>=45 && LA65_0<=50)||LA65_0==54||(LA65_0>=97 && LA65_0<=98)||(LA65_0>=102 && LA65_0<=103)||LA65_0==106||LA65_0==108||(LA65_0>=112 && LA65_0<=120)||LA65_0==122||LA65_0==134) ) {
+                alt65=1;
             }
-            switch (alt64) {
+            switch (alt65) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8490:3: rule__XAnnotation__Alternatives_3_1
+                    // InternalPerspectiveDsl.g:8538:3: rule__XAnnotation__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Alternatives_3_1();
@@ -28784,14 +28969,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2"
-    // InternalPerspectiveDsl.g:8498:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    // InternalPerspectiveDsl.g:8546: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 {
-            // InternalPerspectiveDsl.g:8502:1: ( rule__XAnnotation__Group_3__2__Impl )
-            // InternalPerspectiveDsl.g:8503:2: rule__XAnnotation__Group_3__2__Impl
+            // InternalPerspectiveDsl.g:8550:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalPerspectiveDsl.g:8551:2: rule__XAnnotation__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3__2__Impl();
@@ -28817,17 +29002,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:8509:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:8557:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8513:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:8514:1: ( ')' )
+            // InternalPerspectiveDsl.g:8561:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:8562:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:8514:1: ( ')' )
-            // InternalPerspectiveDsl.g:8515:2: ')'
+            // InternalPerspectiveDsl.g:8562:1: ( ')' )
+            // InternalPerspectiveDsl.g:8563:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
@@ -28858,14 +29043,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
-    // InternalPerspectiveDsl.g:8525:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
+    // InternalPerspectiveDsl.g:8573: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 {
-            // InternalPerspectiveDsl.g:8529:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
-            // InternalPerspectiveDsl.g:8530:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            // InternalPerspectiveDsl.g:8577:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalPerspectiveDsl.g:8578:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotation__Group_3_1_0__0__Impl();
@@ -28896,23 +29081,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:8537:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:8585: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 {
-            // InternalPerspectiveDsl.g:8541:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
-            // InternalPerspectiveDsl.g:8542:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalPerspectiveDsl.g:8589:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalPerspectiveDsl.g:8590:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:8542:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
-            // InternalPerspectiveDsl.g:8543:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalPerspectiveDsl.g:8590:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalPerspectiveDsl.g:8591:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8544:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
-            // InternalPerspectiveDsl.g:8544:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            // InternalPerspectiveDsl.g:8592:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalPerspectiveDsl.g:8592:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
@@ -28947,14 +29132,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
-    // InternalPerspectiveDsl.g:8552:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:8600: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 {
-            // InternalPerspectiveDsl.g:8556:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:8557:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            // InternalPerspectiveDsl.g:8604:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:8605:2: rule__XAnnotation__Group_3_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0__1__Impl();
@@ -28980,35 +29165,35 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:8563:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:8611: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 {
-            // InternalPerspectiveDsl.g:8567:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
-            // InternalPerspectiveDsl.g:8568:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalPerspectiveDsl.g:8615:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalPerspectiveDsl.g:8616:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:8568:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
-            // InternalPerspectiveDsl.g:8569:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalPerspectiveDsl.g:8616:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalPerspectiveDsl.g:8617:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8570:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
-            loop65:
+            // InternalPerspectiveDsl.g:8618:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            loop66:
             do {
-                int alt65=2;
-                int LA65_0 = input.LA(1);
+                int alt66=2;
+                int LA66_0 = input.LA(1);
 
-                if ( (LA65_0==100) ) {
-                    alt65=1;
+                if ( (LA66_0==100) ) {
+                    alt66=1;
                 }
 
 
-                switch (alt65) {
+                switch (alt66) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8570:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    // InternalPerspectiveDsl.g:8618:3: rule__XAnnotation__Group_3_1_0_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotation__Group_3_1_0_1__0();
@@ -29020,7 +29205,7 @@
             	    break;
 
             	default :
-            	    break loop65;
+            	    break loop66;
                 }
             } while (true);
 
@@ -29049,14 +29234,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
-    // InternalPerspectiveDsl.g:8579: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 ;
+    // InternalPerspectiveDsl.g:8627: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 {
-            // InternalPerspectiveDsl.g:8583:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
-            // InternalPerspectiveDsl.g:8584:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            // InternalPerspectiveDsl.g:8631:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalPerspectiveDsl.g:8632:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group_3_1_0_1__0__Impl();
@@ -29087,17 +29272,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:8591:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:8639: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 {
-            // InternalPerspectiveDsl.g:8595:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:8596:1: ( ',' )
+            // InternalPerspectiveDsl.g:8643:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:8644:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:8596:1: ( ',' )
-            // InternalPerspectiveDsl.g:8597:2: ','
+            // InternalPerspectiveDsl.g:8644:1: ( ',' )
+            // InternalPerspectiveDsl.g:8645:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
@@ -29128,14 +29313,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
-    // InternalPerspectiveDsl.g:8606:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8654: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 {
-            // InternalPerspectiveDsl.g:8610:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:8611:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            // InternalPerspectiveDsl.g:8658:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:8659:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0_1__1__Impl();
@@ -29161,23 +29346,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:8617:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:8665: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 {
-            // InternalPerspectiveDsl.g:8621:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
-            // InternalPerspectiveDsl.g:8622:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalPerspectiveDsl.g:8669:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:8670:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:8622:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
-            // InternalPerspectiveDsl.g:8623:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalPerspectiveDsl.g:8670:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalPerspectiveDsl.g:8671:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8624:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
-            // InternalPerspectiveDsl.g:8624:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            // InternalPerspectiveDsl.g:8672:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalPerspectiveDsl.g:8672:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
@@ -29212,14 +29397,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
-    // InternalPerspectiveDsl.g:8633:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    // InternalPerspectiveDsl.g:8681: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 {
-            // InternalPerspectiveDsl.g:8637:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
-            // InternalPerspectiveDsl.g:8638:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            // InternalPerspectiveDsl.g:8685:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalPerspectiveDsl.g:8686:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValuePair__Group__0__Impl();
@@ -29250,23 +29435,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
-    // InternalPerspectiveDsl.g:8645:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8693: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 {
-            // InternalPerspectiveDsl.g:8649:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8650:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:8697:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8698:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8650:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:8651:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalPerspectiveDsl.g:8698:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:8699:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:8652:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
-            // InternalPerspectiveDsl.g:8652:3: rule__XAnnotationElementValuePair__Group_0__0
+            // InternalPerspectiveDsl.g:8700:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalPerspectiveDsl.g:8700:3: rule__XAnnotationElementValuePair__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0();
@@ -29301,14 +29486,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
-    // InternalPerspectiveDsl.g:8660:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:8708:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8664:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
-            // InternalPerspectiveDsl.g:8665:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            // InternalPerspectiveDsl.g:8712:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalPerspectiveDsl.g:8713:2: rule__XAnnotationElementValuePair__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__1__Impl();
@@ -29334,23 +29519,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
-    // InternalPerspectiveDsl.g:8671:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:8719:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8675:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:8676:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:8723:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:8724:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:8676:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
-            // InternalPerspectiveDsl.g:8677:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:8724:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:8725:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:8678:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
-            // InternalPerspectiveDsl.g:8678:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            // InternalPerspectiveDsl.g:8726:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:8726:3: rule__XAnnotationElementValuePair__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ValueAssignment_1();
@@ -29385,14 +29570,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
-    // InternalPerspectiveDsl.g:8687:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:8735: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 {
-            // InternalPerspectiveDsl.g:8691:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:8692:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:8739:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:8740:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0__Impl();
@@ -29418,23 +29603,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:8698:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8746: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 {
-            // InternalPerspectiveDsl.g:8702:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8703:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8750:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8751:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8703:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8704:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8751:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8752:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8705:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:8705:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            // InternalPerspectiveDsl.g:8753:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8753:3: rule__XAnnotationElementValuePair__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__0();
@@ -29469,14 +29654,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
-    // InternalPerspectiveDsl.g:8714:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:8762: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 {
-            // InternalPerspectiveDsl.g:8718:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:8719:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            // InternalPerspectiveDsl.g:8766:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:8767:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
             {
             pushFollow(FOLLOW_63);
             rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
@@ -29507,23 +29692,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8726:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:8774: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 {
-            // InternalPerspectiveDsl.g:8730:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:8731:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalPerspectiveDsl.g:8778:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:8779:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:8731:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
-            // InternalPerspectiveDsl.g:8732:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalPerspectiveDsl.g:8779:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalPerspectiveDsl.g:8780:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8733:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
-            // InternalPerspectiveDsl.g:8733:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            // InternalPerspectiveDsl.g:8781:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalPerspectiveDsl.g:8781:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
@@ -29558,14 +29743,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
-    // InternalPerspectiveDsl.g:8741:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:8789: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 {
-            // InternalPerspectiveDsl.g:8745:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:8746:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            // InternalPerspectiveDsl.g:8793:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:8794:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
@@ -29591,17 +29776,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:8752:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:8800:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8756:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:8757:1: ( '=' )
+            // InternalPerspectiveDsl.g:8804:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:8805:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:8757:1: ( '=' )
-            // InternalPerspectiveDsl.g:8758:2: '='
+            // InternalPerspectiveDsl.g:8805:1: ( '=' )
+            // InternalPerspectiveDsl.g:8806:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
@@ -29632,14 +29817,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
-    // InternalPerspectiveDsl.g:8768:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    // InternalPerspectiveDsl.g:8816: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 {
-            // InternalPerspectiveDsl.g:8772:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
-            // InternalPerspectiveDsl.g:8773:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            // InternalPerspectiveDsl.g:8820:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalPerspectiveDsl.g:8821:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
@@ -29670,23 +29855,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:8780:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8828: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 {
-            // InternalPerspectiveDsl.g:8784:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8785:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8832:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8833:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8785:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8786:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8833:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8834:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8787:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:8787:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            // InternalPerspectiveDsl.g:8835:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8835:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
@@ -29721,14 +29906,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
-    // InternalPerspectiveDsl.g:8795:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    // InternalPerspectiveDsl.g:8843: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 {
-            // InternalPerspectiveDsl.g:8799:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
-            // InternalPerspectiveDsl.g:8800:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            // InternalPerspectiveDsl.g:8847:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalPerspectiveDsl.g:8848:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
@@ -29759,31 +29944,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:8807:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:8855: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 {
-            // InternalPerspectiveDsl.g:8811:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:8812:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:8859:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:8860:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:8812:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:8813:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:8860:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:8861:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8814:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
-            int alt66=2;
-            int LA66_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:8862:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
 
-            if ( ((LA66_0>=RULE_ID && LA66_0<=RULE_DECIMAL)||LA66_0==27||(LA66_0>=34 && LA66_0<=35)||LA66_0==40||(LA66_0>=45 && LA66_0<=50)||LA66_0==54||(LA66_0>=97 && LA66_0<=98)||(LA66_0>=102 && LA66_0<=103)||LA66_0==106||LA66_0==108||(LA66_0>=112 && LA66_0<=120)||LA66_0==122||LA66_0==133) ) {
-                alt66=1;
+            if ( ((LA67_0>=RULE_ID && LA67_0<=RULE_DECIMAL)||LA67_0==27||(LA67_0>=34 && LA67_0<=35)||LA67_0==40||(LA67_0>=45 && LA67_0<=50)||LA67_0==54||(LA67_0>=97 && LA67_0<=98)||(LA67_0>=102 && LA67_0<=103)||LA67_0==106||LA67_0==108||(LA67_0>=112 && LA67_0<=120)||LA67_0==122||LA67_0==134) ) {
+                alt67=1;
             }
-            switch (alt66) {
+            switch (alt67) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8814:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    // InternalPerspectiveDsl.g:8862:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
@@ -29821,14 +30006,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
-    // InternalPerspectiveDsl.g:8822:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:8870: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 {
-            // InternalPerspectiveDsl.g:8826:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:8827:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:8874:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:8875:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
@@ -29854,17 +30039,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:8833:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:8881:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8837:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:8838:1: ( ']' )
+            // InternalPerspectiveDsl.g:8885:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:8886:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:8838:1: ( ']' )
-            // InternalPerspectiveDsl.g:8839:2: ']'
+            // InternalPerspectiveDsl.g:8886:1: ( ']' )
+            // InternalPerspectiveDsl.g:8887:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
@@ -29895,14 +30080,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
-    // InternalPerspectiveDsl.g:8849:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:8897: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 {
-            // InternalPerspectiveDsl.g:8853:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:8854:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            // InternalPerspectiveDsl.g:8901:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:8902:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
@@ -29928,23 +30113,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8860:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8908: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 {
-            // InternalPerspectiveDsl.g:8864:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8865:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8912:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8913:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8865:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8866:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8913:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8914:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8867:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
-            // InternalPerspectiveDsl.g:8867:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            // InternalPerspectiveDsl.g:8915:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8915:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
@@ -29979,14 +30164,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
-    // InternalPerspectiveDsl.g:8876:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
+    // InternalPerspectiveDsl.g:8924: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 {
-            // InternalPerspectiveDsl.g:8880:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
-            // InternalPerspectiveDsl.g:8881:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            // InternalPerspectiveDsl.g:8928:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalPerspectiveDsl.g:8929:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
             {
             pushFollow(FOLLOW_65);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
@@ -30017,23 +30202,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8888:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8936: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 {
-            // InternalPerspectiveDsl.g:8892:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8893:1: ( () )
+            // InternalPerspectiveDsl.g:8940:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8941:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8893:1: ( () )
-            // InternalPerspectiveDsl.g:8894:2: ()
+            // InternalPerspectiveDsl.g:8941:1: ( () )
+            // InternalPerspectiveDsl.g:8942:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8895:2: ()
-            // InternalPerspectiveDsl.g:8895:3: 
+            // InternalPerspectiveDsl.g:8943:2: ()
+            // InternalPerspectiveDsl.g:8943:3: 
             {
             }
 
@@ -30058,14 +30243,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
-    // InternalPerspectiveDsl.g:8903:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
+    // InternalPerspectiveDsl.g:8951: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 {
-            // InternalPerspectiveDsl.g:8907:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
-            // InternalPerspectiveDsl.g:8908:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            // InternalPerspectiveDsl.g:8955:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalPerspectiveDsl.g:8956:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
             {
             pushFollow(FOLLOW_66);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
@@ -30096,17 +30281,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:8915:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:8963: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 {
-            // InternalPerspectiveDsl.g:8919:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:8920:1: ( '#' )
+            // InternalPerspectiveDsl.g:8967:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:8968:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:8920:1: ( '#' )
-            // InternalPerspectiveDsl.g:8921:2: '#'
+            // InternalPerspectiveDsl.g:8968:1: ( '#' )
+            // InternalPerspectiveDsl.g:8969:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
@@ -30137,14 +30322,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
-    // InternalPerspectiveDsl.g:8930:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:8978: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 {
-            // InternalPerspectiveDsl.g:8934:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:8935:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:8982:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:8983:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
@@ -30170,17 +30355,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:8941:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:8989: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 {
-            // InternalPerspectiveDsl.g:8945:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:8946:1: ( '[' )
+            // InternalPerspectiveDsl.g:8993:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:8994:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:8946:1: ( '[' )
-            // InternalPerspectiveDsl.g:8947:2: '['
+            // InternalPerspectiveDsl.g:8994:1: ( '[' )
+            // InternalPerspectiveDsl.g:8995:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
@@ -30211,14 +30396,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
-    // InternalPerspectiveDsl.g:8957:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:9005: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 {
-            // InternalPerspectiveDsl.g:8961:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:8962:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            // InternalPerspectiveDsl.g:9009:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:9010:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
@@ -30249,23 +30434,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:8969:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:9017: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 {
-            // InternalPerspectiveDsl.g:8973:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:8974:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:9021:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:9022:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:8974:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:8975:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:9022:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:9023:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:8976:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:8976:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            // InternalPerspectiveDsl.g:9024:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:9024:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
@@ -30300,14 +30485,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
-    // InternalPerspectiveDsl.g:8984:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9032: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 {
-            // InternalPerspectiveDsl.g:8988:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:8989:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:9036:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:9037:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
@@ -30333,35 +30518,35 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:8995:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:9043: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 {
-            // InternalPerspectiveDsl.g:8999:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9000:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9047:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9048:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9000:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:9001:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:9048:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9049:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9002:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
-            loop67:
+            // InternalPerspectiveDsl.g:9050:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            loop68:
             do {
-                int alt67=2;
-                int LA67_0 = input.LA(1);
+                int alt68=2;
+                int LA68_0 = input.LA(1);
 
-                if ( (LA67_0==100) ) {
-                    alt67=1;
+                if ( (LA68_0==100) ) {
+                    alt68=1;
                 }
 
 
-                switch (alt67) {
+                switch (alt68) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9002:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:9050:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
@@ -30373,7 +30558,7 @@
             	    break;
 
             	default :
-            	    break loop67;
+            	    break loop68;
                 }
             } while (true);
 
@@ -30402,14 +30587,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:9011:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
+    // InternalPerspectiveDsl.g:9059: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 {
-            // InternalPerspectiveDsl.g:9015:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:9016:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:9063:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:9064:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
@@ -30440,17 +30625,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9023:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:9071: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 {
-            // InternalPerspectiveDsl.g:9027:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:9028:1: ( ',' )
+            // InternalPerspectiveDsl.g:9075:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:9076:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:9028:1: ( ',' )
-            // InternalPerspectiveDsl.g:9029:2: ','
+            // InternalPerspectiveDsl.g:9076:1: ( ',' )
+            // InternalPerspectiveDsl.g:9077:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
@@ -30481,14 +30666,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:9038:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9086: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 {
-            // InternalPerspectiveDsl.g:9042:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9043:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9090:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9091:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
@@ -30514,23 +30699,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9049:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9097: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 {
-            // InternalPerspectiveDsl.g:9053:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9054:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9101:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9102:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9054:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9055:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9102:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9103:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9056:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:9056:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:9104:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9104:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
@@ -30565,14 +30750,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
-    // InternalPerspectiveDsl.g:9065:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    // InternalPerspectiveDsl.g:9113: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 {
-            // InternalPerspectiveDsl.g:9069:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
-            // InternalPerspectiveDsl.g:9070:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            // InternalPerspectiveDsl.g:9117:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalPerspectiveDsl.g:9118:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
@@ -30603,17 +30788,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:9077:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:9125:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9081:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:9082:1: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:9129:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:9130:1: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:9082:1: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:9083:2: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:9130:1: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:9131:2: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
@@ -30648,14 +30833,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
-    // InternalPerspectiveDsl.g:9092:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9140: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 {
-            // InternalPerspectiveDsl.g:9096:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:9097:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:9144:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:9145:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
@@ -30681,31 +30866,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:9103:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:9151: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 {
-            // InternalPerspectiveDsl.g:9107:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:9108:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9155:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:9156:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:9108:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:9109:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:9156:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9157:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9110:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
-            int alt68=2;
-            int LA68_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:9158:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            int alt69=2;
+            int LA69_0 = input.LA(1);
 
-            if ( (LA68_0==100) ) {
-                alt68=1;
+            if ( (LA69_0==100) ) {
+                alt69=1;
             }
-            switch (alt68) {
+            switch (alt69) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9110:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    // InternalPerspectiveDsl.g:9158:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
@@ -30743,14 +30928,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
-    // InternalPerspectiveDsl.g:9119:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:9167: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 {
-            // InternalPerspectiveDsl.g:9123:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:9124:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            // InternalPerspectiveDsl.g:9171:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:9172:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
@@ -30781,23 +30966,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9131:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9179:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9135:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9136:1: ( () )
+            // InternalPerspectiveDsl.g:9183:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9184:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9136:1: ( () )
-            // InternalPerspectiveDsl.g:9137:2: ()
+            // InternalPerspectiveDsl.g:9184:1: ( () )
+            // InternalPerspectiveDsl.g:9185:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9138:2: ()
-            // InternalPerspectiveDsl.g:9138:3: 
+            // InternalPerspectiveDsl.g:9186:2: ()
+            // InternalPerspectiveDsl.g:9186:3: 
             {
             }
 
@@ -30822,14 +31007,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
-    // InternalPerspectiveDsl.g:9146:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9194: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 {
-            // InternalPerspectiveDsl.g:9150:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9151:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9198:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9199:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
@@ -30855,26 +31040,26 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9157:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    // InternalPerspectiveDsl.g:9205: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 {
-            // InternalPerspectiveDsl.g:9161:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
-            // InternalPerspectiveDsl.g:9162:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9209:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalPerspectiveDsl.g:9210:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
             {
-            // InternalPerspectiveDsl.g:9162:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9163:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9210:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9211:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9163:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
-            // InternalPerspectiveDsl.g:9164:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalPerspectiveDsl.g:9211:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalPerspectiveDsl.g:9212:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9165:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
-            // InternalPerspectiveDsl.g:9165:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            // InternalPerspectiveDsl.g:9213:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalPerspectiveDsl.g:9213:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             {
             pushFollow(FOLLOW_61);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
@@ -30890,26 +31075,26 @@
 
             }
 
-            // InternalPerspectiveDsl.g:9168:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:9169:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:9216:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9217:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9170:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
-            loop69:
+            // InternalPerspectiveDsl.g:9218:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            loop70:
             do {
-                int alt69=2;
-                int LA69_0 = input.LA(1);
+                int alt70=2;
+                int LA70_0 = input.LA(1);
 
-                if ( (LA69_0==100) ) {
-                    alt69=1;
+                if ( (LA70_0==100) ) {
+                    alt70=1;
                 }
 
 
-                switch (alt69) {
+                switch (alt70) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9170:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    // InternalPerspectiveDsl.g:9218:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
@@ -30921,7 +31106,7 @@
             	    break;
 
             	default :
-            	    break loop69;
+            	    break loop70;
                 }
             } while (true);
 
@@ -30953,14 +31138,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
-    // InternalPerspectiveDsl.g:9180:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
+    // InternalPerspectiveDsl.g:9228: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 {
-            // InternalPerspectiveDsl.g:9184:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
-            // InternalPerspectiveDsl.g:9185:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            // InternalPerspectiveDsl.g:9232:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalPerspectiveDsl.g:9233:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
@@ -30991,17 +31176,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9192:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:9240: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 {
-            // InternalPerspectiveDsl.g:9196:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:9197:1: ( ',' )
+            // InternalPerspectiveDsl.g:9244:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:9245:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:9197:1: ( ',' )
-            // InternalPerspectiveDsl.g:9198:2: ','
+            // InternalPerspectiveDsl.g:9245:1: ( ',' )
+            // InternalPerspectiveDsl.g:9246:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
@@ -31032,14 +31217,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
-    // InternalPerspectiveDsl.g:9207:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9255: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 {
-            // InternalPerspectiveDsl.g:9211:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9212:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9259:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9260:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
@@ -31065,23 +31250,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9218:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9266: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 {
-            // InternalPerspectiveDsl.g:9222:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9223:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9270:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9271:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9223:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9224:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:9271:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9272:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9225:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
-            // InternalPerspectiveDsl.g:9225:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            // InternalPerspectiveDsl.g:9273:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:9273:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
@@ -31116,14 +31301,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
-    // InternalPerspectiveDsl.g:9234:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    // InternalPerspectiveDsl.g:9282: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 {
-            // InternalPerspectiveDsl.g:9238:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
-            // InternalPerspectiveDsl.g:9239:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            // InternalPerspectiveDsl.g:9286:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalPerspectiveDsl.g:9287:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValue__Group_0__0__Impl();
@@ -31154,23 +31339,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:9246:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9294: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 {
-            // InternalPerspectiveDsl.g:9250:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9251:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9298:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9299:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9251:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9252:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:9299:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9300:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9253:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:9253:3: rule__XAnnotationElementValue__Group_0_0__0
+            // InternalPerspectiveDsl.g:9301:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:9301:3: rule__XAnnotationElementValue__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0();
@@ -31205,14 +31390,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
-    // InternalPerspectiveDsl.g:9261:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    // InternalPerspectiveDsl.g:9309: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 {
-            // InternalPerspectiveDsl.g:9265:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
-            // InternalPerspectiveDsl.g:9266:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            // InternalPerspectiveDsl.g:9313:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalPerspectiveDsl.g:9314:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValue__Group_0__1__Impl();
@@ -31243,31 +31428,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:9273:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:9321: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 {
-            // InternalPerspectiveDsl.g:9277:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:9278:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:9325:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:9326:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:9278:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:9279:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:9326:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:9327:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9280:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
-            int alt70=2;
-            int LA70_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:9328:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            int alt71=2;
+            int LA71_0 = input.LA(1);
 
-            if ( ((LA70_0>=RULE_ID && LA70_0<=RULE_DECIMAL)||LA70_0==27||(LA70_0>=34 && LA70_0<=35)||LA70_0==40||(LA70_0>=45 && LA70_0<=50)||LA70_0==54||(LA70_0>=97 && LA70_0<=98)||(LA70_0>=102 && LA70_0<=103)||LA70_0==106||LA70_0==108||(LA70_0>=112 && LA70_0<=120)||LA70_0==122||LA70_0==133) ) {
-                alt70=1;
+            if ( ((LA71_0>=RULE_ID && LA71_0<=RULE_DECIMAL)||LA71_0==27||(LA71_0>=34 && LA71_0<=35)||LA71_0==40||(LA71_0>=45 && LA71_0<=50)||LA71_0==54||(LA71_0>=97 && LA71_0<=98)||(LA71_0>=102 && LA71_0<=103)||LA71_0==106||LA71_0==108||(LA71_0>=112 && LA71_0<=120)||LA71_0==122||LA71_0==134) ) {
+                alt71=1;
             }
-            switch (alt70) {
+            switch (alt71) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9280:3: rule__XAnnotationElementValue__Group_0_1__0
+                    // InternalPerspectiveDsl.g:9328:3: rule__XAnnotationElementValue__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0_1__0();
@@ -31305,14 +31490,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
-    // InternalPerspectiveDsl.g:9288:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:9336: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 {
-            // InternalPerspectiveDsl.g:9292:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:9293:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:9340:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:9341:2: rule__XAnnotationElementValue__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0__2__Impl();
@@ -31338,17 +31523,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:9299:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:9347:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9303:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:9304:1: ( ']' )
+            // InternalPerspectiveDsl.g:9351:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:9352:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:9304:1: ( ']' )
-            // InternalPerspectiveDsl.g:9305:2: ']'
+            // InternalPerspectiveDsl.g:9352:1: ( ']' )
+            // InternalPerspectiveDsl.g:9353:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
@@ -31379,14 +31564,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
-    // InternalPerspectiveDsl.g:9315:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9363: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 {
-            // InternalPerspectiveDsl.g:9319:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:9320:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            // InternalPerspectiveDsl.g:9367:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:9368:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0__Impl();
@@ -31412,23 +31597,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9326:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9374: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 {
-            // InternalPerspectiveDsl.g:9330:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9331:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9378:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9379:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9331:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9332:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:9379:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9380:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9333:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
-            // InternalPerspectiveDsl.g:9333:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            // InternalPerspectiveDsl.g:9381:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:9381:3: rule__XAnnotationElementValue__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__0();
@@ -31463,14 +31648,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
-    // InternalPerspectiveDsl.g:9342:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
+    // InternalPerspectiveDsl.g:9390: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 {
-            // InternalPerspectiveDsl.g:9346:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
-            // InternalPerspectiveDsl.g:9347:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            // InternalPerspectiveDsl.g:9394:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalPerspectiveDsl.g:9395:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
             {
             pushFollow(FOLLOW_65);
             rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
@@ -31501,23 +31686,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9354:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9402: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 {
-            // InternalPerspectiveDsl.g:9358:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9359:1: ( () )
+            // InternalPerspectiveDsl.g:9406:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9407:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9359:1: ( () )
-            // InternalPerspectiveDsl.g:9360:2: ()
+            // InternalPerspectiveDsl.g:9407:1: ( () )
+            // InternalPerspectiveDsl.g:9408:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9361:2: ()
-            // InternalPerspectiveDsl.g:9361:3: 
+            // InternalPerspectiveDsl.g:9409:2: ()
+            // InternalPerspectiveDsl.g:9409:3: 
             {
             }
 
@@ -31542,14 +31727,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
-    // InternalPerspectiveDsl.g:9369:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
+    // InternalPerspectiveDsl.g:9417: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 {
-            // InternalPerspectiveDsl.g:9373:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
-            // InternalPerspectiveDsl.g:9374:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            // InternalPerspectiveDsl.g:9421:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalPerspectiveDsl.g:9422:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
             {
             pushFollow(FOLLOW_66);
             rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
@@ -31580,17 +31765,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9381:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:9429: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 {
-            // InternalPerspectiveDsl.g:9385:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:9386:1: ( '#' )
+            // InternalPerspectiveDsl.g:9433:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:9434:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:9386:1: ( '#' )
-            // InternalPerspectiveDsl.g:9387:2: '#'
+            // InternalPerspectiveDsl.g:9434:1: ( '#' )
+            // InternalPerspectiveDsl.g:9435:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
@@ -31621,14 +31806,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
-    // InternalPerspectiveDsl.g:9396:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:9444: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 {
-            // InternalPerspectiveDsl.g:9400:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:9401:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:9448:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:9449:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
@@ -31654,17 +31839,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:9407:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:9455: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 {
-            // InternalPerspectiveDsl.g:9411:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:9412:1: ( '[' )
+            // InternalPerspectiveDsl.g:9459:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:9460:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:9412:1: ( '[' )
-            // InternalPerspectiveDsl.g:9413:2: '['
+            // InternalPerspectiveDsl.g:9460:1: ( '[' )
+            // InternalPerspectiveDsl.g:9461:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
@@ -31695,14 +31880,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
-    // InternalPerspectiveDsl.g:9423:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:9471: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 {
-            // InternalPerspectiveDsl.g:9427:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:9428:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            // InternalPerspectiveDsl.g:9475:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:9476:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValue__Group_0_1__0__Impl();
@@ -31733,23 +31918,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:9435:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:9483: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 {
-            // InternalPerspectiveDsl.g:9439:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:9440:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:9487:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:9488:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:9440:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:9441:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:9488:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:9489:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9442:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:9442:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            // InternalPerspectiveDsl.g:9490:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:9490:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
@@ -31784,14 +31969,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
-    // InternalPerspectiveDsl.g:9450:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9498: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 {
-            // InternalPerspectiveDsl.g:9454:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:9455:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:9502:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:9503:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1__1__Impl();
@@ -31817,35 +32002,35 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:9461:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:9509: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 {
-            // InternalPerspectiveDsl.g:9465:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9466:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9513:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9514:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9466:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:9467:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:9514:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9515:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9468:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
-            loop71:
+            // InternalPerspectiveDsl.g:9516:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            loop72:
             do {
-                int alt71=2;
-                int LA71_0 = input.LA(1);
+                int alt72=2;
+                int LA72_0 = input.LA(1);
 
-                if ( (LA71_0==100) ) {
-                    alt71=1;
+                if ( (LA72_0==100) ) {
+                    alt72=1;
                 }
 
 
-                switch (alt71) {
+                switch (alt72) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9468:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:9516:3: rule__XAnnotationElementValue__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotationElementValue__Group_0_1_1__0();
@@ -31857,7 +32042,7 @@
             	    break;
 
             	default :
-            	    break loop71;
+            	    break loop72;
                 }
             } while (true);
 
@@ -31886,14 +32071,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:9477:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
+    // InternalPerspectiveDsl.g:9525: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 {
-            // InternalPerspectiveDsl.g:9481:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:9482:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:9529:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:9530:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
@@ -31924,17 +32109,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9489:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:9537: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 {
-            // InternalPerspectiveDsl.g:9493:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:9494:1: ( ',' )
+            // InternalPerspectiveDsl.g:9541:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:9542:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:9494:1: ( ',' )
-            // InternalPerspectiveDsl.g:9495:2: ','
+            // InternalPerspectiveDsl.g:9542:1: ( ',' )
+            // InternalPerspectiveDsl.g:9543:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
@@ -31965,14 +32150,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:9504:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9552: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 {
-            // InternalPerspectiveDsl.g:9508:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9509:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9556:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9557:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
@@ -31998,23 +32183,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9515:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9563: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 {
-            // InternalPerspectiveDsl.g:9519:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9520:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9567:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9568:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9520:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9521:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9568:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9569:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9522:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:9522:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:9570:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9570:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
@@ -32049,14 +32234,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0"
-    // InternalPerspectiveDsl.g:9531:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    // InternalPerspectiveDsl.g:9579: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 {
-            // InternalPerspectiveDsl.g:9535:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
-            // InternalPerspectiveDsl.g:9536:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            // InternalPerspectiveDsl.g:9583:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalPerspectiveDsl.g:9584:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
             {
             pushFollow(FOLLOW_67);
             rule__XAssignment__Group_0__0__Impl();
@@ -32087,23 +32272,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:9543:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9591:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9547:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9548:1: ( () )
+            // InternalPerspectiveDsl.g:9595:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9596:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9548:1: ( () )
-            // InternalPerspectiveDsl.g:9549:2: ()
+            // InternalPerspectiveDsl.g:9596:1: ( () )
+            // InternalPerspectiveDsl.g:9597:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9550:2: ()
-            // InternalPerspectiveDsl.g:9550:3: 
+            // InternalPerspectiveDsl.g:9598:2: ()
+            // InternalPerspectiveDsl.g:9598:3: 
             {
             }
 
@@ -32128,14 +32313,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1"
-    // InternalPerspectiveDsl.g:9558:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    // InternalPerspectiveDsl.g:9606: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 {
-            // InternalPerspectiveDsl.g:9562:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
-            // InternalPerspectiveDsl.g:9563:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            // InternalPerspectiveDsl.g:9610:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalPerspectiveDsl.g:9611:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
             {
             pushFollow(FOLLOW_63);
             rule__XAssignment__Group_0__1__Impl();
@@ -32166,23 +32351,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:9570:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9618: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 {
-            // InternalPerspectiveDsl.g:9574:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9575:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:9622:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9623:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9575:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
-            // InternalPerspectiveDsl.g:9576:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:9623:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:9624:2: ( rule__XAssignment__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9577:2: ( rule__XAssignment__FeatureAssignment_0_1 )
-            // InternalPerspectiveDsl.g:9577:3: rule__XAssignment__FeatureAssignment_0_1
+            // InternalPerspectiveDsl.g:9625:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:9625:3: rule__XAssignment__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_0_1();
@@ -32217,14 +32402,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2"
-    // InternalPerspectiveDsl.g:9585:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    // InternalPerspectiveDsl.g:9633: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 {
-            // InternalPerspectiveDsl.g:9589:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
-            // InternalPerspectiveDsl.g:9590:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            // InternalPerspectiveDsl.g:9637:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalPerspectiveDsl.g:9638:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
             {
             pushFollow(FOLLOW_62);
             rule__XAssignment__Group_0__2__Impl();
@@ -32255,17 +32440,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:9597:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    // InternalPerspectiveDsl.g:9645:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9601:1: ( ( ruleOpSingleAssign ) )
-            // InternalPerspectiveDsl.g:9602:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:9649:1: ( ( ruleOpSingleAssign ) )
+            // InternalPerspectiveDsl.g:9650:1: ( ruleOpSingleAssign )
             {
-            // InternalPerspectiveDsl.g:9602:1: ( ruleOpSingleAssign )
-            // InternalPerspectiveDsl.g:9603:2: ruleOpSingleAssign
+            // InternalPerspectiveDsl.g:9650:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:9651:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
@@ -32300,14 +32485,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3"
-    // InternalPerspectiveDsl.g:9612:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    // InternalPerspectiveDsl.g:9660: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 {
-            // InternalPerspectiveDsl.g:9616:1: ( rule__XAssignment__Group_0__3__Impl )
-            // InternalPerspectiveDsl.g:9617:2: rule__XAssignment__Group_0__3__Impl
+            // InternalPerspectiveDsl.g:9664:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalPerspectiveDsl.g:9665:2: rule__XAssignment__Group_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_0__3__Impl();
@@ -32333,23 +32518,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
-    // InternalPerspectiveDsl.g:9623:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:9671: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 {
-            // InternalPerspectiveDsl.g:9627:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
-            // InternalPerspectiveDsl.g:9628:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalPerspectiveDsl.g:9675:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalPerspectiveDsl.g:9676:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:9628:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
-            // InternalPerspectiveDsl.g:9629:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalPerspectiveDsl.g:9676:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalPerspectiveDsl.g:9677:2: ( rule__XAssignment__ValueAssignment_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
             }
-            // InternalPerspectiveDsl.g:9630:2: ( rule__XAssignment__ValueAssignment_0_3 )
-            // InternalPerspectiveDsl.g:9630:3: rule__XAssignment__ValueAssignment_0_3
+            // InternalPerspectiveDsl.g:9678:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalPerspectiveDsl.g:9678:3: rule__XAssignment__ValueAssignment_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__ValueAssignment_0_3();
@@ -32384,14 +32569,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0"
-    // InternalPerspectiveDsl.g:9639:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    // InternalPerspectiveDsl.g:9687: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 {
-            // InternalPerspectiveDsl.g:9643:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
-            // InternalPerspectiveDsl.g:9644:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            // InternalPerspectiveDsl.g:9691:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalPerspectiveDsl.g:9692:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
             {
             pushFollow(FOLLOW_68);
             rule__XAssignment__Group_1__0__Impl();
@@ -32422,17 +32607,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:9651:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    // InternalPerspectiveDsl.g:9699:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
     public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9655:1: ( ( ruleXOrExpression ) )
-            // InternalPerspectiveDsl.g:9656:1: ( ruleXOrExpression )
+            // InternalPerspectiveDsl.g:9703:1: ( ( ruleXOrExpression ) )
+            // InternalPerspectiveDsl.g:9704:1: ( ruleXOrExpression )
             {
-            // InternalPerspectiveDsl.g:9656:1: ( ruleXOrExpression )
-            // InternalPerspectiveDsl.g:9657:2: ruleXOrExpression
+            // InternalPerspectiveDsl.g:9704:1: ( ruleXOrExpression )
+            // InternalPerspectiveDsl.g:9705:2: ruleXOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
@@ -32467,14 +32652,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1"
-    // InternalPerspectiveDsl.g:9666:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9714: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 {
-            // InternalPerspectiveDsl.g:9670:1: ( rule__XAssignment__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:9671:2: rule__XAssignment__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:9718:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:9719:2: rule__XAssignment__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1__1__Impl();
@@ -32500,27 +32685,27 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:9677:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:9725: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 {
-            // InternalPerspectiveDsl.g:9681:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:9682:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9729:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:9730:1: ( ( rule__XAssignment__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:9682:1: ( ( rule__XAssignment__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:9683:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:9730:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9731:2: ( rule__XAssignment__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9684:2: ( rule__XAssignment__Group_1_1__0 )?
-            int alt72=2;
-            alt72 = dfa72.predict(input);
-            switch (alt72) {
+            // InternalPerspectiveDsl.g:9732:2: ( rule__XAssignment__Group_1_1__0 )?
+            int alt73=2;
+            alt73 = dfa73.predict(input);
+            switch (alt73) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9684:3: rule__XAssignment__Group_1_1__0
+                    // InternalPerspectiveDsl.g:9732:3: rule__XAssignment__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1_1__0();
@@ -32558,14 +32743,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0"
-    // InternalPerspectiveDsl.g:9693:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:9741: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 {
-            // InternalPerspectiveDsl.g:9697:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:9698:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            // InternalPerspectiveDsl.g:9745:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:9746:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAssignment__Group_1_1__0__Impl();
@@ -32596,23 +32781,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9705:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9753: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 {
-            // InternalPerspectiveDsl.g:9709:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9710:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9757:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9758:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9710:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
-            // InternalPerspectiveDsl.g:9711:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:9758:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9759:2: ( rule__XAssignment__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9712:2: ( rule__XAssignment__Group_1_1_0__0 )
-            // InternalPerspectiveDsl.g:9712:3: rule__XAssignment__Group_1_1_0__0
+            // InternalPerspectiveDsl.g:9760:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:9760:3: rule__XAssignment__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0();
@@ -32647,14 +32832,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1"
-    // InternalPerspectiveDsl.g:9720:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9768: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 {
-            // InternalPerspectiveDsl.g:9724:1: ( rule__XAssignment__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9725:2: rule__XAssignment__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9772:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9773:2: rule__XAssignment__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1__1__Impl();
@@ -32680,23 +32865,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9731:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9779: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 {
-            // InternalPerspectiveDsl.g:9735:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9736:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9783:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9784:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9736:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9737:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:9784:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9785:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9738:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
-            // InternalPerspectiveDsl.g:9738:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            // InternalPerspectiveDsl.g:9786:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:9786:3: rule__XAssignment__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__RightOperandAssignment_1_1_1();
@@ -32731,14 +32916,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
-    // InternalPerspectiveDsl.g:9747:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9795: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 {
-            // InternalPerspectiveDsl.g:9751:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:9752:2: rule__XAssignment__Group_1_1_0__0__Impl
+            // InternalPerspectiveDsl.g:9799:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:9800:2: rule__XAssignment__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0__Impl();
@@ -32764,23 +32949,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:9758:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9806: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 {
-            // InternalPerspectiveDsl.g:9762:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9763:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9810:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9811:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9763:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9764:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9811:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9812:2: ( rule__XAssignment__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9765:2: ( rule__XAssignment__Group_1_1_0_0__0 )
-            // InternalPerspectiveDsl.g:9765:3: rule__XAssignment__Group_1_1_0_0__0
+            // InternalPerspectiveDsl.g:9813:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9813:3: rule__XAssignment__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__0();
@@ -32815,14 +33000,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
-    // InternalPerspectiveDsl.g:9774: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 ;
+    // InternalPerspectiveDsl.g:9822: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 {
-            // InternalPerspectiveDsl.g:9778:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
-            // InternalPerspectiveDsl.g:9779:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            // InternalPerspectiveDsl.g:9826:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalPerspectiveDsl.g:9827:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
             {
             pushFollow(FOLLOW_68);
             rule__XAssignment__Group_1_1_0_0__0__Impl();
@@ -32853,23 +33038,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9786:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9834: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 {
-            // InternalPerspectiveDsl.g:9790:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9791:1: ( () )
+            // InternalPerspectiveDsl.g:9838:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9839:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9791:1: ( () )
-            // InternalPerspectiveDsl.g:9792:2: ()
+            // InternalPerspectiveDsl.g:9839:1: ( () )
+            // InternalPerspectiveDsl.g:9840:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9793:2: ()
-            // InternalPerspectiveDsl.g:9793:3: 
+            // InternalPerspectiveDsl.g:9841:2: ()
+            // InternalPerspectiveDsl.g:9841:3: 
             {
             }
 
@@ -32894,14 +33079,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
-    // InternalPerspectiveDsl.g:9801:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:9849: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 {
-            // InternalPerspectiveDsl.g:9805:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:9806:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:9853:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:9854:2: rule__XAssignment__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__1__Impl();
@@ -32927,23 +33112,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9812:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9860: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 {
-            // InternalPerspectiveDsl.g:9816:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9817:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9864:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9865:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9817:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:9818:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9865:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9866:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9819:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
-            // InternalPerspectiveDsl.g:9819:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            // InternalPerspectiveDsl.g:9867:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9867:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_1_1_0_0_1();
@@ -32978,14 +33163,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0"
-    // InternalPerspectiveDsl.g:9828:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    // InternalPerspectiveDsl.g:9876: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 {
-            // InternalPerspectiveDsl.g:9832:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
-            // InternalPerspectiveDsl.g:9833:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            // InternalPerspectiveDsl.g:9880:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalPerspectiveDsl.g:9881:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
             {
             pushFollow(FOLLOW_69);
             rule__OpMultiAssign__Group_5__0__Impl();
@@ -33016,17 +33201,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
-    // InternalPerspectiveDsl.g:9840:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:9888:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9844:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:9845:1: ( '<' )
+            // InternalPerspectiveDsl.g:9892:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:9893:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:9845:1: ( '<' )
-            // InternalPerspectiveDsl.g:9846:2: '<'
+            // InternalPerspectiveDsl.g:9893:1: ( '<' )
+            // InternalPerspectiveDsl.g:9894:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
@@ -33057,14 +33242,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1"
-    // InternalPerspectiveDsl.g:9855:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    // InternalPerspectiveDsl.g:9903: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 {
-            // InternalPerspectiveDsl.g:9859:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
-            // InternalPerspectiveDsl.g:9860:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            // InternalPerspectiveDsl.g:9907:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalPerspectiveDsl.g:9908:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
             {
             pushFollow(FOLLOW_63);
             rule__OpMultiAssign__Group_5__1__Impl();
@@ -33095,17 +33280,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
-    // InternalPerspectiveDsl.g:9867:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:9915:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9871:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:9872:1: ( '<' )
+            // InternalPerspectiveDsl.g:9919:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:9920:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:9872:1: ( '<' )
-            // InternalPerspectiveDsl.g:9873:2: '<'
+            // InternalPerspectiveDsl.g:9920:1: ( '<' )
+            // InternalPerspectiveDsl.g:9921:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
@@ -33136,14 +33321,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2"
-    // InternalPerspectiveDsl.g:9882:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    // InternalPerspectiveDsl.g:9930: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 {
-            // InternalPerspectiveDsl.g:9886:1: ( rule__OpMultiAssign__Group_5__2__Impl )
-            // InternalPerspectiveDsl.g:9887:2: rule__OpMultiAssign__Group_5__2__Impl
+            // InternalPerspectiveDsl.g:9934:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalPerspectiveDsl.g:9935:2: rule__OpMultiAssign__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_5__2__Impl();
@@ -33169,17 +33354,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
-    // InternalPerspectiveDsl.g:9893:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:9941:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
     public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9897:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:9898:1: ( '=' )
+            // InternalPerspectiveDsl.g:9945:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:9946:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:9898:1: ( '=' )
-            // InternalPerspectiveDsl.g:9899:2: '='
+            // InternalPerspectiveDsl.g:9946:1: ( '=' )
+            // InternalPerspectiveDsl.g:9947:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
@@ -33210,14 +33395,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0"
-    // InternalPerspectiveDsl.g:9909:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    // InternalPerspectiveDsl.g:9957: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 {
-            // InternalPerspectiveDsl.g:9913:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
-            // InternalPerspectiveDsl.g:9914:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            // InternalPerspectiveDsl.g:9961:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalPerspectiveDsl.g:9962:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
             {
             pushFollow(FOLLOW_70);
             rule__OpMultiAssign__Group_6__0__Impl();
@@ -33248,17 +33433,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
-    // InternalPerspectiveDsl.g:9921:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:9969:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
     public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9925:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:9926:1: ( '>' )
+            // InternalPerspectiveDsl.g:9973:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:9974:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:9926:1: ( '>' )
-            // InternalPerspectiveDsl.g:9927:2: '>'
+            // InternalPerspectiveDsl.g:9974:1: ( '>' )
+            // InternalPerspectiveDsl.g:9975:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
@@ -33289,14 +33474,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1"
-    // InternalPerspectiveDsl.g:9936:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    // InternalPerspectiveDsl.g:9984: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 {
-            // InternalPerspectiveDsl.g:9940:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
-            // InternalPerspectiveDsl.g:9941:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            // InternalPerspectiveDsl.g:9988:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalPerspectiveDsl.g:9989:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
             {
             pushFollow(FOLLOW_70);
             rule__OpMultiAssign__Group_6__1__Impl();
@@ -33327,31 +33512,31 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
-    // InternalPerspectiveDsl.g:9948:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    // InternalPerspectiveDsl.g:9996:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
     public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9952:1: ( ( ( '>' )? ) )
-            // InternalPerspectiveDsl.g:9953:1: ( ( '>' )? )
+            // InternalPerspectiveDsl.g:10000:1: ( ( ( '>' )? ) )
+            // InternalPerspectiveDsl.g:10001:1: ( ( '>' )? )
             {
-            // InternalPerspectiveDsl.g:9953:1: ( ( '>' )? )
-            // InternalPerspectiveDsl.g:9954:2: ( '>' )?
+            // InternalPerspectiveDsl.g:10001:1: ( ( '>' )? )
+            // InternalPerspectiveDsl.g:10002:2: ( '>' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
             }
-            // InternalPerspectiveDsl.g:9955:2: ( '>' )?
-            int alt73=2;
-            int LA73_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:10003:2: ( '>' )?
+            int alt74=2;
+            int LA74_0 = input.LA(1);
 
-            if ( (LA73_0==26) ) {
-                alt73=1;
+            if ( (LA74_0==26) ) {
+                alt74=1;
             }
-            switch (alt73) {
+            switch (alt74) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9955:3: '>'
+                    // InternalPerspectiveDsl.g:10003:3: '>'
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -33385,14 +33570,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2"
-    // InternalPerspectiveDsl.g:9963:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    // InternalPerspectiveDsl.g:10011: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 {
-            // InternalPerspectiveDsl.g:9967:1: ( rule__OpMultiAssign__Group_6__2__Impl )
-            // InternalPerspectiveDsl.g:9968:2: rule__OpMultiAssign__Group_6__2__Impl
+            // InternalPerspectiveDsl.g:10015:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalPerspectiveDsl.g:10016:2: rule__OpMultiAssign__Group_6__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_6__2__Impl();
@@ -33418,17 +33603,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
-    // InternalPerspectiveDsl.g:9974:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    // InternalPerspectiveDsl.g:10022:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
     public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9978:1: ( ( '>=' ) )
-            // InternalPerspectiveDsl.g:9979:1: ( '>=' )
+            // InternalPerspectiveDsl.g:10026:1: ( ( '>=' ) )
+            // InternalPerspectiveDsl.g:10027:1: ( '>=' )
             {
-            // InternalPerspectiveDsl.g:9979:1: ( '>=' )
-            // InternalPerspectiveDsl.g:9980:2: '>='
+            // InternalPerspectiveDsl.g:10027:1: ( '>=' )
+            // InternalPerspectiveDsl.g:10028:2: '>='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
@@ -33459,14 +33644,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0"
-    // InternalPerspectiveDsl.g:9990:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10038: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 {
-            // InternalPerspectiveDsl.g:9994:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
-            // InternalPerspectiveDsl.g:9995:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            // InternalPerspectiveDsl.g:10042:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10043:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
             {
             pushFollow(FOLLOW_71);
             rule__XOrExpression__Group__0__Impl();
@@ -33497,17 +33682,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10002:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    // InternalPerspectiveDsl.g:10050:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10006:1: ( ( ruleXAndExpression ) )
-            // InternalPerspectiveDsl.g:10007:1: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:10054:1: ( ( ruleXAndExpression ) )
+            // InternalPerspectiveDsl.g:10055:1: ( ruleXAndExpression )
             {
-            // InternalPerspectiveDsl.g:10007:1: ( ruleXAndExpression )
-            // InternalPerspectiveDsl.g:10008:2: ruleXAndExpression
+            // InternalPerspectiveDsl.g:10055:1: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:10056:2: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
@@ -33542,14 +33727,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1"
-    // InternalPerspectiveDsl.g:10017:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10065:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
     public final void rule__XOrExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10021:1: ( rule__XOrExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10022:2: rule__XOrExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10069:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10070:2: rule__XOrExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__1__Impl();
@@ -33575,41 +33760,41 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10028:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10076: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 {
-            // InternalPerspectiveDsl.g:10032:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10033:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10080:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10081:1: ( ( rule__XOrExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10033:1: ( ( rule__XOrExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10034:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10081:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10082:2: ( rule__XOrExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10035:2: ( rule__XOrExpression__Group_1__0 )*
-            loop74:
+            // InternalPerspectiveDsl.g:10083:2: ( rule__XOrExpression__Group_1__0 )*
+            loop75:
             do {
-                int alt74=2;
-                int LA74_0 = input.LA(1);
+                int alt75=2;
+                int LA75_0 = input.LA(1);
 
-                if ( (LA74_0==14) ) {
-                    int LA74_2 = input.LA(2);
+                if ( (LA75_0==14) ) {
+                    int LA75_2 = input.LA(2);
 
-                    if ( (synpred133_InternalPerspectiveDsl()) ) {
-                        alt74=1;
+                    if ( (synpred134_InternalPerspectiveDsl()) ) {
+                        alt75=1;
                     }
 
 
                 }
 
 
-                switch (alt74) {
+                switch (alt75) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10035:3: rule__XOrExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10083:3: rule__XOrExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_72);
             	    rule__XOrExpression__Group_1__0();
@@ -33621,7 +33806,7 @@
             	    break;
 
             	default :
-            	    break loop74;
+            	    break loop75;
                 }
             } while (true);
 
@@ -33650,14 +33835,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10044:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10092: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 {
-            // InternalPerspectiveDsl.g:10048:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10049:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10096:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10097:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XOrExpression__Group_1__0__Impl();
@@ -33688,23 +33873,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10056:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10104: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 {
-            // InternalPerspectiveDsl.g:10060:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10061:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10108:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10109:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10061:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10062:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10109:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10110:2: ( rule__XOrExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10063:2: ( rule__XOrExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10063:3: rule__XOrExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10111:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10111:3: rule__XOrExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0();
@@ -33739,14 +33924,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10071:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10119: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 {
-            // InternalPerspectiveDsl.g:10075:1: ( rule__XOrExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10076:2: rule__XOrExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10123:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10124:2: rule__XOrExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1__1__Impl();
@@ -33772,23 +33957,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10082:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10130: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 {
-            // InternalPerspectiveDsl.g:10086:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10087:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10134:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10135:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10087:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10088:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10135:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10136:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10089:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10089:3: rule__XOrExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10137:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10137:3: rule__XOrExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__RightOperandAssignment_1_1();
@@ -33823,14 +34008,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10098:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10146: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 {
-            // InternalPerspectiveDsl.g:10102:1: ( rule__XOrExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10103:2: rule__XOrExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10150:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10151:2: rule__XOrExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0__Impl();
@@ -33856,23 +34041,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10109:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10157: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 {
-            // InternalPerspectiveDsl.g:10113:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10114:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10161:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10162:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10114:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10115:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10162:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10163:2: ( rule__XOrExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10116:2: ( rule__XOrExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10116:3: rule__XOrExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10164:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10164:3: rule__XOrExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__0();
@@ -33907,14 +34092,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10125:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10173: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 {
-            // InternalPerspectiveDsl.g:10129:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10130:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10177:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10178:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_71);
             rule__XOrExpression__Group_1_0_0__0__Impl();
@@ -33945,23 +34130,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10137:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10185: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 {
-            // InternalPerspectiveDsl.g:10141:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10142:1: ( () )
+            // InternalPerspectiveDsl.g:10189:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10190:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10142:1: ( () )
-            // InternalPerspectiveDsl.g:10143:2: ()
+            // InternalPerspectiveDsl.g:10190:1: ( () )
+            // InternalPerspectiveDsl.g:10191:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10144:2: ()
-            // InternalPerspectiveDsl.g:10144:3: 
+            // InternalPerspectiveDsl.g:10192:2: ()
+            // InternalPerspectiveDsl.g:10192:3: 
             {
             }
 
@@ -33986,14 +34171,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10152:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10200: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 {
-            // InternalPerspectiveDsl.g:10156:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10157:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10204:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10205:2: rule__XOrExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__1__Impl();
@@ -34019,23 +34204,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10163:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10211: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 {
-            // InternalPerspectiveDsl.g:10167:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10168:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10215:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10216:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10168:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10169:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10216:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10217:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10170:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10170:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10218:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10218:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__FeatureAssignment_1_0_0_1();
@@ -34070,14 +34255,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0"
-    // InternalPerspectiveDsl.g:10179:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10227: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 {
-            // InternalPerspectiveDsl.g:10183:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10184:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            // InternalPerspectiveDsl.g:10231:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10232:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
             {
             pushFollow(FOLLOW_73);
             rule__XAndExpression__Group__0__Impl();
@@ -34108,17 +34293,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10191:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    // InternalPerspectiveDsl.g:10239:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10195:1: ( ( ruleXEqualityExpression ) )
-            // InternalPerspectiveDsl.g:10196:1: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:10243:1: ( ( ruleXEqualityExpression ) )
+            // InternalPerspectiveDsl.g:10244:1: ( ruleXEqualityExpression )
             {
-            // InternalPerspectiveDsl.g:10196:1: ( ruleXEqualityExpression )
-            // InternalPerspectiveDsl.g:10197:2: ruleXEqualityExpression
+            // InternalPerspectiveDsl.g:10244:1: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:10245:2: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
@@ -34153,14 +34338,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1"
-    // InternalPerspectiveDsl.g:10206:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10254:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
     public final void rule__XAndExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10210:1: ( rule__XAndExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10211:2: rule__XAndExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10258:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10259:2: rule__XAndExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__1__Impl();
@@ -34186,41 +34371,41 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10217:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10265: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 {
-            // InternalPerspectiveDsl.g:10221:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10222:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10269:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10270:1: ( ( rule__XAndExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10222:1: ( ( rule__XAndExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10223:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10270:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10271:2: ( rule__XAndExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10224:2: ( rule__XAndExpression__Group_1__0 )*
-            loop75:
+            // InternalPerspectiveDsl.g:10272:2: ( rule__XAndExpression__Group_1__0 )*
+            loop76:
             do {
-                int alt75=2;
-                int LA75_0 = input.LA(1);
+                int alt76=2;
+                int LA76_0 = input.LA(1);
 
-                if ( (LA75_0==15) ) {
-                    int LA75_2 = input.LA(2);
+                if ( (LA76_0==15) ) {
+                    int LA76_2 = input.LA(2);
 
-                    if ( (synpred134_InternalPerspectiveDsl()) ) {
-                        alt75=1;
+                    if ( (synpred135_InternalPerspectiveDsl()) ) {
+                        alt76=1;
                     }
 
 
                 }
 
 
-                switch (alt75) {
+                switch (alt76) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10224:3: rule__XAndExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10272:3: rule__XAndExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_74);
             	    rule__XAndExpression__Group_1__0();
@@ -34232,7 +34417,7 @@
             	    break;
 
             	default :
-            	    break loop75;
+            	    break loop76;
                 }
             } while (true);
 
@@ -34261,14 +34446,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10233:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10281: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 {
-            // InternalPerspectiveDsl.g:10237:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10238:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10285:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10286:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAndExpression__Group_1__0__Impl();
@@ -34299,23 +34484,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10245:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10293: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 {
-            // InternalPerspectiveDsl.g:10249:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10250:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10297:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10298:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10250:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10251:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10298:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10299:2: ( rule__XAndExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10252:2: ( rule__XAndExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10252:3: rule__XAndExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10300:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10300:3: rule__XAndExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0();
@@ -34350,14 +34535,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10260:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10308: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 {
-            // InternalPerspectiveDsl.g:10264:1: ( rule__XAndExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10265:2: rule__XAndExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10312:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10313:2: rule__XAndExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1__1__Impl();
@@ -34383,23 +34568,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10271:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10319: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 {
-            // InternalPerspectiveDsl.g:10275:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10276:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10323:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10324:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10276:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10277:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10324:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10325:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10278:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10278:3: rule__XAndExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10326:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10326:3: rule__XAndExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__RightOperandAssignment_1_1();
@@ -34434,14 +34619,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10287:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10335: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 {
-            // InternalPerspectiveDsl.g:10291:1: ( rule__XAndExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10292:2: rule__XAndExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10339:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10340:2: rule__XAndExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0__Impl();
@@ -34467,23 +34652,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10298:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10346: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 {
-            // InternalPerspectiveDsl.g:10302:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10303:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10350:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10351:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10303:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10304:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10351:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10352:2: ( rule__XAndExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10305:2: ( rule__XAndExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10305:3: rule__XAndExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10353:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10353:3: rule__XAndExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__0();
@@ -34518,14 +34703,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10314:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10362: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 {
-            // InternalPerspectiveDsl.g:10318:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10319:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10366:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10367:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_73);
             rule__XAndExpression__Group_1_0_0__0__Impl();
@@ -34556,23 +34741,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10326:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10374: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 {
-            // InternalPerspectiveDsl.g:10330:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10331:1: ( () )
+            // InternalPerspectiveDsl.g:10378:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10379:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10331:1: ( () )
-            // InternalPerspectiveDsl.g:10332:2: ()
+            // InternalPerspectiveDsl.g:10379:1: ( () )
+            // InternalPerspectiveDsl.g:10380:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10333:2: ()
-            // InternalPerspectiveDsl.g:10333:3: 
+            // InternalPerspectiveDsl.g:10381:2: ()
+            // InternalPerspectiveDsl.g:10381:3: 
             {
             }
 
@@ -34597,14 +34782,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10341:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10389: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 {
-            // InternalPerspectiveDsl.g:10345:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10346:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10393:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10394:2: rule__XAndExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__1__Impl();
@@ -34630,23 +34815,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10352:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10400: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 {
-            // InternalPerspectiveDsl.g:10356:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10357:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10404:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10405:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10357:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10358:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10405:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10406:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10359:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10359:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10407:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10407:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__FeatureAssignment_1_0_0_1();
@@ -34681,14 +34866,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0"
-    // InternalPerspectiveDsl.g:10368:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10416: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 {
-            // InternalPerspectiveDsl.g:10372:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10373:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            // InternalPerspectiveDsl.g:10420:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10421:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
             {
             pushFollow(FOLLOW_75);
             rule__XEqualityExpression__Group__0__Impl();
@@ -34719,17 +34904,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10380:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    // InternalPerspectiveDsl.g:10428:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10384:1: ( ( ruleXRelationalExpression ) )
-            // InternalPerspectiveDsl.g:10385:1: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:10432:1: ( ( ruleXRelationalExpression ) )
+            // InternalPerspectiveDsl.g:10433:1: ( ruleXRelationalExpression )
             {
-            // InternalPerspectiveDsl.g:10385:1: ( ruleXRelationalExpression )
-            // InternalPerspectiveDsl.g:10386:2: ruleXRelationalExpression
+            // InternalPerspectiveDsl.g:10433:1: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:10434:2: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
@@ -34764,14 +34949,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1"
-    // InternalPerspectiveDsl.g:10395:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10443:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
     public final void rule__XEqualityExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10399:1: ( rule__XEqualityExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10400:2: rule__XEqualityExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10447:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10448:2: rule__XEqualityExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__1__Impl();
@@ -34797,32 +34982,32 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10406:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10454: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 {
-            // InternalPerspectiveDsl.g:10410:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10411:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10458:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10459:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10411:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10412:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10459:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10460:2: ( rule__XEqualityExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10413:2: ( rule__XEqualityExpression__Group_1__0 )*
-            loop76:
+            // InternalPerspectiveDsl.g:10461:2: ( rule__XEqualityExpression__Group_1__0 )*
+            loop77:
             do {
-                int alt76=2;
+                int alt77=2;
                 switch ( input.LA(1) ) {
                 case 21:
                     {
-                    int LA76_2 = input.LA(2);
+                    int LA77_2 = input.LA(2);
 
-                    if ( (synpred135_InternalPerspectiveDsl()) ) {
-                        alt76=1;
+                    if ( (synpred136_InternalPerspectiveDsl()) ) {
+                        alt77=1;
                     }
 
 
@@ -34830,10 +35015,10 @@
                     break;
                 case 22:
                     {
-                    int LA76_3 = input.LA(2);
+                    int LA77_3 = input.LA(2);
 
-                    if ( (synpred135_InternalPerspectiveDsl()) ) {
-                        alt76=1;
+                    if ( (synpred136_InternalPerspectiveDsl()) ) {
+                        alt77=1;
                     }
 
 
@@ -34841,10 +35026,10 @@
                     break;
                 case 23:
                     {
-                    int LA76_4 = input.LA(2);
+                    int LA77_4 = input.LA(2);
 
-                    if ( (synpred135_InternalPerspectiveDsl()) ) {
-                        alt76=1;
+                    if ( (synpred136_InternalPerspectiveDsl()) ) {
+                        alt77=1;
                     }
 
 
@@ -34852,10 +35037,10 @@
                     break;
                 case 24:
                     {
-                    int LA76_5 = input.LA(2);
+                    int LA77_5 = input.LA(2);
 
-                    if ( (synpred135_InternalPerspectiveDsl()) ) {
-                        alt76=1;
+                    if ( (synpred136_InternalPerspectiveDsl()) ) {
+                        alt77=1;
                     }
 
 
@@ -34864,9 +35049,9 @@
 
                 }
 
-                switch (alt76) {
+                switch (alt77) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10413:3: rule__XEqualityExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10461:3: rule__XEqualityExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_76);
             	    rule__XEqualityExpression__Group_1__0();
@@ -34878,7 +35063,7 @@
             	    break;
 
             	default :
-            	    break loop76;
+            	    break loop77;
                 }
             } while (true);
 
@@ -34907,14 +35092,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10422:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10470: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 {
-            // InternalPerspectiveDsl.g:10426:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10427:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10474:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10475:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XEqualityExpression__Group_1__0__Impl();
@@ -34945,23 +35130,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10434:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10482: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 {
-            // InternalPerspectiveDsl.g:10438:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10439:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10486:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10487:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10439:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10440:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10487:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10488:2: ( rule__XEqualityExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10441:2: ( rule__XEqualityExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10441:3: rule__XEqualityExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10489:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10489:3: rule__XEqualityExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0();
@@ -34996,14 +35181,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10449:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10497: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 {
-            // InternalPerspectiveDsl.g:10453:1: ( rule__XEqualityExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10454:2: rule__XEqualityExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10501:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10502:2: rule__XEqualityExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1__1__Impl();
@@ -35029,23 +35214,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10460:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10508: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 {
-            // InternalPerspectiveDsl.g:10464:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10465:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10512:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10513:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10465:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10466:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10513:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10514:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10467:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10467:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10515:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10515:3: rule__XEqualityExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__RightOperandAssignment_1_1();
@@ -35080,14 +35265,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10476:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10524: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 {
-            // InternalPerspectiveDsl.g:10480:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10481:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10528:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10529:2: rule__XEqualityExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0__Impl();
@@ -35113,23 +35298,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10487:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10535: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 {
-            // InternalPerspectiveDsl.g:10491:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10492:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10539:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10540:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10492:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10493:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10540:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10541:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10494:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10494:3: rule__XEqualityExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10542:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10542:3: rule__XEqualityExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__0();
@@ -35164,14 +35349,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10503:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10551: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 {
-            // InternalPerspectiveDsl.g:10507:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10508:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10555:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10556:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_75);
             rule__XEqualityExpression__Group_1_0_0__0__Impl();
@@ -35202,23 +35387,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10515:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10563: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 {
-            // InternalPerspectiveDsl.g:10519:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10520:1: ( () )
+            // InternalPerspectiveDsl.g:10567:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10568:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10520:1: ( () )
-            // InternalPerspectiveDsl.g:10521:2: ()
+            // InternalPerspectiveDsl.g:10568:1: ( () )
+            // InternalPerspectiveDsl.g:10569:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10522:2: ()
-            // InternalPerspectiveDsl.g:10522:3: 
+            // InternalPerspectiveDsl.g:10570:2: ()
+            // InternalPerspectiveDsl.g:10570:3: 
             {
             }
 
@@ -35243,14 +35428,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10530:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10578: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 {
-            // InternalPerspectiveDsl.g:10534:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10535:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10582:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10583:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__1__Impl();
@@ -35276,23 +35461,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10541:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10589: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 {
-            // InternalPerspectiveDsl.g:10545:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10546:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10593:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10594:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10546:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10547:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10594:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10595:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10548:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10548:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10596:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10596:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
@@ -35327,14 +35512,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0"
-    // InternalPerspectiveDsl.g:10557:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10605: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 {
-            // InternalPerspectiveDsl.g:10561:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10562:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+            // InternalPerspectiveDsl.g:10609:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10610:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
             {
             pushFollow(FOLLOW_77);
             rule__XRelationalExpression__Group__0__Impl();
@@ -35365,17 +35550,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10569:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+    // InternalPerspectiveDsl.g:10617:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10573:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalPerspectiveDsl.g:10574:1: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:10621:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalPerspectiveDsl.g:10622:1: ( ruleXOtherOperatorExpression )
             {
-            // InternalPerspectiveDsl.g:10574:1: ( ruleXOtherOperatorExpression )
-            // InternalPerspectiveDsl.g:10575:2: ruleXOtherOperatorExpression
+            // InternalPerspectiveDsl.g:10622:1: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:10623:2: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
@@ -35410,14 +35595,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1"
-    // InternalPerspectiveDsl.g:10584:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10632:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
     public final void rule__XRelationalExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10588:1: ( rule__XRelationalExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10589:2: rule__XRelationalExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10636:1: ( rule__XRelationalExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10637:2: rule__XRelationalExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__1__Impl();
@@ -35443,32 +35628,32 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10595:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+    // InternalPerspectiveDsl.g:10643:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
     public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10599:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
-            // InternalPerspectiveDsl.g:10600:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:10647:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+            // InternalPerspectiveDsl.g:10648:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
             {
-            // InternalPerspectiveDsl.g:10600:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
-            // InternalPerspectiveDsl.g:10601:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            // InternalPerspectiveDsl.g:10648:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:10649:2: ( rule__XRelationalExpression__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:10602:2: ( rule__XRelationalExpression__Alternatives_1 )*
-            loop77:
+            // InternalPerspectiveDsl.g:10650:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            loop78:
             do {
-                int alt77=2;
+                int alt78=2;
                 switch ( input.LA(1) ) {
                 case 27:
                     {
-                    int LA77_2 = input.LA(2);
+                    int LA78_2 = input.LA(2);
 
-                    if ( (synpred136_InternalPerspectiveDsl()) ) {
-                        alt77=1;
+                    if ( (synpred137_InternalPerspectiveDsl()) ) {
+                        alt78=1;
                     }
 
 
@@ -35476,10 +35661,10 @@
                     break;
                 case 26:
                     {
-                    int LA77_3 = input.LA(2);
+                    int LA78_3 = input.LA(2);
 
-                    if ( (synpred136_InternalPerspectiveDsl()) ) {
-                        alt77=1;
+                    if ( (synpred137_InternalPerspectiveDsl()) ) {
+                        alt78=1;
                     }
 
 
@@ -35487,10 +35672,10 @@
                     break;
                 case 104:
                     {
-                    int LA77_4 = input.LA(2);
+                    int LA78_4 = input.LA(2);
 
-                    if ( (synpred136_InternalPerspectiveDsl()) ) {
-                        alt77=1;
+                    if ( (synpred137_InternalPerspectiveDsl()) ) {
+                        alt78=1;
                     }
 
 
@@ -35498,10 +35683,10 @@
                     break;
                 case 25:
                     {
-                    int LA77_5 = input.LA(2);
+                    int LA78_5 = input.LA(2);
 
-                    if ( (synpred136_InternalPerspectiveDsl()) ) {
-                        alt77=1;
+                    if ( (synpred137_InternalPerspectiveDsl()) ) {
+                        alt78=1;
                     }
 
 
@@ -35510,9 +35695,9 @@
 
                 }
 
-                switch (alt77) {
+                switch (alt78) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10602:3: rule__XRelationalExpression__Alternatives_1
+            	    // InternalPerspectiveDsl.g:10650:3: rule__XRelationalExpression__Alternatives_1
             	    {
             	    pushFollow(FOLLOW_78);
             	    rule__XRelationalExpression__Alternatives_1();
@@ -35524,7 +35709,7 @@
             	    break;
 
             	default :
-            	    break loop77;
+            	    break loop78;
                 }
             } while (true);
 
@@ -35553,14 +35738,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10611:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:10659: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 {
-            // InternalPerspectiveDsl.g:10615:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:10616:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+            // InternalPerspectiveDsl.g:10663:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:10664:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
             {
             pushFollow(FOLLOW_79);
             rule__XRelationalExpression__Group_1_0__0__Impl();
@@ -35591,23 +35776,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10623:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10671: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 {
-            // InternalPerspectiveDsl.g:10627:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10628:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10675:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10676:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10628:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10629:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10676:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10677:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10630:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10630:3: rule__XRelationalExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10678:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10678:3: rule__XRelationalExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0();
@@ -35642,14 +35827,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
-    // InternalPerspectiveDsl.g:10638:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10686: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 {
-            // InternalPerspectiveDsl.g:10642:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:10643:2: rule__XRelationalExpression__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:10690:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:10691:2: rule__XRelationalExpression__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0__1__Impl();
@@ -35675,23 +35860,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:10649:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10697: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 {
-            // InternalPerspectiveDsl.g:10653:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10654:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:10701:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10702:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10654:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:10655:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:10702:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:10703:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10656:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:10656:3: rule__XRelationalExpression__TypeAssignment_1_0_1
+            // InternalPerspectiveDsl.g:10704:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:10704:3: rule__XRelationalExpression__TypeAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__TypeAssignment_1_0_1();
@@ -35726,14 +35911,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10665:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10713: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 {
-            // InternalPerspectiveDsl.g:10669:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:10670:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+            // InternalPerspectiveDsl.g:10717:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:10718:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0__Impl();
@@ -35759,23 +35944,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10676:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10724: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 {
-            // InternalPerspectiveDsl.g:10680:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10681:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10728:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10729:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10681:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10682:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:10729:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10730:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10683:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
-            // InternalPerspectiveDsl.g:10683:3: rule__XRelationalExpression__Group_1_0_0_0__0
+            // InternalPerspectiveDsl.g:10731:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:10731:3: rule__XRelationalExpression__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__0();
@@ -35810,14 +35995,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
-    // InternalPerspectiveDsl.g:10692: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 ;
+    // InternalPerspectiveDsl.g:10740: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 {
-            // InternalPerspectiveDsl.g:10696:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
-            // InternalPerspectiveDsl.g:10697:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+            // InternalPerspectiveDsl.g:10744:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+            // InternalPerspectiveDsl.g:10745:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
             {
             pushFollow(FOLLOW_80);
             rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
@@ -35848,23 +36033,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10704:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10752: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 {
-            // InternalPerspectiveDsl.g:10708:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10709:1: ( () )
+            // InternalPerspectiveDsl.g:10756:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10757:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10709:1: ( () )
-            // InternalPerspectiveDsl.g:10710:2: ()
+            // InternalPerspectiveDsl.g:10757:1: ( () )
+            // InternalPerspectiveDsl.g:10758:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10711:2: ()
-            // InternalPerspectiveDsl.g:10711:3: 
+            // InternalPerspectiveDsl.g:10759:2: ()
+            // InternalPerspectiveDsl.g:10759:3: 
             {
             }
 
@@ -35889,14 +36074,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
-    // InternalPerspectiveDsl.g:10719:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10767: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 {
-            // InternalPerspectiveDsl.g:10723:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10724:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10771:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10772:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
@@ -35922,17 +36107,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10730:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+    // InternalPerspectiveDsl.g:10778: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 {
-            // InternalPerspectiveDsl.g:10734:1: ( ( 'instanceof' ) )
-            // InternalPerspectiveDsl.g:10735:1: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:10782:1: ( ( 'instanceof' ) )
+            // InternalPerspectiveDsl.g:10783:1: ( 'instanceof' )
             {
-            // InternalPerspectiveDsl.g:10735:1: ( 'instanceof' )
-            // InternalPerspectiveDsl.g:10736:2: 'instanceof'
+            // InternalPerspectiveDsl.g:10783:1: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:10784:2: 'instanceof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
@@ -35963,14 +36148,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
-    // InternalPerspectiveDsl.g:10746:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:10794: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 {
-            // InternalPerspectiveDsl.g:10750:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:10751:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+            // InternalPerspectiveDsl.g:10798:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:10799:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XRelationalExpression__Group_1_1__0__Impl();
@@ -36001,23 +36186,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:10758:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10806: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 {
-            // InternalPerspectiveDsl.g:10762:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10763:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10810:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10811:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10763:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10764:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:10811:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10812:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10765:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
-            // InternalPerspectiveDsl.g:10765:3: rule__XRelationalExpression__Group_1_1_0__0
+            // InternalPerspectiveDsl.g:10813:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:10813:3: rule__XRelationalExpression__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0();
@@ -36052,14 +36237,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
-    // InternalPerspectiveDsl.g:10773:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10821: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 {
-            // InternalPerspectiveDsl.g:10777:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:10778:2: rule__XRelationalExpression__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:10825:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:10826:2: rule__XRelationalExpression__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1__1__Impl();
@@ -36085,23 +36270,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:10784:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10832: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 {
-            // InternalPerspectiveDsl.g:10788:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10789:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:10836:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10837:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10789:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
-            // InternalPerspectiveDsl.g:10790:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:10837:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:10838:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10791:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
-            // InternalPerspectiveDsl.g:10791:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+            // InternalPerspectiveDsl.g:10839:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:10839:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__RightOperandAssignment_1_1_1();
@@ -36136,14 +36321,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
-    // InternalPerspectiveDsl.g:10800:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10848: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 {
-            // InternalPerspectiveDsl.g:10804:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10805:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10852:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10853:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0__Impl();
@@ -36169,23 +36354,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10811:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10859: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 {
-            // InternalPerspectiveDsl.g:10815:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10816:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10863:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10864:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10816:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10817:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10864:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10865:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10818:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10818:3: rule__XRelationalExpression__Group_1_1_0_0__0
+            // InternalPerspectiveDsl.g:10866:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10866:3: rule__XRelationalExpression__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__0();
@@ -36220,14 +36405,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
-    // InternalPerspectiveDsl.g:10827: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 ;
+    // InternalPerspectiveDsl.g:10875: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 {
-            // InternalPerspectiveDsl.g:10831:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10832:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+            // InternalPerspectiveDsl.g:10879:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10880:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
             {
             pushFollow(FOLLOW_77);
             rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
@@ -36258,23 +36443,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10839:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10887: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 {
-            // InternalPerspectiveDsl.g:10843:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10844:1: ( () )
+            // InternalPerspectiveDsl.g:10891:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10892:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10844:1: ( () )
-            // InternalPerspectiveDsl.g:10845:2: ()
+            // InternalPerspectiveDsl.g:10892:1: ( () )
+            // InternalPerspectiveDsl.g:10893:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10846:2: ()
-            // InternalPerspectiveDsl.g:10846:3: 
+            // InternalPerspectiveDsl.g:10894:2: ()
+            // InternalPerspectiveDsl.g:10894:3: 
             {
             }
 
@@ -36299,14 +36484,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
-    // InternalPerspectiveDsl.g:10854:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10902: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 {
-            // InternalPerspectiveDsl.g:10858:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10859:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10906:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10907:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
@@ -36332,23 +36517,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10865:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10913: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 {
-            // InternalPerspectiveDsl.g:10869:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10870:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10917:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10918:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10870:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10871:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10918:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10919:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10872:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10872:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+            // InternalPerspectiveDsl.g:10920:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10920:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
@@ -36383,14 +36568,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0"
-    // InternalPerspectiveDsl.g:10881:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10929: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 {
-            // InternalPerspectiveDsl.g:10885:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
-            // InternalPerspectiveDsl.g:10886:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
+            // InternalPerspectiveDsl.g:10933:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
+            // InternalPerspectiveDsl.g:10934:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
             {
             pushFollow(FOLLOW_63);
             rule__OpCompare__Group_1__0__Impl();
@@ -36421,17 +36606,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10893:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:10941:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
     public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10897:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:10898:1: ( '<' )
+            // InternalPerspectiveDsl.g:10945:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:10946:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:10898:1: ( '<' )
-            // InternalPerspectiveDsl.g:10899:2: '<'
+            // InternalPerspectiveDsl.g:10946:1: ( '<' )
+            // InternalPerspectiveDsl.g:10947:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
@@ -36462,14 +36647,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1"
-    // InternalPerspectiveDsl.g:10908:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10956: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 {
-            // InternalPerspectiveDsl.g:10912:1: ( rule__OpCompare__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10913:2: rule__OpCompare__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10960:1: ( rule__OpCompare__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10961:2: rule__OpCompare__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Group_1__1__Impl();
@@ -36495,17 +36680,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10919:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:10967:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
     public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10923:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:10924:1: ( '=' )
+            // InternalPerspectiveDsl.g:10971:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:10972:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:10924:1: ( '=' )
-            // InternalPerspectiveDsl.g:10925:2: '='
+            // InternalPerspectiveDsl.g:10972:1: ( '=' )
+            // InternalPerspectiveDsl.g:10973:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
@@ -36536,14 +36721,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
-    // InternalPerspectiveDsl.g:10935:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10983: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 {
-            // InternalPerspectiveDsl.g:10939:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10940:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+            // InternalPerspectiveDsl.g:10987:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10988:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
             {
             pushFollow(FOLLOW_81);
             rule__XOtherOperatorExpression__Group__0__Impl();
@@ -36574,17 +36759,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10947:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+    // InternalPerspectiveDsl.g:10995:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10951:1: ( ( ruleXAdditiveExpression ) )
-            // InternalPerspectiveDsl.g:10952:1: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:10999:1: ( ( ruleXAdditiveExpression ) )
+            // InternalPerspectiveDsl.g:11000:1: ( ruleXAdditiveExpression )
             {
-            // InternalPerspectiveDsl.g:10952:1: ( ruleXAdditiveExpression )
-            // InternalPerspectiveDsl.g:10953:2: ruleXAdditiveExpression
+            // InternalPerspectiveDsl.g:11000:1: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:11001:2: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
@@ -36619,14 +36804,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
-    // InternalPerspectiveDsl.g:10962:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:11010:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10966:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10967:2: rule__XOtherOperatorExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:11014:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:11015:2: rule__XOtherOperatorExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__1__Impl();
@@ -36652,29 +36837,29 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10973:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:11021: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 {
-            // InternalPerspectiveDsl.g:10977:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10978:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11025:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:11026:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10978:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10979:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:11026:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11027:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10980:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
-            loop78:
+            // InternalPerspectiveDsl.g:11028:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            loop79:
             do {
-                int alt78=2;
-                alt78 = dfa78.predict(input);
-                switch (alt78) {
+                int alt79=2;
+                alt79 = dfa79.predict(input);
+                switch (alt79) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10980:3: rule__XOtherOperatorExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:11028:3: rule__XOtherOperatorExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_82);
             	    rule__XOtherOperatorExpression__Group_1__0();
@@ -36686,7 +36871,7 @@
             	    break;
 
             	default :
-            	    break loop78;
+            	    break loop79;
                 }
             } while (true);
 
@@ -36715,14 +36900,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10989:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:11037: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 {
-            // InternalPerspectiveDsl.g:10993:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10994:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+            // InternalPerspectiveDsl.g:11041:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:11042:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XOtherOperatorExpression__Group_1__0__Impl();
@@ -36753,23 +36938,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:11001:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11049: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 {
-            // InternalPerspectiveDsl.g:11005:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11006:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11053:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11054:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11006:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:11007:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11054:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11055:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:11008:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:11008:3: rule__XOtherOperatorExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:11056:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11056:3: rule__XOtherOperatorExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0();
@@ -36804,14 +36989,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:11016:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:11064: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 {
-            // InternalPerspectiveDsl.g:11020:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:11021:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:11068:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:11069:2: rule__XOtherOperatorExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1__1__Impl();
@@ -36837,23 +37022,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:11027:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:11075: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 {
-            // InternalPerspectiveDsl.g:11031:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:11032:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11079:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:11080:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:11032:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:11033:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11080:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11081:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:11034:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:11034:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:11082:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11082:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
@@ -36888,14 +37073,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:11043:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11091: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 {
-            // InternalPerspectiveDsl.g:11047:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:11048:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:11095:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:11096:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0__Impl();
@@ -36921,23 +37106,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11054:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11102: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 {
-            // InternalPerspectiveDsl.g:11058:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11059:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11106:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11107:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11059:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11060:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11107:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11108:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11061:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11061:3: rule__XOtherOperatorExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:11109:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11109:3: rule__XOtherOperatorExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__0();
@@ -36972,14 +37157,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:11070:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:11118: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 {
-            // InternalPerspectiveDsl.g:11074:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11075:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:11122:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:11123:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_81);
             rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
@@ -37010,23 +37195,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11082:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11130: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 {
-            // InternalPerspectiveDsl.g:11086:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11087:1: ( () )
+            // InternalPerspectiveDsl.g:11134:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11135:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11087:1: ( () )
-            // InternalPerspectiveDsl.g:11088:2: ()
+            // InternalPerspectiveDsl.g:11135:1: ( () )
+            // InternalPerspectiveDsl.g:11136:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11089:2: ()
-            // InternalPerspectiveDsl.g:11089:3: 
+            // InternalPerspectiveDsl.g:11137:2: ()
+            // InternalPerspectiveDsl.g:11137:3: 
             {
             }
 
@@ -37051,14 +37236,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:11097:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11145: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 {
-            // InternalPerspectiveDsl.g:11101:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11102:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:11149:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:11150:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
@@ -37084,23 +37269,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11108:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11156: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 {
-            // InternalPerspectiveDsl.g:11112:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11113:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11160:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11161:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11113:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:11114:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11161:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11162:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11115:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:11115:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:11163:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11163:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
@@ -37135,14 +37320,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0"
-    // InternalPerspectiveDsl.g:11124:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+    // InternalPerspectiveDsl.g:11172: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 {
-            // InternalPerspectiveDsl.g:11128:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
-            // InternalPerspectiveDsl.g:11129:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+            // InternalPerspectiveDsl.g:11176:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+            // InternalPerspectiveDsl.g:11177:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
             {
             pushFollow(FOLLOW_83);
             rule__OpOther__Group_2__0__Impl();
@@ -37173,17 +37358,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0__Impl"
-    // InternalPerspectiveDsl.g:11136:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:11184:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11140:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:11141:1: ( '>' )
+            // InternalPerspectiveDsl.g:11188:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:11189:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:11141:1: ( '>' )
-            // InternalPerspectiveDsl.g:11142:2: '>'
+            // InternalPerspectiveDsl.g:11189:1: ( '>' )
+            // InternalPerspectiveDsl.g:11190:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
@@ -37214,14 +37399,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1"
-    // InternalPerspectiveDsl.g:11151:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+    // InternalPerspectiveDsl.g:11199: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 {
-            // InternalPerspectiveDsl.g:11155:1: ( rule__OpOther__Group_2__1__Impl )
-            // InternalPerspectiveDsl.g:11156:2: rule__OpOther__Group_2__1__Impl
+            // InternalPerspectiveDsl.g:11203:1: ( rule__OpOther__Group_2__1__Impl )
+            // InternalPerspectiveDsl.g:11204:2: rule__OpOther__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_2__1__Impl();
@@ -37247,17 +37432,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1__Impl"
-    // InternalPerspectiveDsl.g:11162:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+    // InternalPerspectiveDsl.g:11210:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
     public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11166:1: ( ( '..' ) )
-            // InternalPerspectiveDsl.g:11167:1: ( '..' )
+            // InternalPerspectiveDsl.g:11214:1: ( ( '..' ) )
+            // InternalPerspectiveDsl.g:11215:1: ( '..' )
             {
-            // InternalPerspectiveDsl.g:11167:1: ( '..' )
-            // InternalPerspectiveDsl.g:11168:2: '..'
+            // InternalPerspectiveDsl.g:11215:1: ( '..' )
+            // InternalPerspectiveDsl.g:11216:2: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
@@ -37288,14 +37473,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0"
-    // InternalPerspectiveDsl.g:11178:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+    // InternalPerspectiveDsl.g:11226: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 {
-            // InternalPerspectiveDsl.g:11182:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
-            // InternalPerspectiveDsl.g:11183:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+            // InternalPerspectiveDsl.g:11230:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+            // InternalPerspectiveDsl.g:11231:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
             {
             pushFollow(FOLLOW_84);
             rule__OpOther__Group_5__0__Impl();
@@ -37326,17 +37511,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0__Impl"
-    // InternalPerspectiveDsl.g:11190:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:11238:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11194:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:11195:1: ( '>' )
+            // InternalPerspectiveDsl.g:11242:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:11243:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:11195:1: ( '>' )
-            // InternalPerspectiveDsl.g:11196:2: '>'
+            // InternalPerspectiveDsl.g:11243:1: ( '>' )
+            // InternalPerspectiveDsl.g:11244:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
@@ -37367,14 +37552,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1"
-    // InternalPerspectiveDsl.g:11205:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+    // InternalPerspectiveDsl.g:11253: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 {
-            // InternalPerspectiveDsl.g:11209:1: ( rule__OpOther__Group_5__1__Impl )
-            // InternalPerspectiveDsl.g:11210:2: rule__OpOther__Group_5__1__Impl
+            // InternalPerspectiveDsl.g:11257:1: ( rule__OpOther__Group_5__1__Impl )
+            // InternalPerspectiveDsl.g:11258:2: rule__OpOther__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5__1__Impl();
@@ -37400,23 +37585,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1__Impl"
-    // InternalPerspectiveDsl.g:11216:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+    // InternalPerspectiveDsl.g:11264: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 {
-            // InternalPerspectiveDsl.g:11220:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
-            // InternalPerspectiveDsl.g:11221:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalPerspectiveDsl.g:11268:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+            // InternalPerspectiveDsl.g:11269:1: ( ( rule__OpOther__Alternatives_5_1 ) )
             {
-            // InternalPerspectiveDsl.g:11221:1: ( ( rule__OpOther__Alternatives_5_1 ) )
-            // InternalPerspectiveDsl.g:11222:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalPerspectiveDsl.g:11269:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalPerspectiveDsl.g:11270:2: ( rule__OpOther__Alternatives_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
             }
-            // InternalPerspectiveDsl.g:11223:2: ( rule__OpOther__Alternatives_5_1 )
-            // InternalPerspectiveDsl.g:11223:3: rule__OpOther__Alternatives_5_1
+            // InternalPerspectiveDsl.g:11271:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalPerspectiveDsl.g:11271:3: rule__OpOther__Alternatives_5_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_5_1();
@@ -37451,14 +37636,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0"
-    // InternalPerspectiveDsl.g:11232:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11280: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 {
-            // InternalPerspectiveDsl.g:11236:1: ( rule__OpOther__Group_5_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:11237:2: rule__OpOther__Group_5_1_0__0__Impl
+            // InternalPerspectiveDsl.g:11284:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:11285:2: rule__OpOther__Group_5_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0__0__Impl();
@@ -37484,23 +37669,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11243:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11291: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 {
-            // InternalPerspectiveDsl.g:11247:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11248:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11295:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11296:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11248:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11249:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11296:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11297:2: ( rule__OpOther__Group_5_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11250:2: ( rule__OpOther__Group_5_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11250:3: rule__OpOther__Group_5_1_0_0__0
+            // InternalPerspectiveDsl.g:11298:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11298:3: rule__OpOther__Group_5_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__0();
@@ -37535,14 +37720,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
-    // InternalPerspectiveDsl.g:11259: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 ;
+    // InternalPerspectiveDsl.g:11307: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 {
-            // InternalPerspectiveDsl.g:11263:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11264:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+            // InternalPerspectiveDsl.g:11311:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+            // InternalPerspectiveDsl.g:11312:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
             {
             pushFollow(FOLLOW_84);
             rule__OpOther__Group_5_1_0_0__0__Impl();
@@ -37573,17 +37758,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11271:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:11319: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 {
-            // InternalPerspectiveDsl.g:11275:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:11276:1: ( '>' )
+            // InternalPerspectiveDsl.g:11323:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:11324:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:11276:1: ( '>' )
-            // InternalPerspectiveDsl.g:11277:2: '>'
+            // InternalPerspectiveDsl.g:11324:1: ( '>' )
+            // InternalPerspectiveDsl.g:11325:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
@@ -37614,14 +37799,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
-    // InternalPerspectiveDsl.g:11286:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11334: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 {
-            // InternalPerspectiveDsl.g:11290:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11291:2: rule__OpOther__Group_5_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:11338:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:11339:2: rule__OpOther__Group_5_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__1__Impl();
@@ -37647,17 +37832,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11297:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:11345: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 {
-            // InternalPerspectiveDsl.g:11301:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:11302:1: ( '>' )
+            // InternalPerspectiveDsl.g:11349:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:11350:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:11302:1: ( '>' )
-            // InternalPerspectiveDsl.g:11303:2: '>'
+            // InternalPerspectiveDsl.g:11350:1: ( '>' )
+            // InternalPerspectiveDsl.g:11351:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
@@ -37688,14 +37873,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0"
-    // InternalPerspectiveDsl.g:11313:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+    // InternalPerspectiveDsl.g:11361: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 {
-            // InternalPerspectiveDsl.g:11317:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
-            // InternalPerspectiveDsl.g:11318:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+            // InternalPerspectiveDsl.g:11365:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+            // InternalPerspectiveDsl.g:11366:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
             {
             pushFollow(FOLLOW_85);
             rule__OpOther__Group_6__0__Impl();
@@ -37726,17 +37911,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0__Impl"
-    // InternalPerspectiveDsl.g:11325:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:11373:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11329:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:11330:1: ( '<' )
+            // InternalPerspectiveDsl.g:11377:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:11378:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:11330:1: ( '<' )
-            // InternalPerspectiveDsl.g:11331:2: '<'
+            // InternalPerspectiveDsl.g:11378:1: ( '<' )
+            // InternalPerspectiveDsl.g:11379:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
@@ -37767,14 +37952,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1"
-    // InternalPerspectiveDsl.g:11340:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+    // InternalPerspectiveDsl.g:11388: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 {
-            // InternalPerspectiveDsl.g:11344:1: ( rule__OpOther__Group_6__1__Impl )
-            // InternalPerspectiveDsl.g:11345:2: rule__OpOther__Group_6__1__Impl
+            // InternalPerspectiveDsl.g:11392:1: ( rule__OpOther__Group_6__1__Impl )
+            // InternalPerspectiveDsl.g:11393:2: rule__OpOther__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6__1__Impl();
@@ -37800,23 +37985,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1__Impl"
-    // InternalPerspectiveDsl.g:11351:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+    // InternalPerspectiveDsl.g:11399: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 {
-            // InternalPerspectiveDsl.g:11355:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
-            // InternalPerspectiveDsl.g:11356:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalPerspectiveDsl.g:11403:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+            // InternalPerspectiveDsl.g:11404:1: ( ( rule__OpOther__Alternatives_6_1 ) )
             {
-            // InternalPerspectiveDsl.g:11356:1: ( ( rule__OpOther__Alternatives_6_1 ) )
-            // InternalPerspectiveDsl.g:11357:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalPerspectiveDsl.g:11404:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalPerspectiveDsl.g:11405:2: ( rule__OpOther__Alternatives_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
             }
-            // InternalPerspectiveDsl.g:11358:2: ( rule__OpOther__Alternatives_6_1 )
-            // InternalPerspectiveDsl.g:11358:3: rule__OpOther__Alternatives_6_1
+            // InternalPerspectiveDsl.g:11406:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalPerspectiveDsl.g:11406:3: rule__OpOther__Alternatives_6_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_6_1();
@@ -37851,14 +38036,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0"
-    // InternalPerspectiveDsl.g:11367:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11415: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 {
-            // InternalPerspectiveDsl.g:11371:1: ( rule__OpOther__Group_6_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:11372:2: rule__OpOther__Group_6_1_0__0__Impl
+            // InternalPerspectiveDsl.g:11419:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:11420:2: rule__OpOther__Group_6_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0__0__Impl();
@@ -37884,23 +38069,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11378:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11426: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 {
-            // InternalPerspectiveDsl.g:11382:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11383:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11430:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11431:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11383:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11384:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11431:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11432:2: ( rule__OpOther__Group_6_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11385:2: ( rule__OpOther__Group_6_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11385:3: rule__OpOther__Group_6_1_0_0__0
+            // InternalPerspectiveDsl.g:11433:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11433:3: rule__OpOther__Group_6_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__0();
@@ -37935,14 +38120,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
-    // InternalPerspectiveDsl.g:11394: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 ;
+    // InternalPerspectiveDsl.g:11442: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 {
-            // InternalPerspectiveDsl.g:11398:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11399:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+            // InternalPerspectiveDsl.g:11446:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+            // InternalPerspectiveDsl.g:11447:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
             {
             pushFollow(FOLLOW_69);
             rule__OpOther__Group_6_1_0_0__0__Impl();
@@ -37973,17 +38158,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11406:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:11454: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 {
-            // InternalPerspectiveDsl.g:11410:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:11411:1: ( '<' )
+            // InternalPerspectiveDsl.g:11458:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:11459:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:11411:1: ( '<' )
-            // InternalPerspectiveDsl.g:11412:2: '<'
+            // InternalPerspectiveDsl.g:11459:1: ( '<' )
+            // InternalPerspectiveDsl.g:11460:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
@@ -38014,14 +38199,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
-    // InternalPerspectiveDsl.g:11421:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11469: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 {
-            // InternalPerspectiveDsl.g:11425:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11426:2: rule__OpOther__Group_6_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:11473:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:11474:2: rule__OpOther__Group_6_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__1__Impl();
@@ -38047,17 +38232,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11432:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:11480: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 {
-            // InternalPerspectiveDsl.g:11436:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:11437:1: ( '<' )
+            // InternalPerspectiveDsl.g:11484:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:11485:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:11437:1: ( '<' )
-            // InternalPerspectiveDsl.g:11438:2: '<'
+            // InternalPerspectiveDsl.g:11485:1: ( '<' )
+            // InternalPerspectiveDsl.g:11486:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
@@ -38088,14 +38273,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0"
-    // InternalPerspectiveDsl.g:11448:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:11496: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 {
-            // InternalPerspectiveDsl.g:11452:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
-            // InternalPerspectiveDsl.g:11453:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+            // InternalPerspectiveDsl.g:11500:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+            // InternalPerspectiveDsl.g:11501:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
             {
             pushFollow(FOLLOW_86);
             rule__XAdditiveExpression__Group__0__Impl();
@@ -38126,17 +38311,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:11460:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+    // InternalPerspectiveDsl.g:11508:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11464:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalPerspectiveDsl.g:11465:1: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:11512:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalPerspectiveDsl.g:11513:1: ( ruleXMultiplicativeExpression )
             {
-            // InternalPerspectiveDsl.g:11465:1: ( ruleXMultiplicativeExpression )
-            // InternalPerspectiveDsl.g:11466:2: ruleXMultiplicativeExpression
+            // InternalPerspectiveDsl.g:11513:1: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:11514:2: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
@@ -38171,14 +38356,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1"
-    // InternalPerspectiveDsl.g:11475:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:11523:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
     public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11479:1: ( rule__XAdditiveExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:11480:2: rule__XAdditiveExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:11527:1: ( rule__XAdditiveExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:11528:2: rule__XAdditiveExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__1__Impl();
@@ -38204,50 +38389,50 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:11486:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:11534: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 {
-            // InternalPerspectiveDsl.g:11490:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:11491:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11538:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:11539:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:11491:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:11492:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:11539:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11540:2: ( rule__XAdditiveExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:11493:2: ( rule__XAdditiveExpression__Group_1__0 )*
-            loop79:
+            // InternalPerspectiveDsl.g:11541:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            loop80:
             do {
-                int alt79=2;
-                int LA79_0 = input.LA(1);
+                int alt80=2;
+                int LA80_0 = input.LA(1);
 
-                if ( (LA79_0==35) ) {
-                    int LA79_2 = input.LA(2);
+                if ( (LA80_0==35) ) {
+                    int LA80_2 = input.LA(2);
 
-                    if ( (synpred138_InternalPerspectiveDsl()) ) {
-                        alt79=1;
+                    if ( (synpred139_InternalPerspectiveDsl()) ) {
+                        alt80=1;
                     }
 
 
                 }
-                else if ( (LA79_0==34) ) {
-                    int LA79_3 = input.LA(2);
+                else if ( (LA80_0==34) ) {
+                    int LA80_3 = input.LA(2);
 
-                    if ( (synpred138_InternalPerspectiveDsl()) ) {
-                        alt79=1;
+                    if ( (synpred139_InternalPerspectiveDsl()) ) {
+                        alt80=1;
                     }
 
 
                 }
 
 
-                switch (alt79) {
+                switch (alt80) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:11493:3: rule__XAdditiveExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:11541:3: rule__XAdditiveExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_87);
             	    rule__XAdditiveExpression__Group_1__0();
@@ -38259,7 +38444,7 @@
             	    break;
 
             	default :
-            	    break loop79;
+            	    break loop80;
                 }
             } while (true);
 
@@ -38288,14 +38473,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:11502:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:11550: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 {
-            // InternalPerspectiveDsl.g:11506:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:11507:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+            // InternalPerspectiveDsl.g:11554:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:11555:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAdditiveExpression__Group_1__0__Impl();
@@ -38326,23 +38511,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:11514:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11562: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 {
-            // InternalPerspectiveDsl.g:11518:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11519:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11566:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11567:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11519:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:11520:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11567:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11568:2: ( rule__XAdditiveExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:11521:2: ( rule__XAdditiveExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:11521:3: rule__XAdditiveExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:11569:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11569:3: rule__XAdditiveExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0();
@@ -38377,14 +38562,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:11529:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:11577: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 {
-            // InternalPerspectiveDsl.g:11533:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:11534:2: rule__XAdditiveExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:11581:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:11582:2: rule__XAdditiveExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1__1__Impl();
@@ -38410,23 +38595,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:11540:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:11588: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 {
-            // InternalPerspectiveDsl.g:11544:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:11545:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11592:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:11593:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:11545:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:11546:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11593:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11594:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:11547:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:11547:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:11595:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11595:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__RightOperandAssignment_1_1();
@@ -38461,14 +38646,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:11556:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11604: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 {
-            // InternalPerspectiveDsl.g:11560:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:11561:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:11608:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:11609:2: rule__XAdditiveExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0__Impl();
@@ -38494,23 +38679,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11567:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11615: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 {
-            // InternalPerspectiveDsl.g:11571:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11572:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11619:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11620:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11572:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11573:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11620:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11621:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11574:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11574:3: rule__XAdditiveExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:11622:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11622:3: rule__XAdditiveExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__0();
@@ -38545,14 +38730,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:11583:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:11631: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 {
-            // InternalPerspectiveDsl.g:11587:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11588:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:11635:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:11636:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_86);
             rule__XAdditiveExpression__Group_1_0_0__0__Impl();
@@ -38583,23 +38768,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11595:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11643: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 {
-            // InternalPerspectiveDsl.g:11599:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11600:1: ( () )
+            // InternalPerspectiveDsl.g:11647:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11648:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11600:1: ( () )
-            // InternalPerspectiveDsl.g:11601:2: ()
+            // InternalPerspectiveDsl.g:11648:1: ( () )
+            // InternalPerspectiveDsl.g:11649:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11602:2: ()
-            // InternalPerspectiveDsl.g:11602:3: 
+            // InternalPerspectiveDsl.g:11650:2: ()
+            // InternalPerspectiveDsl.g:11650:3: 
             {
             }
 
@@ -38624,14 +38809,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:11610:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11658: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 {
-            // InternalPerspectiveDsl.g:11614:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11615:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:11662:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:11663:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__1__Impl();
@@ -38657,23 +38842,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11621:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11669: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 {
-            // InternalPerspectiveDsl.g:11625:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11626:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11673:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11674:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11626:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:11627:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11674:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11675:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11628:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:11628:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:11676:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11676:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
@@ -38708,14 +38893,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
-    // InternalPerspectiveDsl.g:11637:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:11685: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 {
-            // InternalPerspectiveDsl.g:11641:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
-            // InternalPerspectiveDsl.g:11642:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+            // InternalPerspectiveDsl.g:11689:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+            // InternalPerspectiveDsl.g:11690:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
             {
             pushFollow(FOLLOW_88);
             rule__XMultiplicativeExpression__Group__0__Impl();
@@ -38746,17 +38931,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:11649:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+    // InternalPerspectiveDsl.g:11697:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11653:1: ( ( ruleXUnaryOperation ) )
-            // InternalPerspectiveDsl.g:11654:1: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:11701:1: ( ( ruleXUnaryOperation ) )
+            // InternalPerspectiveDsl.g:11702:1: ( ruleXUnaryOperation )
             {
-            // InternalPerspectiveDsl.g:11654:1: ( ruleXUnaryOperation )
-            // InternalPerspectiveDsl.g:11655:2: ruleXUnaryOperation
+            // InternalPerspectiveDsl.g:11702:1: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:11703:2: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
@@ -38791,14 +38976,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
-    // InternalPerspectiveDsl.g:11664:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:11712:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11668:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:11669:2: rule__XMultiplicativeExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:11716:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:11717:2: rule__XMultiplicativeExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__1__Impl();
@@ -38824,32 +39009,32 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:11675:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:11723: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 {
-            // InternalPerspectiveDsl.g:11679:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:11680:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11727:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:11728:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:11680:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:11681:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:11728:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11729:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:11682:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
-            loop80:
+            // InternalPerspectiveDsl.g:11730:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            loop81:
             do {
-                int alt80=2;
+                int alt81=2;
                 switch ( input.LA(1) ) {
                 case 36:
                     {
-                    int LA80_2 = input.LA(2);
+                    int LA81_2 = input.LA(2);
 
-                    if ( (synpred139_InternalPerspectiveDsl()) ) {
-                        alt80=1;
+                    if ( (synpred140_InternalPerspectiveDsl()) ) {
+                        alt81=1;
                     }
 
 
@@ -38857,10 +39042,10 @@
                     break;
                 case 37:
                     {
-                    int LA80_3 = input.LA(2);
+                    int LA81_3 = input.LA(2);
 
-                    if ( (synpred139_InternalPerspectiveDsl()) ) {
-                        alt80=1;
+                    if ( (synpred140_InternalPerspectiveDsl()) ) {
+                        alt81=1;
                     }
 
 
@@ -38868,10 +39053,10 @@
                     break;
                 case 38:
                     {
-                    int LA80_4 = input.LA(2);
+                    int LA81_4 = input.LA(2);
 
-                    if ( (synpred139_InternalPerspectiveDsl()) ) {
-                        alt80=1;
+                    if ( (synpred140_InternalPerspectiveDsl()) ) {
+                        alt81=1;
                     }
 
 
@@ -38879,10 +39064,10 @@
                     break;
                 case 39:
                     {
-                    int LA80_5 = input.LA(2);
+                    int LA81_5 = input.LA(2);
 
-                    if ( (synpred139_InternalPerspectiveDsl()) ) {
-                        alt80=1;
+                    if ( (synpred140_InternalPerspectiveDsl()) ) {
+                        alt81=1;
                     }
 
 
@@ -38891,9 +39076,9 @@
 
                 }
 
-                switch (alt80) {
+                switch (alt81) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:11682:3: rule__XMultiplicativeExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:11730:3: rule__XMultiplicativeExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_89);
             	    rule__XMultiplicativeExpression__Group_1__0();
@@ -38905,7 +39090,7 @@
             	    break;
 
             	default :
-            	    break loop80;
+            	    break loop81;
                 }
             } while (true);
 
@@ -38934,14 +39119,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:11691:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:11739: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 {
-            // InternalPerspectiveDsl.g:11695:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:11696:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+            // InternalPerspectiveDsl.g:11743:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:11744:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XMultiplicativeExpression__Group_1__0__Impl();
@@ -38972,23 +39157,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:11703:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11751: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 {
-            // InternalPerspectiveDsl.g:11707:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11708:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11755:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11756:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11708:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:11709:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11756:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11757:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:11710:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:11710:3: rule__XMultiplicativeExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:11758:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11758:3: rule__XMultiplicativeExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0();
@@ -39023,14 +39208,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:11718:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:11766: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 {
-            // InternalPerspectiveDsl.g:11722:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:11723:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:11770:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:11771:2: rule__XMultiplicativeExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1__1__Impl();
@@ -39056,23 +39241,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:11729:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:11777: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 {
-            // InternalPerspectiveDsl.g:11733:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:11734:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11781:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:11782:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:11734:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:11735:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11782:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11783:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:11736:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:11736:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:11784:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11784:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
@@ -39107,14 +39292,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:11745:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11793: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 {
-            // InternalPerspectiveDsl.g:11749:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:11750:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:11797:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:11798:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0__Impl();
@@ -39140,23 +39325,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11756:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11804: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 {
-            // InternalPerspectiveDsl.g:11760:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11761:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11808:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11809:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11761:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11762:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11809:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11810:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11763:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11763:3: rule__XMultiplicativeExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:11811:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11811:3: rule__XMultiplicativeExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__0();
@@ -39191,14 +39376,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:11772:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:11820: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 {
-            // InternalPerspectiveDsl.g:11776:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11777:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:11824:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:11825:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_88);
             rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
@@ -39229,23 +39414,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11784:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11832: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 {
-            // InternalPerspectiveDsl.g:11788:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11789:1: ( () )
+            // InternalPerspectiveDsl.g:11836:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11837:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11789:1: ( () )
-            // InternalPerspectiveDsl.g:11790:2: ()
+            // InternalPerspectiveDsl.g:11837:1: ( () )
+            // InternalPerspectiveDsl.g:11838:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11791:2: ()
-            // InternalPerspectiveDsl.g:11791:3: 
+            // InternalPerspectiveDsl.g:11839:2: ()
+            // InternalPerspectiveDsl.g:11839:3: 
             {
             }
 
@@ -39270,14 +39455,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:11799:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11847: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 {
-            // InternalPerspectiveDsl.g:11803:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11804:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:11851:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:11852:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
@@ -39303,23 +39488,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11810:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11858: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 {
-            // InternalPerspectiveDsl.g:11814:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11815:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11862:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11863:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11815:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:11816:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11863:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11864:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11817:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:11817:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:11865:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11865:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
@@ -39354,14 +39539,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0"
-    // InternalPerspectiveDsl.g:11826:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+    // InternalPerspectiveDsl.g:11874: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 {
-            // InternalPerspectiveDsl.g:11830:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
-            // InternalPerspectiveDsl.g:11831:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+            // InternalPerspectiveDsl.g:11878:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+            // InternalPerspectiveDsl.g:11879:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
             {
             pushFollow(FOLLOW_90);
             rule__XUnaryOperation__Group_0__0__Impl();
@@ -39392,23 +39577,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:11838:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11886:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
     public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11842:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11843:1: ( () )
+            // InternalPerspectiveDsl.g:11890:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11891:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11843:1: ( () )
-            // InternalPerspectiveDsl.g:11844:2: ()
+            // InternalPerspectiveDsl.g:11891:1: ( () )
+            // InternalPerspectiveDsl.g:11892:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11845:2: ()
-            // InternalPerspectiveDsl.g:11845:3: 
+            // InternalPerspectiveDsl.g:11893:2: ()
+            // InternalPerspectiveDsl.g:11893:3: 
             {
             }
 
@@ -39433,14 +39618,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1"
-    // InternalPerspectiveDsl.g:11853:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+    // InternalPerspectiveDsl.g:11901: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 {
-            // InternalPerspectiveDsl.g:11857:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
-            // InternalPerspectiveDsl.g:11858:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+            // InternalPerspectiveDsl.g:11905:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+            // InternalPerspectiveDsl.g:11906:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
             {
             pushFollow(FOLLOW_62);
             rule__XUnaryOperation__Group_0__1__Impl();
@@ -39471,23 +39656,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:11865:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11913: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 {
-            // InternalPerspectiveDsl.g:11869:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11870:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:11917:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11918:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11870:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
-            // InternalPerspectiveDsl.g:11871:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:11918:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:11919:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11872:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
-            // InternalPerspectiveDsl.g:11872:3: rule__XUnaryOperation__FeatureAssignment_0_1
+            // InternalPerspectiveDsl.g:11920:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:11920:3: rule__XUnaryOperation__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__FeatureAssignment_0_1();
@@ -39522,14 +39707,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2"
-    // InternalPerspectiveDsl.g:11880:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:11928: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 {
-            // InternalPerspectiveDsl.g:11884:1: ( rule__XUnaryOperation__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:11885:2: rule__XUnaryOperation__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:11932:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:11933:2: rule__XUnaryOperation__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Group_0__2__Impl();
@@ -39555,23 +39740,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:11891:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:11939: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 {
-            // InternalPerspectiveDsl.g:11895:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
-            // InternalPerspectiveDsl.g:11896:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalPerspectiveDsl.g:11943:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+            // InternalPerspectiveDsl.g:11944:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:11896:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
-            // InternalPerspectiveDsl.g:11897:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalPerspectiveDsl.g:11944:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalPerspectiveDsl.g:11945:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
             }
-            // InternalPerspectiveDsl.g:11898:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
-            // InternalPerspectiveDsl.g:11898:3: rule__XUnaryOperation__OperandAssignment_0_2
+            // InternalPerspectiveDsl.g:11946:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalPerspectiveDsl.g:11946:3: rule__XUnaryOperation__OperandAssignment_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__OperandAssignment_0_2();
@@ -39606,14 +39791,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0"
-    // InternalPerspectiveDsl.g:11907:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:11955: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 {
-            // InternalPerspectiveDsl.g:11911:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
-            // InternalPerspectiveDsl.g:11912:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+            // InternalPerspectiveDsl.g:11959:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+            // InternalPerspectiveDsl.g:11960:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
             {
             pushFollow(FOLLOW_91);
             rule__XCastedExpression__Group__0__Impl();
@@ -39644,17 +39829,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:11919:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
+    // InternalPerspectiveDsl.g:11967:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
     public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11923:1: ( ( ruleXPostfixOperation ) )
-            // InternalPerspectiveDsl.g:11924:1: ( ruleXPostfixOperation )
+            // InternalPerspectiveDsl.g:11971:1: ( ( ruleXPostfixOperation ) )
+            // InternalPerspectiveDsl.g:11972:1: ( ruleXPostfixOperation )
             {
-            // InternalPerspectiveDsl.g:11924:1: ( ruleXPostfixOperation )
-            // InternalPerspectiveDsl.g:11925:2: ruleXPostfixOperation
+            // InternalPerspectiveDsl.g:11972:1: ( ruleXPostfixOperation )
+            // InternalPerspectiveDsl.g:11973:2: ruleXPostfixOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
@@ -39689,14 +39874,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1"
-    // InternalPerspectiveDsl.g:11934:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:11982:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
     public final void rule__XCastedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11938:1: ( rule__XCastedExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:11939:2: rule__XCastedExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:11986:1: ( rule__XCastedExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:11987:2: rule__XCastedExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__1__Impl();
@@ -39722,41 +39907,41 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:11945:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:11993: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 {
-            // InternalPerspectiveDsl.g:11949:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:11950:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11997:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:11998:1: ( ( rule__XCastedExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:11950:1: ( ( rule__XCastedExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:11951:2: ( rule__XCastedExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:11998:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11999:2: ( rule__XCastedExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:11952:2: ( rule__XCastedExpression__Group_1__0 )*
-            loop81:
+            // InternalPerspectiveDsl.g:12000:2: ( rule__XCastedExpression__Group_1__0 )*
+            loop82:
             do {
-                int alt81=2;
-                int LA81_0 = input.LA(1);
+                int alt82=2;
+                int LA82_0 = input.LA(1);
 
-                if ( (LA81_0==105) ) {
-                    int LA81_2 = input.LA(2);
+                if ( (LA82_0==105) ) {
+                    int LA82_2 = input.LA(2);
 
-                    if ( (synpred140_InternalPerspectiveDsl()) ) {
-                        alt81=1;
+                    if ( (synpred141_InternalPerspectiveDsl()) ) {
+                        alt82=1;
                     }
 
 
                 }
 
 
-                switch (alt81) {
+                switch (alt82) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:11952:3: rule__XCastedExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:12000:3: rule__XCastedExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_92);
             	    rule__XCastedExpression__Group_1__0();
@@ -39768,7 +39953,7 @@
             	    break;
 
             	default :
-            	    break loop81;
+            	    break loop82;
                 }
             } while (true);
 
@@ -39797,14 +39982,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:11961:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:12009: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 {
-            // InternalPerspectiveDsl.g:11965:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:11966:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+            // InternalPerspectiveDsl.g:12013:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:12014:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
             {
             pushFollow(FOLLOW_79);
             rule__XCastedExpression__Group_1__0__Impl();
@@ -39835,23 +40020,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:11973:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12021: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 {
-            // InternalPerspectiveDsl.g:11977:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11978:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12025:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12026:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11978:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:11979:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:12026:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12027:2: ( rule__XCastedExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:11980:2: ( rule__XCastedExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:11980:3: rule__XCastedExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:12028:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:12028:3: rule__XCastedExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0();
@@ -39886,14 +40071,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:11988:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:12036: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 {
-            // InternalPerspectiveDsl.g:11992:1: ( rule__XCastedExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:11993:2: rule__XCastedExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:12040:1: ( rule__XCastedExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:12041:2: rule__XCastedExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1__1__Impl();
@@ -39919,23 +40104,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:11999:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:12047: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 {
-            // InternalPerspectiveDsl.g:12003:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:12004:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:12051:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:12052:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:12004:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:12005:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalPerspectiveDsl.g:12052:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:12053:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:12006:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
-            // InternalPerspectiveDsl.g:12006:3: rule__XCastedExpression__TypeAssignment_1_1
+            // InternalPerspectiveDsl.g:12054:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalPerspectiveDsl.g:12054:3: rule__XCastedExpression__TypeAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__TypeAssignment_1_1();
@@ -39970,14 +40155,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:12015:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:12063: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 {
-            // InternalPerspectiveDsl.g:12019:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:12020:2: rule__XCastedExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:12067:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:12068:2: rule__XCastedExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0__Impl();
@@ -40003,23 +40188,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:12026:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12074: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 {
-            // InternalPerspectiveDsl.g:12030:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12031:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12078:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12079:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12031:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:12032:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:12079:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12080:2: ( rule__XCastedExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12033:2: ( rule__XCastedExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:12033:3: rule__XCastedExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:12081:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:12081:3: rule__XCastedExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__0();
@@ -40054,14 +40239,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:12042:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:12090: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 {
-            // InternalPerspectiveDsl.g:12046:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:12047:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:12094:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:12095:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_91);
             rule__XCastedExpression__Group_1_0_0__0__Impl();
@@ -40092,23 +40277,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:12054:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:12102: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 {
-            // InternalPerspectiveDsl.g:12058:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:12059:1: ( () )
+            // InternalPerspectiveDsl.g:12106:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:12107:1: ( () )
             {
-            // InternalPerspectiveDsl.g:12059:1: ( () )
-            // InternalPerspectiveDsl.g:12060:2: ()
+            // InternalPerspectiveDsl.g:12107:1: ( () )
+            // InternalPerspectiveDsl.g:12108:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12061:2: ()
-            // InternalPerspectiveDsl.g:12061:3: 
+            // InternalPerspectiveDsl.g:12109:2: ()
+            // InternalPerspectiveDsl.g:12109:3: 
             {
             }
 
@@ -40133,14 +40318,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:12069:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:12117: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 {
-            // InternalPerspectiveDsl.g:12073:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:12074:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:12121:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:12122:2: rule__XCastedExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__1__Impl();
@@ -40166,17 +40351,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:12080:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+    // InternalPerspectiveDsl.g:12128: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 {
-            // InternalPerspectiveDsl.g:12084:1: ( ( 'as' ) )
-            // InternalPerspectiveDsl.g:12085:1: ( 'as' )
+            // InternalPerspectiveDsl.g:12132:1: ( ( 'as' ) )
+            // InternalPerspectiveDsl.g:12133:1: ( 'as' )
             {
-            // InternalPerspectiveDsl.g:12085:1: ( 'as' )
-            // InternalPerspectiveDsl.g:12086:2: 'as'
+            // InternalPerspectiveDsl.g:12133:1: ( 'as' )
+            // InternalPerspectiveDsl.g:12134:2: 'as'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
@@ -40207,14 +40392,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0"
-    // InternalPerspectiveDsl.g:12096:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
+    // InternalPerspectiveDsl.g:12144: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 {
-            // InternalPerspectiveDsl.g:12100:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
-            // InternalPerspectiveDsl.g:12101:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
+            // InternalPerspectiveDsl.g:12148:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
+            // InternalPerspectiveDsl.g:12149:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
             {
             pushFollow(FOLLOW_93);
             rule__XPostfixOperation__Group__0__Impl();
@@ -40245,17 +40430,17 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
-    // InternalPerspectiveDsl.g:12108:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+    // InternalPerspectiveDsl.g:12156:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
     public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12112:1: ( ( ruleXMemberFeatureCall ) )
-            // InternalPerspectiveDsl.g:12113:1: ( ruleXMemberFeatureCall )
+            // InternalPerspectiveDsl.g:12160:1: ( ( ruleXMemberFeatureCall ) )
+            // InternalPerspectiveDsl.g:12161:1: ( ruleXMemberFeatureCall )
             {
-            // InternalPerspectiveDsl.g:12113:1: ( ruleXMemberFeatureCall )
-            // InternalPerspectiveDsl.g:12114:2: ruleXMemberFeatureCall
+            // InternalPerspectiveDsl.g:12161:1: ( ruleXMemberFeatureCall )
+            // InternalPerspectiveDsl.g:12162:2: ruleXMemberFeatureCall
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
@@ -40290,14 +40475,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1"
-    // InternalPerspectiveDsl.g:12123:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:12171:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
     public final void rule__XPostfixOperation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12127:1: ( rule__XPostfixOperation__Group__1__Impl )
-            // InternalPerspectiveDsl.g:12128:2: rule__XPostfixOperation__Group__1__Impl
+            // InternalPerspectiveDsl.g:12175:1: ( rule__XPostfixOperation__Group__1__Impl )
+            // InternalPerspectiveDsl.g:12176:2: rule__XPostfixOperation__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__1__Impl();
@@ -40323,42 +40508,42 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
-    // InternalPerspectiveDsl.g:12134:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:12182: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 {
-            // InternalPerspectiveDsl.g:12138:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:12139:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:12186:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:12187:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:12139:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:12140:2: ( rule__XPostfixOperation__Group_1__0 )?
+            // InternalPerspectiveDsl.g:12187:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:12188:2: ( rule__XPostfixOperation__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:12141:2: ( rule__XPostfixOperation__Group_1__0 )?
-            int alt82=2;
-            int LA82_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:12189:2: ( rule__XPostfixOperation__Group_1__0 )?
+            int alt83=2;
+            int LA83_0 = input.LA(1);
 
-            if ( (LA82_0==41) ) {
-                int LA82_1 = input.LA(2);
+            if ( (LA83_0==41) ) {
+                int LA83_1 = input.LA(2);
 
-                if ( (synpred141_InternalPerspectiveDsl()) ) {
-                    alt82=1;
+                if ( (synpred142_InternalPerspectiveDsl()) ) {
+                    alt83=1;
                 }
             }
-            else if ( (LA82_0==42) ) {
-                int LA82_2 = input.LA(2);
+            else if ( (LA83_0==42) ) {
+                int LA83_2 = input.LA(2);
 
-                if ( (synpred141_InternalPerspectiveDsl()) ) {
-                    alt82=1;
+                if ( (synpred142_InternalPerspectiveDsl()) ) {
+                    alt83=1;
                 }
             }
-            switch (alt82) {
+            switch (alt83) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12141:3: rule__XPostfixOperation__Group_1__0
+                    // InternalPerspectiveDsl.g:12189:3: rule__XPostfixOperation__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XPostfixOperation__Group_1__0();
@@ -40396,14 +40581,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0"
-    // InternalPerspectiveDsl.g:12150:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
+    // InternalPerspectiveDsl.g:12198: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 {
-            // InternalPerspectiveDsl.g:12154:1: ( rule__XPostfixOperation__Group_1__0__Impl )
-            // InternalPerspectiveDsl.g:12155:2: rule__XPostfixOperation__Group_1__0__Impl
+            // InternalPerspectiveDsl.g:12202:1: ( rule__XPostfixOperation__Group_1__0__Impl )
+            // InternalPerspectiveDsl.g:12203:2: rule__XPostfixOperation__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1__0__Impl();
@@ -40429,23 +40614,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:12161:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12209: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 {
-            // InternalPerspectiveDsl.g:12165:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12166:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12213:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12214:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12166:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:12167:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:12214:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12215:2: ( rule__XPostfixOperation__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:12168:2: ( rule__XPostfixOperation__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:12168:3: rule__XPostfixOperation__Group_1_0__0
+            // InternalPerspectiveDsl.g:12216:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:12216:3: rule__XPostfixOperation__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__0();
@@ -40480,14 +40665,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
-    // InternalPerspectiveDsl.g:12177:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:12225: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 {
-            // InternalPerspectiveDsl.g:12181:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:12182:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
+            // InternalPerspectiveDsl.g:12229:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:12230:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
             {
             pushFollow(FOLLOW_93);
             rule__XPostfixOperation__Group_1_0__0__Impl();
@@ -40518,23 +40703,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:12189:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:12237:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
     public final void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12193:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:12194:1: ( () )
+            // InternalPerspectiveDsl.g:12241:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:12242:1: ( () )
             {
-            // InternalPerspectiveDsl.g:12194:1: ( () )
-            // InternalPerspectiveDsl.g:12195:2: ()
+            // InternalPerspectiveDsl.g:12242:1: ( () )
+            // InternalPerspectiveDsl.g:12243:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12196:2: ()
-            // InternalPerspectiveDsl.g:12196:3: 
+            // InternalPerspectiveDsl.g:12244:2: ()
+            // InternalPerspectiveDsl.g:12244:3: 
             {
             }
 
@@ -40559,14 +40744,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
-    // InternalPerspectiveDsl.g:12204:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:12252: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 {
-            // InternalPerspectiveDsl.g:12208:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:12209:2: rule__XPostfixOperation__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:12256:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:12257:2: rule__XPostfixOperation__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__1__Impl();
@@ -40592,23 +40777,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:12215:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:12263: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 {
-            // InternalPerspectiveDsl.g:12219:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:12220:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:12267:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:12268:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:12220:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:12221:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:12268:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:12269:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:12222:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:12222:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
+            // InternalPerspectiveDsl.g:12270:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:12270:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__FeatureAssignment_1_0_1();
@@ -40643,14 +40828,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0"
-    // InternalPerspectiveDsl.g:12231:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+    // InternalPerspectiveDsl.g:12279: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 {
-            // InternalPerspectiveDsl.g:12235:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
-            // InternalPerspectiveDsl.g:12236:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+            // InternalPerspectiveDsl.g:12283:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+            // InternalPerspectiveDsl.g:12284:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
             {
             pushFollow(FOLLOW_94);
             rule__XMemberFeatureCall__Group__0__Impl();
@@ -40681,17 +40866,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
-    // InternalPerspectiveDsl.g:12243:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+    // InternalPerspectiveDsl.g:12291:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
     public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12247:1: ( ( ruleXPrimaryExpression ) )
-            // InternalPerspectiveDsl.g:12248:1: ( ruleXPrimaryExpression )
+            // InternalPerspectiveDsl.g:12295:1: ( ( ruleXPrimaryExpression ) )
+            // InternalPerspectiveDsl.g:12296:1: ( ruleXPrimaryExpression )
             {
-            // InternalPerspectiveDsl.g:12248:1: ( ruleXPrimaryExpression )
-            // InternalPerspectiveDsl.g:12249:2: ruleXPrimaryExpression
+            // InternalPerspectiveDsl.g:12296:1: ( ruleXPrimaryExpression )
+            // InternalPerspectiveDsl.g:12297:2: ruleXPrimaryExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
@@ -40726,14 +40911,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1"
-    // InternalPerspectiveDsl.g:12258:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:12306:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
     public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12262:1: ( rule__XMemberFeatureCall__Group__1__Impl )
-            // InternalPerspectiveDsl.g:12263:2: rule__XMemberFeatureCall__Group__1__Impl
+            // InternalPerspectiveDsl.g:12310:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+            // InternalPerspectiveDsl.g:12311:2: rule__XMemberFeatureCall__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__1__Impl();
@@ -40759,43 +40944,32 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
-    // InternalPerspectiveDsl.g:12269:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+    // InternalPerspectiveDsl.g:12317:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
     public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12273:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
-            // InternalPerspectiveDsl.g:12274:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:12321:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+            // InternalPerspectiveDsl.g:12322:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
             {
-            // InternalPerspectiveDsl.g:12274:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
-            // InternalPerspectiveDsl.g:12275:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            // InternalPerspectiveDsl.g:12322:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:12323:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:12276:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
-            loop83:
+            // InternalPerspectiveDsl.g:12324:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            loop84:
             do {
-                int alt83=2;
+                int alt84=2;
                 switch ( input.LA(1) ) {
                 case 43:
                     {
-                    int LA83_2 = input.LA(2);
+                    int LA84_2 = input.LA(2);
 
-                    if ( (synpred142_InternalPerspectiveDsl()) ) {
-                        alt83=1;
-                    }
-
-
-                    }
-                    break;
-                case 129:
-                    {
-                    int LA83_3 = input.LA(2);
-
-                    if ( (synpred142_InternalPerspectiveDsl()) ) {
-                        alt83=1;
+                    if ( (synpred143_InternalPerspectiveDsl()) ) {
+                        alt84=1;
                     }
 
 
@@ -40803,10 +40977,21 @@
                     break;
                 case 130:
                     {
-                    int LA83_4 = input.LA(2);
+                    int LA84_3 = input.LA(2);
 
-                    if ( (synpred142_InternalPerspectiveDsl()) ) {
-                        alt83=1;
+                    if ( (synpred143_InternalPerspectiveDsl()) ) {
+                        alt84=1;
+                    }
+
+
+                    }
+                    break;
+                case 131:
+                    {
+                    int LA84_4 = input.LA(2);
+
+                    if ( (synpred143_InternalPerspectiveDsl()) ) {
+                        alt84=1;
                     }
 
 
@@ -40815,9 +41000,9 @@
 
                 }
 
-                switch (alt83) {
+                switch (alt84) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:12276:3: rule__XMemberFeatureCall__Alternatives_1
+            	    // InternalPerspectiveDsl.g:12324:3: rule__XMemberFeatureCall__Alternatives_1
             	    {
             	    pushFollow(FOLLOW_95);
             	    rule__XMemberFeatureCall__Alternatives_1();
@@ -40829,7 +41014,7 @@
             	    break;
 
             	default :
-            	    break loop83;
+            	    break loop84;
                 }
             } while (true);
 
@@ -40858,14 +41043,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
-    // InternalPerspectiveDsl.g:12285:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:12333: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 {
-            // InternalPerspectiveDsl.g:12289:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:12290:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+            // InternalPerspectiveDsl.g:12337:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:12338:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
             {
             pushFollow(FOLLOW_62);
             rule__XMemberFeatureCall__Group_1_0__0__Impl();
@@ -40896,23 +41081,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:12297:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12345: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 {
-            // InternalPerspectiveDsl.g:12301:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12302:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12349:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12350:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12302:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:12303:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:12350:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12351:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12304:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:12304:3: rule__XMemberFeatureCall__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:12352:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:12352:3: rule__XMemberFeatureCall__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0();
@@ -40947,14 +41132,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
-    // InternalPerspectiveDsl.g:12312:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:12360: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 {
-            // InternalPerspectiveDsl.g:12316:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:12317:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:12364:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:12365:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0__1__Impl();
@@ -40980,23 +41165,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:12323:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:12371: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 {
-            // InternalPerspectiveDsl.g:12327:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:12328:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:12375:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:12376:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:12328:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:12329:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:12376:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:12377:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:12330:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:12330:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+            // InternalPerspectiveDsl.g:12378:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:12378:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ValueAssignment_1_0_1();
@@ -41031,14 +41216,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:12339:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:12387: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 {
-            // InternalPerspectiveDsl.g:12343:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:12344:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+            // InternalPerspectiveDsl.g:12391:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:12392:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
@@ -41064,23 +41249,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:12350:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12398: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 {
-            // InternalPerspectiveDsl.g:12354:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12355:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12402:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12403:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12355:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:12356:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:12403:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12404:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12357:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
-            // InternalPerspectiveDsl.g:12357:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
+            // InternalPerspectiveDsl.g:12405:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:12405:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__0();
@@ -41115,14 +41300,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
-    // InternalPerspectiveDsl.g:12366: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 ;
+    // InternalPerspectiveDsl.g:12414: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 {
-            // InternalPerspectiveDsl.g:12370:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
-            // InternalPerspectiveDsl.g:12371:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+            // InternalPerspectiveDsl.g:12418:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+            // InternalPerspectiveDsl.g:12419:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
             {
             pushFollow(FOLLOW_96);
             rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
@@ -41153,23 +41338,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:12378:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:12426: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 {
-            // InternalPerspectiveDsl.g:12382:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:12383:1: ( () )
+            // InternalPerspectiveDsl.g:12430:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:12431:1: ( () )
             {
-            // InternalPerspectiveDsl.g:12383:1: ( () )
-            // InternalPerspectiveDsl.g:12384:2: ()
+            // InternalPerspectiveDsl.g:12431:1: ( () )
+            // InternalPerspectiveDsl.g:12432:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12385:2: ()
-            // InternalPerspectiveDsl.g:12385:3: 
+            // InternalPerspectiveDsl.g:12433:2: ()
+            // InternalPerspectiveDsl.g:12433:3: 
             {
             }
 
@@ -41194,14 +41379,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
-    // InternalPerspectiveDsl.g:12393: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 ;
+    // InternalPerspectiveDsl.g:12441: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 {
-            // InternalPerspectiveDsl.g:12397:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
-            // InternalPerspectiveDsl.g:12398:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+            // InternalPerspectiveDsl.g:12445:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+            // InternalPerspectiveDsl.g:12446:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
             {
             pushFollow(FOLLOW_67);
             rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
@@ -41232,23 +41417,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:12405:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:12453: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 {
-            // InternalPerspectiveDsl.g:12409:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:12410:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:12457:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:12458:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:12410:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
-            // InternalPerspectiveDsl.g:12411:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalPerspectiveDsl.g:12458:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:12459:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:12412:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
-            // InternalPerspectiveDsl.g:12412:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+            // InternalPerspectiveDsl.g:12460:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalPerspectiveDsl.g:12460:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
@@ -41283,14 +41468,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
-    // InternalPerspectiveDsl.g:12420: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 ;
+    // InternalPerspectiveDsl.g:12468: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 {
-            // InternalPerspectiveDsl.g:12424:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
-            // InternalPerspectiveDsl.g:12425:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+            // InternalPerspectiveDsl.g:12472:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+            // InternalPerspectiveDsl.g:12473:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
             {
             pushFollow(FOLLOW_63);
             rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
@@ -41321,23 +41506,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:12432:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:12480: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 {
-            // InternalPerspectiveDsl.g:12436:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
-            // InternalPerspectiveDsl.g:12437:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalPerspectiveDsl.g:12484:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+            // InternalPerspectiveDsl.g:12485:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:12437:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
-            // InternalPerspectiveDsl.g:12438:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalPerspectiveDsl.g:12485:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalPerspectiveDsl.g:12486:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
             }
-            // InternalPerspectiveDsl.g:12439:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
-            // InternalPerspectiveDsl.g:12439:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+            // InternalPerspectiveDsl.g:12487:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalPerspectiveDsl.g:12487:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
@@ -41372,14 +41557,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
-    // InternalPerspectiveDsl.g:12447:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+    // InternalPerspectiveDsl.g:12495: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 {
-            // InternalPerspectiveDsl.g:12451:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
-            // InternalPerspectiveDsl.g:12452:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+            // InternalPerspectiveDsl.g:12499:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+            // InternalPerspectiveDsl.g:12500:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
@@ -41405,17 +41590,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
-    // InternalPerspectiveDsl.g:12458:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+    // InternalPerspectiveDsl.g:12506: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 {
-            // InternalPerspectiveDsl.g:12462:1: ( ( ruleOpSingleAssign ) )
-            // InternalPerspectiveDsl.g:12463:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:12510:1: ( ( ruleOpSingleAssign ) )
+            // InternalPerspectiveDsl.g:12511:1: ( ruleOpSingleAssign )
             {
-            // InternalPerspectiveDsl.g:12463:1: ( ruleOpSingleAssign )
-            // InternalPerspectiveDsl.g:12464:2: ruleOpSingleAssign
+            // InternalPerspectiveDsl.g:12511:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:12512:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
@@ -41450,14 +41635,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
-    // InternalPerspectiveDsl.g:12474:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:12522: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 {
-            // InternalPerspectiveDsl.g:12478:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:12479:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+            // InternalPerspectiveDsl.g:12526:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:12527:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
             {
             pushFollow(FOLLOW_97);
             rule__XMemberFeatureCall__Group_1_1__0__Impl();
@@ -41488,23 +41673,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:12486:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12534: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 {
-            // InternalPerspectiveDsl.g:12490:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12491:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12538:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12539:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12491:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
-            // InternalPerspectiveDsl.g:12492:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:12539:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12540:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:12493:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
-            // InternalPerspectiveDsl.g:12493:3: rule__XMemberFeatureCall__Group_1_1_0__0
+            // InternalPerspectiveDsl.g:12541:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:12541:3: rule__XMemberFeatureCall__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0();
@@ -41539,14 +41724,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
-    // InternalPerspectiveDsl.g:12501:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+    // InternalPerspectiveDsl.g:12549: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 {
-            // InternalPerspectiveDsl.g:12505:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
-            // InternalPerspectiveDsl.g:12506:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+            // InternalPerspectiveDsl.g:12553:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+            // InternalPerspectiveDsl.g:12554:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
             {
             pushFollow(FOLLOW_97);
             rule__XMemberFeatureCall__Group_1_1__1__Impl();
@@ -41577,31 +41762,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:12513:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:12561: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 {
-            // InternalPerspectiveDsl.g:12517:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:12518:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalPerspectiveDsl.g:12565:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:12566:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:12518:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
-            // InternalPerspectiveDsl.g:12519:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            // InternalPerspectiveDsl.g:12566:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalPerspectiveDsl.g:12567:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:12520:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
-            int alt84=2;
-            int LA84_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:12568:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( (LA84_0==27) ) {
-                alt84=1;
+            if ( (LA85_0==27) ) {
+                alt85=1;
             }
-            switch (alt84) {
+            switch (alt85) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12520:3: rule__XMemberFeatureCall__Group_1_1_1__0
+                    // InternalPerspectiveDsl.g:12568:3: rule__XMemberFeatureCall__Group_1_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_1__0();
@@ -41639,14 +41824,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
-    // InternalPerspectiveDsl.g:12528:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+    // InternalPerspectiveDsl.g:12576: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 {
-            // InternalPerspectiveDsl.g:12532:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
-            // InternalPerspectiveDsl.g:12533:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+            // InternalPerspectiveDsl.g:12580:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+            // InternalPerspectiveDsl.g:12581:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
             {
             pushFollow(FOLLOW_98);
             rule__XMemberFeatureCall__Group_1_1__2__Impl();
@@ -41677,23 +41862,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
-    // InternalPerspectiveDsl.g:12540:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+    // InternalPerspectiveDsl.g:12588: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 {
-            // InternalPerspectiveDsl.g:12544:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
-            // InternalPerspectiveDsl.g:12545:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalPerspectiveDsl.g:12592:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+            // InternalPerspectiveDsl.g:12593:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
             {
-            // InternalPerspectiveDsl.g:12545:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
-            // InternalPerspectiveDsl.g:12546:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalPerspectiveDsl.g:12593:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalPerspectiveDsl.g:12594:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
             }
-            // InternalPerspectiveDsl.g:12547:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
-            // InternalPerspectiveDsl.g:12547:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+            // InternalPerspectiveDsl.g:12595:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalPerspectiveDsl.g:12595:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
@@ -41728,14 +41913,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
-    // InternalPerspectiveDsl.g:12555:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+    // InternalPerspectiveDsl.g:12603: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 {
-            // InternalPerspectiveDsl.g:12559:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
-            // InternalPerspectiveDsl.g:12560:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+            // InternalPerspectiveDsl.g:12607:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+            // InternalPerspectiveDsl.g:12608:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
             {
             pushFollow(FOLLOW_98);
             rule__XMemberFeatureCall__Group_1_1__3__Impl();
@@ -41766,27 +41951,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
-    // InternalPerspectiveDsl.g:12567:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:12615: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 {
-            // InternalPerspectiveDsl.g:12571:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
-            // InternalPerspectiveDsl.g:12572:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalPerspectiveDsl.g:12619:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+            // InternalPerspectiveDsl.g:12620:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:12572:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
-            // InternalPerspectiveDsl.g:12573:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            // InternalPerspectiveDsl.g:12620:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalPerspectiveDsl.g:12621:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
             }
-            // InternalPerspectiveDsl.g:12574:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
-            int alt85=2;
-            alt85 = dfa85.predict(input);
-            switch (alt85) {
+            // InternalPerspectiveDsl.g:12622:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            int alt86=2;
+            alt86 = dfa86.predict(input);
+            switch (alt86) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12574:3: rule__XMemberFeatureCall__Group_1_1_3__0
+                    // InternalPerspectiveDsl.g:12622:3: rule__XMemberFeatureCall__Group_1_1_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -41824,14 +42009,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
-    // InternalPerspectiveDsl.g:12582:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+    // InternalPerspectiveDsl.g:12630: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 {
-            // InternalPerspectiveDsl.g:12586:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
-            // InternalPerspectiveDsl.g:12587:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+            // InternalPerspectiveDsl.g:12634:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+            // InternalPerspectiveDsl.g:12635:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1__4__Impl();
@@ -41857,27 +42042,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
-    // InternalPerspectiveDsl.g:12593:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+    // InternalPerspectiveDsl.g:12641: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 {
-            // InternalPerspectiveDsl.g:12597:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
-            // InternalPerspectiveDsl.g:12598:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalPerspectiveDsl.g:12645:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+            // InternalPerspectiveDsl.g:12646:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
             {
-            // InternalPerspectiveDsl.g:12598:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
-            // InternalPerspectiveDsl.g:12599:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            // InternalPerspectiveDsl.g:12646:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalPerspectiveDsl.g:12647:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
             }
-            // InternalPerspectiveDsl.g:12600:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
-            int alt86=2;
-            alt86 = dfa86.predict(input);
-            switch (alt86) {
+            // InternalPerspectiveDsl.g:12648:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            int alt87=2;
+            alt87 = dfa87.predict(input);
+            switch (alt87) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12600:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+                    // InternalPerspectiveDsl.g:12648:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -41915,14 +42100,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
-    // InternalPerspectiveDsl.g:12609:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:12657: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 {
-            // InternalPerspectiveDsl.g:12613:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:12614:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+            // InternalPerspectiveDsl.g:12661:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:12662:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
@@ -41948,23 +42133,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:12620:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12668: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 {
-            // InternalPerspectiveDsl.g:12624:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12625:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12672:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12673:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12625:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:12626:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:12673:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12674:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12627:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
-            // InternalPerspectiveDsl.g:12627:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
+            // InternalPerspectiveDsl.g:12675:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:12675:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__0();
@@ -41999,14 +42184,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
-    // InternalPerspectiveDsl.g:12636: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 ;
+    // InternalPerspectiveDsl.g:12684: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 {
-            // InternalPerspectiveDsl.g:12640:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
-            // InternalPerspectiveDsl.g:12641:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+            // InternalPerspectiveDsl.g:12688:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+            // InternalPerspectiveDsl.g:12689:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
             {
             pushFollow(FOLLOW_94);
             rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
@@ -42037,23 +42222,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:12648:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:12696: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 {
-            // InternalPerspectiveDsl.g:12652:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:12653:1: ( () )
+            // InternalPerspectiveDsl.g:12700:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:12701:1: ( () )
             {
-            // InternalPerspectiveDsl.g:12653:1: ( () )
-            // InternalPerspectiveDsl.g:12654:2: ()
+            // InternalPerspectiveDsl.g:12701:1: ( () )
+            // InternalPerspectiveDsl.g:12702:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12655:2: ()
-            // InternalPerspectiveDsl.g:12655:3: 
+            // InternalPerspectiveDsl.g:12703:2: ()
+            // InternalPerspectiveDsl.g:12703:3: 
             {
             }
 
@@ -42078,14 +42263,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
-    // InternalPerspectiveDsl.g:12663:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:12711: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 {
-            // InternalPerspectiveDsl.g:12667:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:12668:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:12715:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:12716:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
@@ -42111,23 +42296,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:12674:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:12722: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 {
-            // InternalPerspectiveDsl.g:12678:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:12679:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:12726:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:12727:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:12679:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:12680:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:12727:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:12728:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:12681:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
-            // InternalPerspectiveDsl.g:12681:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+            // InternalPerspectiveDsl.g:12729:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:12729:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
@@ -42162,14 +42347,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
-    // InternalPerspectiveDsl.g:12690:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
+    // InternalPerspectiveDsl.g:12738: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 {
-            // InternalPerspectiveDsl.g:12694:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
-            // InternalPerspectiveDsl.g:12695:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+            // InternalPerspectiveDsl.g:12742:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+            // InternalPerspectiveDsl.g:12743:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
             {
             pushFollow(FOLLOW_99);
             rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
@@ -42200,17 +42385,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:12702:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:12750: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 {
-            // InternalPerspectiveDsl.g:12706:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:12707:1: ( '<' )
+            // InternalPerspectiveDsl.g:12754:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:12755:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:12707:1: ( '<' )
-            // InternalPerspectiveDsl.g:12708:2: '<'
+            // InternalPerspectiveDsl.g:12755:1: ( '<' )
+            // InternalPerspectiveDsl.g:12756:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
@@ -42241,14 +42426,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
-    // InternalPerspectiveDsl.g:12717:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
+    // InternalPerspectiveDsl.g:12765: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 {
-            // InternalPerspectiveDsl.g:12721:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
-            // InternalPerspectiveDsl.g:12722:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+            // InternalPerspectiveDsl.g:12769:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+            // InternalPerspectiveDsl.g:12770:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
             {
             pushFollow(FOLLOW_100);
             rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
@@ -42279,23 +42464,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:12729:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:12777: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 {
-            // InternalPerspectiveDsl.g:12733:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:12734:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:12781:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:12782:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:12734:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:12735:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:12782:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:12783:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:12736:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
-            // InternalPerspectiveDsl.g:12736:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+            // InternalPerspectiveDsl.g:12784:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:12784:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
@@ -42330,14 +42515,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
-    // InternalPerspectiveDsl.g:12744:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
+    // InternalPerspectiveDsl.g:12792: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 {
-            // InternalPerspectiveDsl.g:12748:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
-            // InternalPerspectiveDsl.g:12749:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+            // InternalPerspectiveDsl.g:12796:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+            // InternalPerspectiveDsl.g:12797:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
             {
             pushFollow(FOLLOW_100);
             rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
@@ -42368,35 +42553,35 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
-    // InternalPerspectiveDsl.g:12756:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:12804: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 {
-            // InternalPerspectiveDsl.g:12760:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
-            // InternalPerspectiveDsl.g:12761:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalPerspectiveDsl.g:12808:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+            // InternalPerspectiveDsl.g:12809:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:12761:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
-            // InternalPerspectiveDsl.g:12762:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            // InternalPerspectiveDsl.g:12809:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalPerspectiveDsl.g:12810:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
             }
-            // InternalPerspectiveDsl.g:12763:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
-            loop87:
+            // InternalPerspectiveDsl.g:12811:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            loop88:
             do {
-                int alt87=2;
-                int LA87_0 = input.LA(1);
+                int alt88=2;
+                int LA88_0 = input.LA(1);
 
-                if ( (LA87_0==100) ) {
-                    alt87=1;
+                if ( (LA88_0==100) ) {
+                    alt88=1;
                 }
 
 
-                switch (alt87) {
+                switch (alt88) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:12763:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
+            	    // InternalPerspectiveDsl.g:12811:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XMemberFeatureCall__Group_1_1_1_2__0();
@@ -42408,7 +42593,7 @@
             	    break;
 
             	default :
-            	    break loop87;
+            	    break loop88;
                 }
             } while (true);
 
@@ -42437,14 +42622,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
-    // InternalPerspectiveDsl.g:12771:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+    // InternalPerspectiveDsl.g:12819: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 {
-            // InternalPerspectiveDsl.g:12775:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
-            // InternalPerspectiveDsl.g:12776:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+            // InternalPerspectiveDsl.g:12823:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+            // InternalPerspectiveDsl.g:12824:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
@@ -42470,17 +42655,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
-    // InternalPerspectiveDsl.g:12782:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:12830: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 {
-            // InternalPerspectiveDsl.g:12786:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:12787:1: ( '>' )
+            // InternalPerspectiveDsl.g:12834:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:12835:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:12787:1: ( '>' )
-            // InternalPerspectiveDsl.g:12788:2: '>'
+            // InternalPerspectiveDsl.g:12835:1: ( '>' )
+            // InternalPerspectiveDsl.g:12836:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
@@ -42511,14 +42696,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
-    // InternalPerspectiveDsl.g:12798: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 ;
+    // InternalPerspectiveDsl.g:12846: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 {
-            // InternalPerspectiveDsl.g:12802:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
-            // InternalPerspectiveDsl.g:12803:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+            // InternalPerspectiveDsl.g:12850:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+            // InternalPerspectiveDsl.g:12851:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
             {
             pushFollow(FOLLOW_99);
             rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
@@ -42549,17 +42734,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
-    // InternalPerspectiveDsl.g:12810:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:12858: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 {
-            // InternalPerspectiveDsl.g:12814:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:12815:1: ( ',' )
+            // InternalPerspectiveDsl.g:12862:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:12863:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:12815:1: ( ',' )
-            // InternalPerspectiveDsl.g:12816:2: ','
+            // InternalPerspectiveDsl.g:12863:1: ( ',' )
+            // InternalPerspectiveDsl.g:12864:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
@@ -42590,14 +42775,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
-    // InternalPerspectiveDsl.g:12825:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+    // InternalPerspectiveDsl.g:12873: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 {
-            // InternalPerspectiveDsl.g:12829:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
-            // InternalPerspectiveDsl.g:12830:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+            // InternalPerspectiveDsl.g:12877:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+            // InternalPerspectiveDsl.g:12878:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
@@ -42623,23 +42808,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
-    // InternalPerspectiveDsl.g:12836:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:12884: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 {
-            // InternalPerspectiveDsl.g:12840:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
-            // InternalPerspectiveDsl.g:12841:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalPerspectiveDsl.g:12888:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+            // InternalPerspectiveDsl.g:12889:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:12841:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
-            // InternalPerspectiveDsl.g:12842:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalPerspectiveDsl.g:12889:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalPerspectiveDsl.g:12890:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
             }
-            // InternalPerspectiveDsl.g:12843:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
-            // InternalPerspectiveDsl.g:12843:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+            // InternalPerspectiveDsl.g:12891:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalPerspectiveDsl.g:12891:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
@@ -42674,14 +42859,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
-    // InternalPerspectiveDsl.g:12852:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
+    // InternalPerspectiveDsl.g:12900: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 {
-            // InternalPerspectiveDsl.g:12856:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
-            // InternalPerspectiveDsl.g:12857:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+            // InternalPerspectiveDsl.g:12904:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+            // InternalPerspectiveDsl.g:12905:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
             {
             pushFollow(FOLLOW_101);
             rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
@@ -42712,23 +42897,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
-    // InternalPerspectiveDsl.g:12864:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:12912: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 {
-            // InternalPerspectiveDsl.g:12868:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
-            // InternalPerspectiveDsl.g:12869:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalPerspectiveDsl.g:12916:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+            // InternalPerspectiveDsl.g:12917:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:12869:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
-            // InternalPerspectiveDsl.g:12870:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalPerspectiveDsl.g:12917:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalPerspectiveDsl.g:12918:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
             }
-            // InternalPerspectiveDsl.g:12871:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
-            // InternalPerspectiveDsl.g:12871:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+            // InternalPerspectiveDsl.g:12919:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalPerspectiveDsl.g:12919:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
@@ -42763,14 +42948,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
-    // InternalPerspectiveDsl.g:12879:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
+    // InternalPerspectiveDsl.g:12927: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 {
-            // InternalPerspectiveDsl.g:12883:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
-            // InternalPerspectiveDsl.g:12884:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+            // InternalPerspectiveDsl.g:12931:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+            // InternalPerspectiveDsl.g:12932:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
             {
             pushFollow(FOLLOW_101);
             rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
@@ -42801,31 +42986,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
-    // InternalPerspectiveDsl.g:12891:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+    // InternalPerspectiveDsl.g:12939: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 {
-            // InternalPerspectiveDsl.g:12895:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
-            // InternalPerspectiveDsl.g:12896:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalPerspectiveDsl.g:12943:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+            // InternalPerspectiveDsl.g:12944:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
             {
-            // InternalPerspectiveDsl.g:12896:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
-            // InternalPerspectiveDsl.g:12897:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            // InternalPerspectiveDsl.g:12944:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalPerspectiveDsl.g:12945:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
             }
-            // InternalPerspectiveDsl.g:12898:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
-            int alt88=2;
-            int LA88_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:12946:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( ((LA88_0>=RULE_ID && LA88_0<=RULE_DECIMAL)||LA88_0==27||LA88_0==31||(LA88_0>=34 && LA88_0<=35)||LA88_0==40||(LA88_0>=45 && LA88_0<=50)||LA88_0==54||LA88_0==98||(LA88_0>=102 && LA88_0<=103)||LA88_0==106||LA88_0==108||(LA88_0>=112 && LA88_0<=120)||LA88_0==122||LA88_0==131||LA88_0==133) ) {
-                alt88=1;
+            if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_DECIMAL)||LA89_0==27||LA89_0==31||(LA89_0>=34 && LA89_0<=35)||LA89_0==40||(LA89_0>=45 && LA89_0<=50)||LA89_0==54||LA89_0==98||(LA89_0>=102 && LA89_0<=103)||LA89_0==106||LA89_0==108||(LA89_0>=112 && LA89_0<=120)||LA89_0==122||LA89_0==132||LA89_0==134) ) {
+                alt89=1;
             }
-            switch (alt88) {
+            switch (alt89) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12898:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+                    // InternalPerspectiveDsl.g:12946:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Alternatives_1_1_3_1();
@@ -42863,14 +43048,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
-    // InternalPerspectiveDsl.g:12906:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+    // InternalPerspectiveDsl.g:12954: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 {
-            // InternalPerspectiveDsl.g:12910:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
-            // InternalPerspectiveDsl.g:12911:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+            // InternalPerspectiveDsl.g:12958:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+            // InternalPerspectiveDsl.g:12959:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
@@ -42896,17 +43081,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
-    // InternalPerspectiveDsl.g:12917:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:12965: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 {
-            // InternalPerspectiveDsl.g:12921:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:12922:1: ( ')' )
+            // InternalPerspectiveDsl.g:12969:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:12970:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:12922:1: ( ')' )
-            // InternalPerspectiveDsl.g:12923:2: ')'
+            // InternalPerspectiveDsl.g:12970:1: ( ')' )
+            // InternalPerspectiveDsl.g:12971:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
@@ -42937,14 +43122,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
-    // InternalPerspectiveDsl.g:12933: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 ;
+    // InternalPerspectiveDsl.g:12981: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 {
-            // InternalPerspectiveDsl.g:12937:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
-            // InternalPerspectiveDsl.g:12938:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+            // InternalPerspectiveDsl.g:12985:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+            // InternalPerspectiveDsl.g:12986:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
@@ -42975,23 +43160,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:12945:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:12993: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 {
-            // InternalPerspectiveDsl.g:12949:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
-            // InternalPerspectiveDsl.g:12950:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:12997:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+            // InternalPerspectiveDsl.g:12998:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:12950:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
-            // InternalPerspectiveDsl.g:12951:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalPerspectiveDsl.g:12998:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:12999:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:12952:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
-            // InternalPerspectiveDsl.g:12952:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+            // InternalPerspectiveDsl.g:13000:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalPerspectiveDsl.g:13000:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
@@ -43026,14 +43211,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
-    // InternalPerspectiveDsl.g:12960:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13008: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 {
-            // InternalPerspectiveDsl.g:12964:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:12965:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+            // InternalPerspectiveDsl.g:13012:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:13013:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
@@ -43059,35 +43244,35 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:12971:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:13019: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 {
-            // InternalPerspectiveDsl.g:12975:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:12976:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:13023:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:13024:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:12976:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:12977:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:13024:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:13025: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()); 
             }
-            // InternalPerspectiveDsl.g:12978:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
-            loop89:
+            // InternalPerspectiveDsl.g:13026:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            loop90:
             do {
-                int alt89=2;
-                int LA89_0 = input.LA(1);
+                int alt90=2;
+                int LA90_0 = input.LA(1);
 
-                if ( (LA89_0==100) ) {
-                    alt89=1;
+                if ( (LA90_0==100) ) {
+                    alt90=1;
                 }
 
 
-                switch (alt89) {
+                switch (alt90) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:12978:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+            	    // InternalPerspectiveDsl.g:13026:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
@@ -43099,7 +43284,7 @@
             	    break;
 
             	default :
-            	    break loop89;
+            	    break loop90;
                 }
             } while (true);
 
@@ -43128,14 +43313,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
-    // InternalPerspectiveDsl.g:12987: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 ;
+    // InternalPerspectiveDsl.g:13035: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 {
-            // InternalPerspectiveDsl.g:12991:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
-            // InternalPerspectiveDsl.g:12992:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+            // InternalPerspectiveDsl.g:13039:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+            // InternalPerspectiveDsl.g:13040:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
@@ -43166,17 +43351,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:12999:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:13047: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 {
-            // InternalPerspectiveDsl.g:13003:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:13004:1: ( ',' )
+            // InternalPerspectiveDsl.g:13051:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:13052:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:13004:1: ( ',' )
-            // InternalPerspectiveDsl.g:13005:2: ','
+            // InternalPerspectiveDsl.g:13052:1: ( ',' )
+            // InternalPerspectiveDsl.g:13053:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
@@ -43207,14 +43392,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
-    // InternalPerspectiveDsl.g:13014:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13062: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 {
-            // InternalPerspectiveDsl.g:13018:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:13019:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:13066:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:13067: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();
@@ -43240,23 +43425,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:13025:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:13073: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 {
-            // InternalPerspectiveDsl.g:13029:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:13030:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:13077:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:13078:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:13030:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:13031:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:13078:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:13079: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()); 
             }
-            // InternalPerspectiveDsl.g:13032:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
-            // InternalPerspectiveDsl.g:13032:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+            // InternalPerspectiveDsl.g:13080:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:13080:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
@@ -43291,14 +43476,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0"
-    // InternalPerspectiveDsl.g:13041:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:13089: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 {
-            // InternalPerspectiveDsl.g:13045:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:13046:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+            // InternalPerspectiveDsl.g:13093:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:13094:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__XSetLiteral__Group__0__Impl();
@@ -43329,23 +43514,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13053:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13101:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13057:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13058:1: ( () )
+            // InternalPerspectiveDsl.g:13105:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13106:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13058:1: ( () )
-            // InternalPerspectiveDsl.g:13059:2: ()
+            // InternalPerspectiveDsl.g:13106:1: ( () )
+            // InternalPerspectiveDsl.g:13107:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:13060:2: ()
-            // InternalPerspectiveDsl.g:13060:3: 
+            // InternalPerspectiveDsl.g:13108:2: ()
+            // InternalPerspectiveDsl.g:13108:3: 
             {
             }
 
@@ -43370,14 +43555,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1"
-    // InternalPerspectiveDsl.g:13068:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+    // InternalPerspectiveDsl.g:13116: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 {
-            // InternalPerspectiveDsl.g:13072:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
-            // InternalPerspectiveDsl.g:13073:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+            // InternalPerspectiveDsl.g:13120:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+            // InternalPerspectiveDsl.g:13121:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__XSetLiteral__Group__1__Impl();
@@ -43408,17 +43593,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13080:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:13128:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13084:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:13085:1: ( '#' )
+            // InternalPerspectiveDsl.g:13132:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:13133:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:13085:1: ( '#' )
-            // InternalPerspectiveDsl.g:13086:2: '#'
+            // InternalPerspectiveDsl.g:13133:1: ( '#' )
+            // InternalPerspectiveDsl.g:13134:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
@@ -43449,14 +43634,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2"
-    // InternalPerspectiveDsl.g:13095:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+    // InternalPerspectiveDsl.g:13143: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 {
-            // InternalPerspectiveDsl.g:13099:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
-            // InternalPerspectiveDsl.g:13100:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+            // InternalPerspectiveDsl.g:13147:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+            // InternalPerspectiveDsl.g:13148:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
             {
             pushFollow(FOLLOW_102);
             rule__XSetLiteral__Group__2__Impl();
@@ -43487,17 +43672,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
-    // InternalPerspectiveDsl.g:13107:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:13155:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
     public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13111:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:13112:1: ( '{' )
+            // InternalPerspectiveDsl.g:13159:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:13160:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:13112:1: ( '{' )
-            // InternalPerspectiveDsl.g:13113:2: '{'
+            // InternalPerspectiveDsl.g:13160:1: ( '{' )
+            // InternalPerspectiveDsl.g:13161:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
@@ -43528,14 +43713,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3"
-    // InternalPerspectiveDsl.g:13122:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+    // InternalPerspectiveDsl.g:13170: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 {
-            // InternalPerspectiveDsl.g:13126:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
-            // InternalPerspectiveDsl.g:13127:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+            // InternalPerspectiveDsl.g:13174:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+            // InternalPerspectiveDsl.g:13175:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
             {
             pushFollow(FOLLOW_102);
             rule__XSetLiteral__Group__3__Impl();
@@ -43566,31 +43751,31 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
-    // InternalPerspectiveDsl.g:13134:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:13182: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 {
-            // InternalPerspectiveDsl.g:13138:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:13139:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:13186:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:13187:1: ( ( rule__XSetLiteral__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:13139:1: ( ( rule__XSetLiteral__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:13140:2: ( rule__XSetLiteral__Group_3__0 )?
+            // InternalPerspectiveDsl.g:13187:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:13188:2: ( rule__XSetLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:13141:2: ( rule__XSetLiteral__Group_3__0 )?
-            int alt90=2;
-            int LA90_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:13189:2: ( rule__XSetLiteral__Group_3__0 )?
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( ((LA90_0>=RULE_ID && LA90_0<=RULE_DECIMAL)||LA90_0==27||(LA90_0>=34 && LA90_0<=35)||LA90_0==40||(LA90_0>=45 && LA90_0<=50)||LA90_0==54||LA90_0==98||(LA90_0>=102 && LA90_0<=103)||LA90_0==106||LA90_0==108||(LA90_0>=112 && LA90_0<=120)||LA90_0==122||LA90_0==133) ) {
-                alt90=1;
+            if ( ((LA91_0>=RULE_ID && LA91_0<=RULE_DECIMAL)||LA91_0==27||(LA91_0>=34 && LA91_0<=35)||LA91_0==40||(LA91_0>=45 && LA91_0<=50)||LA91_0==54||LA91_0==98||(LA91_0>=102 && LA91_0<=103)||LA91_0==106||LA91_0==108||(LA91_0>=112 && LA91_0<=120)||LA91_0==122||LA91_0==134) ) {
+                alt91=1;
             }
-            switch (alt90) {
+            switch (alt91) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13141:3: rule__XSetLiteral__Group_3__0
+                    // InternalPerspectiveDsl.g:13189:3: rule__XSetLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSetLiteral__Group_3__0();
@@ -43628,14 +43813,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4"
-    // InternalPerspectiveDsl.g:13149:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:13197:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
     public final void rule__XSetLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13153:1: ( rule__XSetLiteral__Group__4__Impl )
-            // InternalPerspectiveDsl.g:13154:2: rule__XSetLiteral__Group__4__Impl
+            // InternalPerspectiveDsl.g:13201:1: ( rule__XSetLiteral__Group__4__Impl )
+            // InternalPerspectiveDsl.g:13202:2: rule__XSetLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__4__Impl();
@@ -43661,17 +43846,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
-    // InternalPerspectiveDsl.g:13160:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:13208:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
     public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13164:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:13165:1: ( '}' )
+            // InternalPerspectiveDsl.g:13212:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:13213:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:13165:1: ( '}' )
-            // InternalPerspectiveDsl.g:13166:2: '}'
+            // InternalPerspectiveDsl.g:13213:1: ( '}' )
+            // InternalPerspectiveDsl.g:13214:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
@@ -43702,14 +43887,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0"
-    // InternalPerspectiveDsl.g:13176:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+    // InternalPerspectiveDsl.g:13224: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 {
-            // InternalPerspectiveDsl.g:13180:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
-            // InternalPerspectiveDsl.g:13181:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+            // InternalPerspectiveDsl.g:13228:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+            // InternalPerspectiveDsl.g:13229:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
             {
             pushFollow(FOLLOW_60);
             rule__XSetLiteral__Group_3__0__Impl();
@@ -43740,23 +43925,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:13188:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:13236: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 {
-            // InternalPerspectiveDsl.g:13192:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:13193:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:13240:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:13241:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:13193:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:13194:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:13241:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:13242:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:13195:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
-            // InternalPerspectiveDsl.g:13195:3: rule__XSetLiteral__ElementsAssignment_3_0
+            // InternalPerspectiveDsl.g:13243:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:13243:3: rule__XSetLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_0();
@@ -43791,14 +43976,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1"
-    // InternalPerspectiveDsl.g:13203:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:13251: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 {
-            // InternalPerspectiveDsl.g:13207:1: ( rule__XSetLiteral__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:13208:2: rule__XSetLiteral__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:13255:1: ( rule__XSetLiteral__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:13256:2: rule__XSetLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3__1__Impl();
@@ -43824,35 +44009,35 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:13214:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:13262: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 {
-            // InternalPerspectiveDsl.g:13218:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
-            // InternalPerspectiveDsl.g:13219:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:13266:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+            // InternalPerspectiveDsl.g:13267:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:13219:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
-            // InternalPerspectiveDsl.g:13220:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:13267:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:13268:2: ( rule__XSetLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
             }
-            // InternalPerspectiveDsl.g:13221:2: ( rule__XSetLiteral__Group_3_1__0 )*
-            loop91:
+            // InternalPerspectiveDsl.g:13269:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            loop92:
             do {
-                int alt91=2;
-                int LA91_0 = input.LA(1);
+                int alt92=2;
+                int LA92_0 = input.LA(1);
 
-                if ( (LA91_0==100) ) {
-                    alt91=1;
+                if ( (LA92_0==100) ) {
+                    alt92=1;
                 }
 
 
-                switch (alt91) {
+                switch (alt92) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13221:3: rule__XSetLiteral__Group_3_1__0
+            	    // InternalPerspectiveDsl.g:13269:3: rule__XSetLiteral__Group_3_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XSetLiteral__Group_3_1__0();
@@ -43864,7 +44049,7 @@
             	    break;
 
             	default :
-            	    break loop91;
+            	    break loop92;
                 }
             } while (true);
 
@@ -43893,14 +44078,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
-    // InternalPerspectiveDsl.g:13230:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:13278: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 {
-            // InternalPerspectiveDsl.g:13234:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:13235:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+            // InternalPerspectiveDsl.g:13282:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:13283:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XSetLiteral__Group_3_1__0__Impl();
@@ -43931,17 +44116,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:13242:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:13290:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13246:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:13247:1: ( ',' )
+            // InternalPerspectiveDsl.g:13294:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:13295:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:13247:1: ( ',' )
-            // InternalPerspectiveDsl.g:13248:2: ','
+            // InternalPerspectiveDsl.g:13295:1: ( ',' )
+            // InternalPerspectiveDsl.g:13296:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
@@ -43972,14 +44157,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
-    // InternalPerspectiveDsl.g:13257:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13305: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 {
-            // InternalPerspectiveDsl.g:13261:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:13262:2: rule__XSetLiteral__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:13309:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:13310:2: rule__XSetLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3_1__1__Impl();
@@ -44005,23 +44190,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:13268:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:13316: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 {
-            // InternalPerspectiveDsl.g:13272:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:13273:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:13320:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:13321:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:13273:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:13274:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:13321:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:13322:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:13275:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:13275:3: rule__XSetLiteral__ElementsAssignment_3_1_1
+            // InternalPerspectiveDsl.g:13323:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:13323:3: rule__XSetLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_1_1();
@@ -44056,14 +44241,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0"
-    // InternalPerspectiveDsl.g:13284:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:13332: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 {
-            // InternalPerspectiveDsl.g:13288:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:13289:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+            // InternalPerspectiveDsl.g:13336:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:13337:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__XListLiteral__Group__0__Impl();
@@ -44094,23 +44279,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13296:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13344:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13300:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13301:1: ( () )
+            // InternalPerspectiveDsl.g:13348:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13349:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13301:1: ( () )
-            // InternalPerspectiveDsl.g:13302:2: ()
+            // InternalPerspectiveDsl.g:13349:1: ( () )
+            // InternalPerspectiveDsl.g:13350:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:13303:2: ()
-            // InternalPerspectiveDsl.g:13303:3: 
+            // InternalPerspectiveDsl.g:13351:2: ()
+            // InternalPerspectiveDsl.g:13351:3: 
             {
             }
 
@@ -44135,14 +44320,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1"
-    // InternalPerspectiveDsl.g:13311:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+    // InternalPerspectiveDsl.g:13359: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 {
-            // InternalPerspectiveDsl.g:13315:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
-            // InternalPerspectiveDsl.g:13316:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+            // InternalPerspectiveDsl.g:13363:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+            // InternalPerspectiveDsl.g:13364:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
             {
             pushFollow(FOLLOW_66);
             rule__XListLiteral__Group__1__Impl();
@@ -44173,17 +44358,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13323:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:13371:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13327:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:13328:1: ( '#' )
+            // InternalPerspectiveDsl.g:13375:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:13376:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:13328:1: ( '#' )
-            // InternalPerspectiveDsl.g:13329:2: '#'
+            // InternalPerspectiveDsl.g:13376:1: ( '#' )
+            // InternalPerspectiveDsl.g:13377:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
@@ -44214,14 +44399,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2"
-    // InternalPerspectiveDsl.g:13338:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+    // InternalPerspectiveDsl.g:13386: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 {
-            // InternalPerspectiveDsl.g:13342:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
-            // InternalPerspectiveDsl.g:13343:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+            // InternalPerspectiveDsl.g:13390:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+            // InternalPerspectiveDsl.g:13391:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
             {
             pushFollow(FOLLOW_64);
             rule__XListLiteral__Group__2__Impl();
@@ -44252,17 +44437,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2__Impl"
-    // InternalPerspectiveDsl.g:13350:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:13398:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
     public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13354:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:13355:1: ( '[' )
+            // InternalPerspectiveDsl.g:13402:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:13403:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:13355:1: ( '[' )
-            // InternalPerspectiveDsl.g:13356:2: '['
+            // InternalPerspectiveDsl.g:13403:1: ( '[' )
+            // InternalPerspectiveDsl.g:13404:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
@@ -44293,14 +44478,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3"
-    // InternalPerspectiveDsl.g:13365:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+    // InternalPerspectiveDsl.g:13413: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 {
-            // InternalPerspectiveDsl.g:13369:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
-            // InternalPerspectiveDsl.g:13370:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+            // InternalPerspectiveDsl.g:13417:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+            // InternalPerspectiveDsl.g:13418:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
             {
             pushFollow(FOLLOW_64);
             rule__XListLiteral__Group__3__Impl();
@@ -44331,31 +44516,31 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3__Impl"
-    // InternalPerspectiveDsl.g:13377:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:13425: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 {
-            // InternalPerspectiveDsl.g:13381:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:13382:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:13429:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:13430:1: ( ( rule__XListLiteral__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:13382:1: ( ( rule__XListLiteral__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:13383:2: ( rule__XListLiteral__Group_3__0 )?
+            // InternalPerspectiveDsl.g:13430:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:13431:2: ( rule__XListLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:13384:2: ( rule__XListLiteral__Group_3__0 )?
-            int alt92=2;
-            int LA92_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:13432:2: ( rule__XListLiteral__Group_3__0 )?
+            int alt93=2;
+            int LA93_0 = input.LA(1);
 
-            if ( ((LA92_0>=RULE_ID && LA92_0<=RULE_DECIMAL)||LA92_0==27||(LA92_0>=34 && LA92_0<=35)||LA92_0==40||(LA92_0>=45 && LA92_0<=50)||LA92_0==54||LA92_0==98||(LA92_0>=102 && LA92_0<=103)||LA92_0==106||LA92_0==108||(LA92_0>=112 && LA92_0<=120)||LA92_0==122||LA92_0==133) ) {
-                alt92=1;
+            if ( ((LA93_0>=RULE_ID && LA93_0<=RULE_DECIMAL)||LA93_0==27||(LA93_0>=34 && LA93_0<=35)||LA93_0==40||(LA93_0>=45 && LA93_0<=50)||LA93_0==54||LA93_0==98||(LA93_0>=102 && LA93_0<=103)||LA93_0==106||LA93_0==108||(LA93_0>=112 && LA93_0<=120)||LA93_0==122||LA93_0==134) ) {
+                alt93=1;
             }
-            switch (alt92) {
+            switch (alt93) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13384:3: rule__XListLiteral__Group_3__0
+                    // InternalPerspectiveDsl.g:13432:3: rule__XListLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XListLiteral__Group_3__0();
@@ -44393,14 +44578,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4"
-    // InternalPerspectiveDsl.g:13392:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:13440:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
     public final void rule__XListLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13396:1: ( rule__XListLiteral__Group__4__Impl )
-            // InternalPerspectiveDsl.g:13397:2: rule__XListLiteral__Group__4__Impl
+            // InternalPerspectiveDsl.g:13444:1: ( rule__XListLiteral__Group__4__Impl )
+            // InternalPerspectiveDsl.g:13445:2: rule__XListLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__4__Impl();
@@ -44426,17 +44611,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4__Impl"
-    // InternalPerspectiveDsl.g:13403:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:13451:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
     public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13407:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:13408:1: ( ']' )
+            // InternalPerspectiveDsl.g:13455:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:13456:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:13408:1: ( ']' )
-            // InternalPerspectiveDsl.g:13409:2: ']'
+            // InternalPerspectiveDsl.g:13456:1: ( ']' )
+            // InternalPerspectiveDsl.g:13457:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
@@ -44467,14 +44652,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0"
-    // InternalPerspectiveDsl.g:13419:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+    // InternalPerspectiveDsl.g:13467: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 {
-            // InternalPerspectiveDsl.g:13423:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
-            // InternalPerspectiveDsl.g:13424:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+            // InternalPerspectiveDsl.g:13471:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+            // InternalPerspectiveDsl.g:13472:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
             {
             pushFollow(FOLLOW_60);
             rule__XListLiteral__Group_3__0__Impl();
@@ -44505,23 +44690,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:13431:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:13479: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 {
-            // InternalPerspectiveDsl.g:13435:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:13436:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:13483:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:13484:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:13436:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:13437:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:13484:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:13485:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:13438:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
-            // InternalPerspectiveDsl.g:13438:3: rule__XListLiteral__ElementsAssignment_3_0
+            // InternalPerspectiveDsl.g:13486:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:13486:3: rule__XListLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_0();
@@ -44556,14 +44741,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1"
-    // InternalPerspectiveDsl.g:13446:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:13494: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 {
-            // InternalPerspectiveDsl.g:13450:1: ( rule__XListLiteral__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:13451:2: rule__XListLiteral__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:13498:1: ( rule__XListLiteral__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:13499:2: rule__XListLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3__1__Impl();
@@ -44589,35 +44774,35 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:13457:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:13505: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 {
-            // InternalPerspectiveDsl.g:13461:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
-            // InternalPerspectiveDsl.g:13462:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:13509:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+            // InternalPerspectiveDsl.g:13510:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:13462:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
-            // InternalPerspectiveDsl.g:13463:2: ( rule__XListLiteral__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:13510:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:13511:2: ( rule__XListLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
             }
-            // InternalPerspectiveDsl.g:13464:2: ( rule__XListLiteral__Group_3_1__0 )*
-            loop93:
+            // InternalPerspectiveDsl.g:13512:2: ( rule__XListLiteral__Group_3_1__0 )*
+            loop94:
             do {
-                int alt93=2;
-                int LA93_0 = input.LA(1);
+                int alt94=2;
+                int LA94_0 = input.LA(1);
 
-                if ( (LA93_0==100) ) {
-                    alt93=1;
+                if ( (LA94_0==100) ) {
+                    alt94=1;
                 }
 
 
-                switch (alt93) {
+                switch (alt94) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13464:3: rule__XListLiteral__Group_3_1__0
+            	    // InternalPerspectiveDsl.g:13512:3: rule__XListLiteral__Group_3_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XListLiteral__Group_3_1__0();
@@ -44629,7 +44814,7 @@
             	    break;
 
             	default :
-            	    break loop93;
+            	    break loop94;
                 }
             } while (true);
 
@@ -44658,14 +44843,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0"
-    // InternalPerspectiveDsl.g:13473:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:13521: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 {
-            // InternalPerspectiveDsl.g:13477:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:13478:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+            // InternalPerspectiveDsl.g:13525:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:13526:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XListLiteral__Group_3_1__0__Impl();
@@ -44696,17 +44881,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:13485:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:13533:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13489:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:13490:1: ( ',' )
+            // InternalPerspectiveDsl.g:13537:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:13538:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:13490:1: ( ',' )
-            // InternalPerspectiveDsl.g:13491:2: ','
+            // InternalPerspectiveDsl.g:13538:1: ( ',' )
+            // InternalPerspectiveDsl.g:13539:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
@@ -44737,14 +44922,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1"
-    // InternalPerspectiveDsl.g:13500:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13548: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 {
-            // InternalPerspectiveDsl.g:13504:1: ( rule__XListLiteral__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:13505:2: rule__XListLiteral__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:13552:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:13553:2: rule__XListLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3_1__1__Impl();
@@ -44770,23 +44955,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:13511:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:13559: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 {
-            // InternalPerspectiveDsl.g:13515:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:13516:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:13563:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:13564:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:13516:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:13517:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:13564:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:13565:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:13518:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:13518:3: rule__XListLiteral__ElementsAssignment_3_1_1
+            // InternalPerspectiveDsl.g:13566:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:13566:3: rule__XListLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_1_1();
@@ -44821,14 +45006,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0"
-    // InternalPerspectiveDsl.g:13527:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+    // InternalPerspectiveDsl.g:13575: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 {
-            // InternalPerspectiveDsl.g:13531:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
-            // InternalPerspectiveDsl.g:13532:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+            // InternalPerspectiveDsl.g:13579:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+            // InternalPerspectiveDsl.g:13580:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
             {
             pushFollow(FOLLOW_103);
             rule__XClosure__Group__0__Impl();
@@ -44859,23 +45044,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13539:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:13587: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 {
-            // InternalPerspectiveDsl.g:13543:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:13544:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:13591:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:13592:1: ( ( rule__XClosure__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:13544:1: ( ( rule__XClosure__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:13545:2: ( rule__XClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:13592:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:13593:2: ( rule__XClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:13546:2: ( rule__XClosure__Group_0__0 )
-            // InternalPerspectiveDsl.g:13546:3: rule__XClosure__Group_0__0
+            // InternalPerspectiveDsl.g:13594:2: ( rule__XClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:13594:3: rule__XClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0();
@@ -44910,14 +45095,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1"
-    // InternalPerspectiveDsl.g:13554:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+    // InternalPerspectiveDsl.g:13602: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 {
-            // InternalPerspectiveDsl.g:13558:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
-            // InternalPerspectiveDsl.g:13559:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+            // InternalPerspectiveDsl.g:13606:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+            // InternalPerspectiveDsl.g:13607:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
             {
             pushFollow(FOLLOW_103);
             rule__XClosure__Group__1__Impl();
@@ -44948,27 +45133,27 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13566:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:13614: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 {
-            // InternalPerspectiveDsl.g:13570:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:13571:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:13618:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:13619:1: ( ( rule__XClosure__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:13571:1: ( ( rule__XClosure__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:13572:2: ( rule__XClosure__Group_1__0 )?
+            // InternalPerspectiveDsl.g:13619:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:13620:2: ( rule__XClosure__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:13573:2: ( rule__XClosure__Group_1__0 )?
-            int alt94=2;
-            alt94 = dfa94.predict(input);
-            switch (alt94) {
+            // InternalPerspectiveDsl.g:13621:2: ( rule__XClosure__Group_1__0 )?
+            int alt95=2;
+            alt95 = dfa95.predict(input);
+            switch (alt95) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13573:3: rule__XClosure__Group_1__0
+                    // InternalPerspectiveDsl.g:13621:3: rule__XClosure__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1__0();
@@ -45006,14 +45191,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2"
-    // InternalPerspectiveDsl.g:13581:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+    // InternalPerspectiveDsl.g:13629: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 {
-            // InternalPerspectiveDsl.g:13585:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
-            // InternalPerspectiveDsl.g:13586:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+            // InternalPerspectiveDsl.g:13633:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+            // InternalPerspectiveDsl.g:13634:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
             {
             pushFollow(FOLLOW_104);
             rule__XClosure__Group__2__Impl();
@@ -45044,23 +45229,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2__Impl"
-    // InternalPerspectiveDsl.g:13593:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:13641:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
     public final void rule__XClosure__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13597:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:13598:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:13645:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:13646:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:13598:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
-            // InternalPerspectiveDsl.g:13599:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:13646:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:13647:2: ( rule__XClosure__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:13600:2: ( rule__XClosure__ExpressionAssignment_2 )
-            // InternalPerspectiveDsl.g:13600:3: rule__XClosure__ExpressionAssignment_2
+            // InternalPerspectiveDsl.g:13648:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:13648:3: rule__XClosure__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExpressionAssignment_2();
@@ -45095,14 +45280,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3"
-    // InternalPerspectiveDsl.g:13608:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:13656:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
     public final void rule__XClosure__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13612:1: ( rule__XClosure__Group__3__Impl )
-            // InternalPerspectiveDsl.g:13613:2: rule__XClosure__Group__3__Impl
+            // InternalPerspectiveDsl.g:13660:1: ( rule__XClosure__Group__3__Impl )
+            // InternalPerspectiveDsl.g:13661:2: rule__XClosure__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__3__Impl();
@@ -45128,17 +45313,17 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3__Impl"
-    // InternalPerspectiveDsl.g:13619:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:13667:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
     public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13623:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:13624:1: ( ']' )
+            // InternalPerspectiveDsl.g:13671:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:13672:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:13624:1: ( ']' )
-            // InternalPerspectiveDsl.g:13625:2: ']'
+            // InternalPerspectiveDsl.g:13672:1: ( ']' )
+            // InternalPerspectiveDsl.g:13673:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
@@ -45169,14 +45354,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0"
-    // InternalPerspectiveDsl.g:13635:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:13683: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 {
-            // InternalPerspectiveDsl.g:13639:1: ( rule__XClosure__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:13640:2: rule__XClosure__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:13687:1: ( rule__XClosure__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:13688:2: rule__XClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0__Impl();
@@ -45202,23 +45387,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:13646:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:13694: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 {
-            // InternalPerspectiveDsl.g:13650:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:13651:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:13698:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:13699:1: ( ( rule__XClosure__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:13651:1: ( ( rule__XClosure__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:13652:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:13699:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:13700:2: ( rule__XClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13653:2: ( rule__XClosure__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:13653:3: rule__XClosure__Group_0_0__0
+            // InternalPerspectiveDsl.g:13701:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:13701:3: rule__XClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__0();
@@ -45253,14 +45438,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0"
-    // InternalPerspectiveDsl.g:13662:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:13710: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 {
-            // InternalPerspectiveDsl.g:13666:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:13667:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+            // InternalPerspectiveDsl.g:13714:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:13715:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
             {
             pushFollow(FOLLOW_66);
             rule__XClosure__Group_0_0__0__Impl();
@@ -45291,23 +45476,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:13674:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13722:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13678:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13679:1: ( () )
+            // InternalPerspectiveDsl.g:13726:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13727:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13679:1: ( () )
-            // InternalPerspectiveDsl.g:13680:2: ()
+            // InternalPerspectiveDsl.g:13727:1: ( () )
+            // InternalPerspectiveDsl.g:13728:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13681:2: ()
-            // InternalPerspectiveDsl.g:13681:3: 
+            // InternalPerspectiveDsl.g:13729:2: ()
+            // InternalPerspectiveDsl.g:13729:3: 
             {
             }
 
@@ -45332,14 +45517,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1"
-    // InternalPerspectiveDsl.g:13689:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:13737: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 {
-            // InternalPerspectiveDsl.g:13693:1: ( rule__XClosure__Group_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:13694:2: rule__XClosure__Group_0_0__1__Impl
+            // InternalPerspectiveDsl.g:13741:1: ( rule__XClosure__Group_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:13742:2: rule__XClosure__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__1__Impl();
@@ -45365,17 +45550,17 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:13700:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:13748:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
     public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13704:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:13705:1: ( '[' )
+            // InternalPerspectiveDsl.g:13752:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:13753:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:13705:1: ( '[' )
-            // InternalPerspectiveDsl.g:13706:2: '['
+            // InternalPerspectiveDsl.g:13753:1: ( '[' )
+            // InternalPerspectiveDsl.g:13754:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
@@ -45406,14 +45591,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0"
-    // InternalPerspectiveDsl.g:13716:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+    // InternalPerspectiveDsl.g:13764: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 {
-            // InternalPerspectiveDsl.g:13720:1: ( rule__XClosure__Group_1__0__Impl )
-            // InternalPerspectiveDsl.g:13721:2: rule__XClosure__Group_1__0__Impl
+            // InternalPerspectiveDsl.g:13768:1: ( rule__XClosure__Group_1__0__Impl )
+            // InternalPerspectiveDsl.g:13769:2: rule__XClosure__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1__0__Impl();
@@ -45439,23 +45624,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:13727:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:13775: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 {
-            // InternalPerspectiveDsl.g:13731:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:13732:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:13779:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:13780:1: ( ( rule__XClosure__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:13732:1: ( ( rule__XClosure__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:13733:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:13780:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:13781:2: ( rule__XClosure__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:13734:2: ( rule__XClosure__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:13734:3: rule__XClosure__Group_1_0__0
+            // InternalPerspectiveDsl.g:13782:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:13782:3: rule__XClosure__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__0();
@@ -45490,14 +45675,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0"
-    // InternalPerspectiveDsl.g:13743:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:13791: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 {
-            // InternalPerspectiveDsl.g:13747:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:13748:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+            // InternalPerspectiveDsl.g:13795:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:13796:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
             {
             pushFollow(FOLLOW_105);
             rule__XClosure__Group_1_0__0__Impl();
@@ -45528,31 +45713,31 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:13755:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+    // InternalPerspectiveDsl.g:13803: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 {
-            // InternalPerspectiveDsl.g:13759:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
-            // InternalPerspectiveDsl.g:13760:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalPerspectiveDsl.g:13807:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+            // InternalPerspectiveDsl.g:13808:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
             {
-            // InternalPerspectiveDsl.g:13760:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
-            // InternalPerspectiveDsl.g:13761:2: ( rule__XClosure__Group_1_0_0__0 )?
+            // InternalPerspectiveDsl.g:13808:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalPerspectiveDsl.g:13809:2: ( rule__XClosure__Group_1_0_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13762:2: ( rule__XClosure__Group_1_0_0__0 )?
-            int alt95=2;
-            int LA95_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:13810:2: ( rule__XClosure__Group_1_0_0__0 )?
+            int alt96=2;
+            int LA96_0 = input.LA(1);
 
-            if ( (LA95_0==RULE_ID||LA95_0==31||LA95_0==98) ) {
-                alt95=1;
+            if ( (LA96_0==RULE_ID||LA96_0==31||LA96_0==98) ) {
+                alt96=1;
             }
-            switch (alt95) {
+            switch (alt96) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13762:3: rule__XClosure__Group_1_0_0__0
+                    // InternalPerspectiveDsl.g:13810:3: rule__XClosure__Group_1_0_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1_0_0__0();
@@ -45590,14 +45775,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1"
-    // InternalPerspectiveDsl.g:13770:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:13818: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 {
-            // InternalPerspectiveDsl.g:13774:1: ( rule__XClosure__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:13775:2: rule__XClosure__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:13822:1: ( rule__XClosure__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:13823:2: rule__XClosure__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__1__Impl();
@@ -45623,23 +45808,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:13781:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:13829: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 {
-            // InternalPerspectiveDsl.g:13785:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:13786:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:13833:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:13834:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:13786:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:13787:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:13834:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:13835:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:13788:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:13788:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+            // InternalPerspectiveDsl.g:13836:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:13836:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
@@ -45674,14 +45859,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:13797:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:13845: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 {
-            // InternalPerspectiveDsl.g:13801:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:13802:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:13849:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:13850:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
             {
             pushFollow(FOLLOW_60);
             rule__XClosure__Group_1_0_0__0__Impl();
@@ -45712,23 +45897,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:13809:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:13857: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 {
-            // InternalPerspectiveDsl.g:13813:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:13814:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:13861:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:13862:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:13814:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
-            // InternalPerspectiveDsl.g:13815:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalPerspectiveDsl.g:13862:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:13863:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13816:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
-            // InternalPerspectiveDsl.g:13816:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+            // InternalPerspectiveDsl.g:13864:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalPerspectiveDsl.g:13864:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
@@ -45763,14 +45948,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:13824:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:13872: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 {
-            // InternalPerspectiveDsl.g:13828:1: ( rule__XClosure__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:13829:2: rule__XClosure__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:13876:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:13877:2: rule__XClosure__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0__1__Impl();
@@ -45796,35 +45981,35 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:13835:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:13883: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 {
-            // InternalPerspectiveDsl.g:13839:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
-            // InternalPerspectiveDsl.g:13840:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalPerspectiveDsl.g:13887:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+            // InternalPerspectiveDsl.g:13888:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:13840:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
-            // InternalPerspectiveDsl.g:13841:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            // InternalPerspectiveDsl.g:13888:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalPerspectiveDsl.g:13889:2: ( rule__XClosure__Group_1_0_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:13842:2: ( rule__XClosure__Group_1_0_0_1__0 )*
-            loop96:
+            // InternalPerspectiveDsl.g:13890:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            loop97:
             do {
-                int alt96=2;
-                int LA96_0 = input.LA(1);
+                int alt97=2;
+                int LA97_0 = input.LA(1);
 
-                if ( (LA96_0==100) ) {
-                    alt96=1;
+                if ( (LA97_0==100) ) {
+                    alt97=1;
                 }
 
 
-                switch (alt96) {
+                switch (alt97) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13842:3: rule__XClosure__Group_1_0_0_1__0
+            	    // InternalPerspectiveDsl.g:13890:3: rule__XClosure__Group_1_0_0_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XClosure__Group_1_0_0_1__0();
@@ -45836,7 +46021,7 @@
             	    break;
 
             	default :
-            	    break loop96;
+            	    break loop97;
                 }
             } while (true);
 
@@ -45865,14 +46050,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
-    // InternalPerspectiveDsl.g:13851: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 ;
+    // InternalPerspectiveDsl.g:13899: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 {
-            // InternalPerspectiveDsl.g:13855:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
-            // InternalPerspectiveDsl.g:13856:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+            // InternalPerspectiveDsl.g:13903:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+            // InternalPerspectiveDsl.g:13904:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
             {
             pushFollow(FOLLOW_79);
             rule__XClosure__Group_1_0_0_1__0__Impl();
@@ -45903,17 +46088,17 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:13863:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:13911: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 {
-            // InternalPerspectiveDsl.g:13867:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:13868:1: ( ',' )
+            // InternalPerspectiveDsl.g:13915:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:13916:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:13868:1: ( ',' )
-            // InternalPerspectiveDsl.g:13869:2: ','
+            // InternalPerspectiveDsl.g:13916:1: ( ',' )
+            // InternalPerspectiveDsl.g:13917:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
@@ -45944,14 +46129,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
-    // InternalPerspectiveDsl.g:13878:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13926: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 {
-            // InternalPerspectiveDsl.g:13882:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:13883:2: rule__XClosure__Group_1_0_0_1__1__Impl
+            // InternalPerspectiveDsl.g:13930:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:13931:2: rule__XClosure__Group_1_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0_1__1__Impl();
@@ -45977,23 +46162,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:13889:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:13937: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 {
-            // InternalPerspectiveDsl.g:13893:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
-            // InternalPerspectiveDsl.g:13894:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalPerspectiveDsl.g:13941:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:13942:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:13894:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
-            // InternalPerspectiveDsl.g:13895:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalPerspectiveDsl.g:13942:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalPerspectiveDsl.g:13943:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:13896:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
-            // InternalPerspectiveDsl.g:13896:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+            // InternalPerspectiveDsl.g:13944:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalPerspectiveDsl.g:13944:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
@@ -46028,14 +46213,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0"
-    // InternalPerspectiveDsl.g:13905:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+    // InternalPerspectiveDsl.g:13953: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 {
-            // InternalPerspectiveDsl.g:13909:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
-            // InternalPerspectiveDsl.g:13910:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+            // InternalPerspectiveDsl.g:13957:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+            // InternalPerspectiveDsl.g:13958:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
             {
             pushFollow(FOLLOW_103);
             rule__XExpressionInClosure__Group__0__Impl();
@@ -46066,23 +46251,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13917:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13965:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
     public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13921:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13922:1: ( () )
+            // InternalPerspectiveDsl.g:13969:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13970:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13922:1: ( () )
-            // InternalPerspectiveDsl.g:13923:2: ()
+            // InternalPerspectiveDsl.g:13970:1: ( () )
+            // InternalPerspectiveDsl.g:13971:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:13924:2: ()
-            // InternalPerspectiveDsl.g:13924:3: 
+            // InternalPerspectiveDsl.g:13972:2: ()
+            // InternalPerspectiveDsl.g:13972:3: 
             {
             }
 
@@ -46107,14 +46292,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1"
-    // InternalPerspectiveDsl.g:13932:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:13980:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
     public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13936:1: ( rule__XExpressionInClosure__Group__1__Impl )
-            // InternalPerspectiveDsl.g:13937:2: rule__XExpressionInClosure__Group__1__Impl
+            // InternalPerspectiveDsl.g:13984:1: ( rule__XExpressionInClosure__Group__1__Impl )
+            // InternalPerspectiveDsl.g:13985:2: rule__XExpressionInClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__1__Impl();
@@ -46140,35 +46325,35 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13943:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:13991: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 {
-            // InternalPerspectiveDsl.g:13947:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:13948:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:13995:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:13996:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:13948:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:13949:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            // InternalPerspectiveDsl.g:13996:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:13997:2: ( rule__XExpressionInClosure__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:13950:2: ( rule__XExpressionInClosure__Group_1__0 )*
-            loop97:
+            // InternalPerspectiveDsl.g:13998:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            loop98:
             do {
-                int alt97=2;
-                int LA97_0 = input.LA(1);
+                int alt98=2;
+                int LA98_0 = input.LA(1);
 
-                if ( ((LA97_0>=RULE_ID && LA97_0<=RULE_DECIMAL)||LA97_0==27||(LA97_0>=34 && LA97_0<=35)||LA97_0==40||(LA97_0>=44 && LA97_0<=50)||LA97_0==54||LA97_0==98||(LA97_0>=102 && LA97_0<=103)||LA97_0==106||LA97_0==108||(LA97_0>=112 && LA97_0<=120)||LA97_0==122||(LA97_0>=132 && LA97_0<=133)) ) {
-                    alt97=1;
+                if ( ((LA98_0>=RULE_ID && LA98_0<=RULE_DECIMAL)||LA98_0==27||(LA98_0>=34 && LA98_0<=35)||LA98_0==40||(LA98_0>=44 && LA98_0<=50)||LA98_0==54||LA98_0==98||(LA98_0>=102 && LA98_0<=103)||LA98_0==106||LA98_0==108||(LA98_0>=112 && LA98_0<=120)||LA98_0==122||(LA98_0>=133 && LA98_0<=134)) ) {
+                    alt98=1;
                 }
 
 
-                switch (alt97) {
+                switch (alt98) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13950:3: rule__XExpressionInClosure__Group_1__0
+            	    // InternalPerspectiveDsl.g:13998:3: rule__XExpressionInClosure__Group_1__0
             	    {
             	    pushFollow(FOLLOW_106);
             	    rule__XExpressionInClosure__Group_1__0();
@@ -46180,7 +46365,7 @@
             	    break;
 
             	default :
-            	    break loop97;
+            	    break loop98;
                 }
             } while (true);
 
@@ -46209,14 +46394,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
-    // InternalPerspectiveDsl.g:13959:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+    // InternalPerspectiveDsl.g:14007: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 {
-            // InternalPerspectiveDsl.g:13963:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
-            // InternalPerspectiveDsl.g:13964:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+            // InternalPerspectiveDsl.g:14011:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+            // InternalPerspectiveDsl.g:14012:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
             {
             pushFollow(FOLLOW_54);
             rule__XExpressionInClosure__Group_1__0__Impl();
@@ -46247,23 +46432,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:13971:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:14019: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 {
-            // InternalPerspectiveDsl.g:13975:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
-            // InternalPerspectiveDsl.g:13976:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalPerspectiveDsl.g:14023:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+            // InternalPerspectiveDsl.g:14024:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:13976:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
-            // InternalPerspectiveDsl.g:13977:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalPerspectiveDsl.g:14024:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalPerspectiveDsl.g:14025:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
             }
-            // InternalPerspectiveDsl.g:13978:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
-            // InternalPerspectiveDsl.g:13978:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+            // InternalPerspectiveDsl.g:14026:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalPerspectiveDsl.g:14026:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__ExpressionsAssignment_1_0();
@@ -46298,14 +46483,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
-    // InternalPerspectiveDsl.g:13986:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:14034: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 {
-            // InternalPerspectiveDsl.g:13990:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:13991:2: rule__XExpressionInClosure__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:14038:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:14039:2: rule__XExpressionInClosure__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group_1__1__Impl();
@@ -46331,31 +46516,31 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:13997:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+    // InternalPerspectiveDsl.g:14045:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
     public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14001:1: ( ( ( ';' )? ) )
-            // InternalPerspectiveDsl.g:14002:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:14049:1: ( ( ( ';' )? ) )
+            // InternalPerspectiveDsl.g:14050:1: ( ( ';' )? )
             {
-            // InternalPerspectiveDsl.g:14002:1: ( ( ';' )? )
-            // InternalPerspectiveDsl.g:14003:2: ( ';' )?
+            // InternalPerspectiveDsl.g:14050:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:14051:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
             }
-            // InternalPerspectiveDsl.g:14004:2: ( ';' )?
-            int alt98=2;
-            int LA98_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:14052:2: ( ';' )?
+            int alt99=2;
+            int LA99_0 = input.LA(1);
 
-            if ( (LA98_0==96) ) {
-                alt98=1;
+            if ( (LA99_0==96) ) {
+                alt99=1;
             }
-            switch (alt98) {
+            switch (alt99) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:14004:3: ';'
+                    // InternalPerspectiveDsl.g:14052:3: ';'
                     {
                     match(input,96,FOLLOW_2); if (state.failed) return ;
 
@@ -46389,14 +46574,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0"
-    // InternalPerspectiveDsl.g:14013:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+    // InternalPerspectiveDsl.g:14061: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 {
-            // InternalPerspectiveDsl.g:14017:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
-            // InternalPerspectiveDsl.g:14018:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+            // InternalPerspectiveDsl.g:14065:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+            // InternalPerspectiveDsl.g:14066:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
             {
             pushFollow(FOLLOW_62);
             rule__XShortClosure__Group__0__Impl();
@@ -46427,23 +46612,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0__Impl"
-    // InternalPerspectiveDsl.g:14025:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14073: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 {
-            // InternalPerspectiveDsl.g:14029:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14030:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:14077:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14078:1: ( ( rule__XShortClosure__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14030:1: ( ( rule__XShortClosure__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:14031:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:14078:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:14079:2: ( rule__XShortClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:14032:2: ( rule__XShortClosure__Group_0__0 )
-            // InternalPerspectiveDsl.g:14032:3: rule__XShortClosure__Group_0__0
+            // InternalPerspectiveDsl.g:14080:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:14080:3: rule__XShortClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0();
@@ -46478,14 +46663,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1"
-    // InternalPerspectiveDsl.g:14040:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:14088:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
     public final void rule__XShortClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14044:1: ( rule__XShortClosure__Group__1__Impl )
-            // InternalPerspectiveDsl.g:14045:2: rule__XShortClosure__Group__1__Impl
+            // InternalPerspectiveDsl.g:14092:1: ( rule__XShortClosure__Group__1__Impl )
+            // InternalPerspectiveDsl.g:14093:2: rule__XShortClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__1__Impl();
@@ -46511,23 +46696,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1__Impl"
-    // InternalPerspectiveDsl.g:14051:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:14099:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
     public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14055:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:14056:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:14103:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:14104:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:14056:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
-            // InternalPerspectiveDsl.g:14057:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:14104:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:14105:2: ( rule__XShortClosure__ExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:14058:2: ( rule__XShortClosure__ExpressionAssignment_1 )
-            // InternalPerspectiveDsl.g:14058:3: rule__XShortClosure__ExpressionAssignment_1
+            // InternalPerspectiveDsl.g:14106:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:14106:3: rule__XShortClosure__ExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExpressionAssignment_1();
@@ -46562,14 +46747,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0"
-    // InternalPerspectiveDsl.g:14067:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:14115: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 {
-            // InternalPerspectiveDsl.g:14071:1: ( rule__XShortClosure__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:14072:2: rule__XShortClosure__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:14119:1: ( rule__XShortClosure__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:14120:2: rule__XShortClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0__Impl();
@@ -46595,23 +46780,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:14078:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14126: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 {
-            // InternalPerspectiveDsl.g:14082:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14083:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14130:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14131:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14083:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:14084:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:14131:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14132:2: ( rule__XShortClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14085:2: ( rule__XShortClosure__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:14085:3: rule__XShortClosure__Group_0_0__0
+            // InternalPerspectiveDsl.g:14133:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:14133:3: rule__XShortClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__0();
@@ -46646,14 +46831,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0"
-    // InternalPerspectiveDsl.g:14094:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:14142: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 {
-            // InternalPerspectiveDsl.g:14098:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:14099:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+            // InternalPerspectiveDsl.g:14146:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:14147:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
             {
             pushFollow(FOLLOW_105);
             rule__XShortClosure__Group_0_0__0__Impl();
@@ -46684,23 +46869,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:14106:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:14154:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14110:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:14111:1: ( () )
+            // InternalPerspectiveDsl.g:14158:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:14159:1: ( () )
             {
-            // InternalPerspectiveDsl.g:14111:1: ( () )
-            // InternalPerspectiveDsl.g:14112:2: ()
+            // InternalPerspectiveDsl.g:14159:1: ( () )
+            // InternalPerspectiveDsl.g:14160:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14113:2: ()
-            // InternalPerspectiveDsl.g:14113:3: 
+            // InternalPerspectiveDsl.g:14161:2: ()
+            // InternalPerspectiveDsl.g:14161:3: 
             {
             }
 
@@ -46725,14 +46910,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1"
-    // InternalPerspectiveDsl.g:14121:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+    // InternalPerspectiveDsl.g:14169: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 {
-            // InternalPerspectiveDsl.g:14125:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
-            // InternalPerspectiveDsl.g:14126:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+            // InternalPerspectiveDsl.g:14173:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+            // InternalPerspectiveDsl.g:14174:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
             {
             pushFollow(FOLLOW_105);
             rule__XShortClosure__Group_0_0__1__Impl();
@@ -46763,31 +46948,31 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:14133:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:14181: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 {
-            // InternalPerspectiveDsl.g:14137:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:14138:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalPerspectiveDsl.g:14185:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:14186:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:14138:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
-            // InternalPerspectiveDsl.g:14139:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            // InternalPerspectiveDsl.g:14186:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalPerspectiveDsl.g:14187:2: ( rule__XShortClosure__Group_0_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:14140:2: ( rule__XShortClosure__Group_0_0_1__0 )?
-            int alt99=2;
-            int LA99_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:14188:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            int alt100=2;
+            int LA100_0 = input.LA(1);
 
-            if ( (LA99_0==RULE_ID||LA99_0==31||LA99_0==98) ) {
-                alt99=1;
+            if ( (LA100_0==RULE_ID||LA100_0==31||LA100_0==98) ) {
+                alt100=1;
             }
-            switch (alt99) {
+            switch (alt100) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:14140:3: rule__XShortClosure__Group_0_0_1__0
+                    // InternalPerspectiveDsl.g:14188:3: rule__XShortClosure__Group_0_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XShortClosure__Group_0_0_1__0();
@@ -46825,14 +47010,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2"
-    // InternalPerspectiveDsl.g:14148:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:14196: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 {
-            // InternalPerspectiveDsl.g:14152:1: ( rule__XShortClosure__Group_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:14153:2: rule__XShortClosure__Group_0_0__2__Impl
+            // InternalPerspectiveDsl.g:14200:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:14201:2: rule__XShortClosure__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__2__Impl();
@@ -46858,23 +47043,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:14159:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:14207: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 {
-            // InternalPerspectiveDsl.g:14163:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
-            // InternalPerspectiveDsl.g:14164:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalPerspectiveDsl.g:14211:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+            // InternalPerspectiveDsl.g:14212:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:14164:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
-            // InternalPerspectiveDsl.g:14165:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalPerspectiveDsl.g:14212:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalPerspectiveDsl.g:14213:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
             }
-            // InternalPerspectiveDsl.g:14166:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
-            // InternalPerspectiveDsl.g:14166:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+            // InternalPerspectiveDsl.g:14214:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalPerspectiveDsl.g:14214:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
@@ -46909,14 +47094,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
-    // InternalPerspectiveDsl.g:14175:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
+    // InternalPerspectiveDsl.g:14223: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 {
-            // InternalPerspectiveDsl.g:14179:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
-            // InternalPerspectiveDsl.g:14180:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+            // InternalPerspectiveDsl.g:14227:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+            // InternalPerspectiveDsl.g:14228:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XShortClosure__Group_0_0_1__0__Impl();
@@ -46947,23 +47132,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:14187:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:14235: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 {
-            // InternalPerspectiveDsl.g:14191:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:14192:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalPerspectiveDsl.g:14239:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:14240:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:14192:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
-            // InternalPerspectiveDsl.g:14193:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalPerspectiveDsl.g:14240:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalPerspectiveDsl.g:14241:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:14194:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
-            // InternalPerspectiveDsl.g:14194:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+            // InternalPerspectiveDsl.g:14242:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalPerspectiveDsl.g:14242:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
@@ -46998,14 +47183,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
-    // InternalPerspectiveDsl.g:14202:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:14250: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 {
-            // InternalPerspectiveDsl.g:14206:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:14207:2: rule__XShortClosure__Group_0_0_1__1__Impl
+            // InternalPerspectiveDsl.g:14254:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:14255:2: rule__XShortClosure__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1__1__Impl();
@@ -47031,35 +47216,35 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:14213:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:14261: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 {
-            // InternalPerspectiveDsl.g:14217:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:14218:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:14265:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:14266:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:14218:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:14219:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:14266:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:14267:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:14220:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
-            loop100:
+            // InternalPerspectiveDsl.g:14268:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            loop101:
             do {
-                int alt100=2;
-                int LA100_0 = input.LA(1);
+                int alt101=2;
+                int LA101_0 = input.LA(1);
 
-                if ( (LA100_0==100) ) {
-                    alt100=1;
+                if ( (LA101_0==100) ) {
+                    alt101=1;
                 }
 
 
-                switch (alt100) {
+                switch (alt101) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:14220:3: rule__XShortClosure__Group_0_0_1_1__0
+            	    // InternalPerspectiveDsl.g:14268:3: rule__XShortClosure__Group_0_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XShortClosure__Group_0_0_1_1__0();
@@ -47071,7 +47256,7 @@
             	    break;
 
             	default :
-            	    break loop100;
+            	    break loop101;
                 }
             } while (true);
 
@@ -47100,14 +47285,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
-    // InternalPerspectiveDsl.g:14229: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 ;
+    // InternalPerspectiveDsl.g:14277: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 {
-            // InternalPerspectiveDsl.g:14233:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
-            // InternalPerspectiveDsl.g:14234:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+            // InternalPerspectiveDsl.g:14281:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+            // InternalPerspectiveDsl.g:14282:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
             {
             pushFollow(FOLLOW_79);
             rule__XShortClosure__Group_0_0_1_1__0__Impl();
@@ -47138,17 +47323,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:14241:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:14289: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 {
-            // InternalPerspectiveDsl.g:14245:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:14246:1: ( ',' )
+            // InternalPerspectiveDsl.g:14293:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:14294:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:14246:1: ( ',' )
-            // InternalPerspectiveDsl.g:14247:2: ','
+            // InternalPerspectiveDsl.g:14294:1: ( ',' )
+            // InternalPerspectiveDsl.g:14295:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
@@ -47179,14 +47364,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
-    // InternalPerspectiveDsl.g:14256:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:14304: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 {
-            // InternalPerspectiveDsl.g:14260:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:14261:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:14308:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:14309:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1_1__1__Impl();
@@ -47212,23 +47397,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:14267:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:14315: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 {
-            // InternalPerspectiveDsl.g:14271:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:14272:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:14319:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:14320:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:14272:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:14273:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalPerspectiveDsl.g:14320:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:14321:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:14274:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
-            // InternalPerspectiveDsl.g:14274:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+            // InternalPerspectiveDsl.g:14322:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalPerspectiveDsl.g:14322:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
@@ -47263,14 +47448,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0"
-    // InternalPerspectiveDsl.g:14283:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:14331: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 {
-            // InternalPerspectiveDsl.g:14287:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
-            // InternalPerspectiveDsl.g:14288:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+            // InternalPerspectiveDsl.g:14335:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+            // InternalPerspectiveDsl.g:14336:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
             {
             pushFollow(FOLLOW_62);
             rule__XParenthesizedExpression__Group__0__Impl();
@@ -47301,17 +47486,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:14295:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:14343:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
     public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14299:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:14300:1: ( '(' )
+            // InternalPerspectiveDsl.g:14347:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:14348:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:14300:1: ( '(' )
-            // InternalPerspectiveDsl.g:14301:2: '('
+            // InternalPerspectiveDsl.g:14348:1: ( '(' )
+            // InternalPerspectiveDsl.g:14349:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
@@ -47342,14 +47527,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1"
-    // InternalPerspectiveDsl.g:14310:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:14358: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 {
-            // InternalPerspectiveDsl.g:14314:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
-            // InternalPerspectiveDsl.g:14315:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+            // InternalPerspectiveDsl.g:14362:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+            // InternalPerspectiveDsl.g:14363:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
             {
             pushFollow(FOLLOW_107);
             rule__XParenthesizedExpression__Group__1__Impl();
@@ -47380,17 +47565,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:14322:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:14370:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
     public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14326:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:14327:1: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:14374:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:14375:1: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:14327:1: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:14328:2: ruleXExpression
+            // InternalPerspectiveDsl.g:14375:1: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:14376:2: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -47425,14 +47610,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2"
-    // InternalPerspectiveDsl.g:14337:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:14385:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
     public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14341:1: ( rule__XParenthesizedExpression__Group__2__Impl )
-            // InternalPerspectiveDsl.g:14342:2: rule__XParenthesizedExpression__Group__2__Impl
+            // InternalPerspectiveDsl.g:14389:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+            // InternalPerspectiveDsl.g:14390:2: rule__XParenthesizedExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__2__Impl();
@@ -47458,17 +47643,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:14348:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:14396:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14352:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:14353:1: ( ')' )
+            // InternalPerspectiveDsl.g:14400:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:14401:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:14353:1: ( ')' )
-            // InternalPerspectiveDsl.g:14354:2: ')'
+            // InternalPerspectiveDsl.g:14401:1: ( ')' )
+            // InternalPerspectiveDsl.g:14402:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
@@ -47499,14 +47684,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0"
-    // InternalPerspectiveDsl.g:14364:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:14412: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 {
-            // InternalPerspectiveDsl.g:14368:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
-            // InternalPerspectiveDsl.g:14369:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+            // InternalPerspectiveDsl.g:14416:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+            // InternalPerspectiveDsl.g:14417:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
             {
             pushFollow(FOLLOW_108);
             rule__XIfExpression__Group__0__Impl();
@@ -47537,23 +47722,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:14376:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:14424:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
     public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14380:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:14381:1: ( () )
+            // InternalPerspectiveDsl.g:14428:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:14429:1: ( () )
             {
-            // InternalPerspectiveDsl.g:14381:1: ( () )
-            // InternalPerspectiveDsl.g:14382:2: ()
+            // InternalPerspectiveDsl.g:14429:1: ( () )
+            // InternalPerspectiveDsl.g:14430:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:14383:2: ()
-            // InternalPerspectiveDsl.g:14383:3: 
+            // InternalPerspectiveDsl.g:14431:2: ()
+            // InternalPerspectiveDsl.g:14431:3: 
             {
             }
 
@@ -47578,14 +47763,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1"
-    // InternalPerspectiveDsl.g:14391:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:14439: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 {
-            // InternalPerspectiveDsl.g:14395:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
-            // InternalPerspectiveDsl.g:14396:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+            // InternalPerspectiveDsl.g:14443:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+            // InternalPerspectiveDsl.g:14444:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
             {
             pushFollow(FOLLOW_58);
             rule__XIfExpression__Group__1__Impl();
@@ -47616,17 +47801,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:14403:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+    // InternalPerspectiveDsl.g:14451:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
     public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14407:1: ( ( 'if' ) )
-            // InternalPerspectiveDsl.g:14408:1: ( 'if' )
+            // InternalPerspectiveDsl.g:14455:1: ( ( 'if' ) )
+            // InternalPerspectiveDsl.g:14456:1: ( 'if' )
             {
-            // InternalPerspectiveDsl.g:14408:1: ( 'if' )
-            // InternalPerspectiveDsl.g:14409:2: 'if'
+            // InternalPerspectiveDsl.g:14456:1: ( 'if' )
+            // InternalPerspectiveDsl.g:14457:2: 'if'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
@@ -47657,14 +47842,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2"
-    // InternalPerspectiveDsl.g:14418:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:14466: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 {
-            // InternalPerspectiveDsl.g:14422:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
-            // InternalPerspectiveDsl.g:14423:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+            // InternalPerspectiveDsl.g:14470:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+            // InternalPerspectiveDsl.g:14471:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
             {
             pushFollow(FOLLOW_62);
             rule__XIfExpression__Group__2__Impl();
@@ -47695,17 +47880,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:14430:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:14478:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14434:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:14435:1: ( '(' )
+            // InternalPerspectiveDsl.g:14482:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:14483:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:14435:1: ( '(' )
-            // InternalPerspectiveDsl.g:14436:2: '('
+            // InternalPerspectiveDsl.g:14483:1: ( '(' )
+            // InternalPerspectiveDsl.g:14484:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
@@ -47736,14 +47921,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3"
-    // InternalPerspectiveDsl.g:14445:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:14493: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 {
-            // InternalPerspectiveDsl.g:14449:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
-            // InternalPerspectiveDsl.g:14450:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+            // InternalPerspectiveDsl.g:14497:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+            // InternalPerspectiveDsl.g:14498:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
             {
             pushFollow(FOLLOW_107);
             rule__XIfExpression__Group__3__Impl();
@@ -47774,23 +47959,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:14457:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:14505:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
     public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14461:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:14462:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalPerspectiveDsl.g:14509:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:14510:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:14462:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
-            // InternalPerspectiveDsl.g:14463:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalPerspectiveDsl.g:14510:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalPerspectiveDsl.g:14511:2: ( rule__XIfExpression__IfAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:14464:2: ( rule__XIfExpression__IfAssignment_3 )
-            // InternalPerspectiveDsl.g:14464:3: rule__XIfExpression__IfAssignment_3
+            // InternalPerspectiveDsl.g:14512:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalPerspectiveDsl.g:14512:3: rule__XIfExpression__IfAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__IfAssignment_3();
@@ -47825,14 +48010,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4"
-    // InternalPerspectiveDsl.g:14472:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:14520: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 {
-            // InternalPerspectiveDsl.g:14476:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
-            // InternalPerspectiveDsl.g:14477:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+            // InternalPerspectiveDsl.g:14524:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+            // InternalPerspectiveDsl.g:14525:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
             {
             pushFollow(FOLLOW_62);
             rule__XIfExpression__Group__4__Impl();
@@ -47863,17 +48048,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:14484:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:14532:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14488:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:14489:1: ( ')' )
+            // InternalPerspectiveDsl.g:14536:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:14537:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:14489:1: ( ')' )
-            // InternalPerspectiveDsl.g:14490:2: ')'
+            // InternalPerspectiveDsl.g:14537:1: ( ')' )
+            // InternalPerspectiveDsl.g:14538:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
@@ -47904,14 +48089,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5"
-    // InternalPerspectiveDsl.g:14499:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:14547: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 {
-            // InternalPerspectiveDsl.g:14503:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
-            // InternalPerspectiveDsl.g:14504:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+            // InternalPerspectiveDsl.g:14551:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+            // InternalPerspectiveDsl.g:14552:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
             {
             pushFollow(FOLLOW_109);
             rule__XIfExpression__Group__5__Impl();
@@ -47942,23 +48127,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:14511:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:14559:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
     public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14515:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:14516:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalPerspectiveDsl.g:14563:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:14564:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:14516:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
-            // InternalPerspectiveDsl.g:14517:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalPerspectiveDsl.g:14564:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalPerspectiveDsl.g:14565:2: ( rule__XIfExpression__ThenAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:14518:2: ( rule__XIfExpression__ThenAssignment_5 )
-            // InternalPerspectiveDsl.g:14518:3: rule__XIfExpression__ThenAssignment_5
+            // InternalPerspectiveDsl.g:14566:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalPerspectiveDsl.g:14566:3: rule__XIfExpression__ThenAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ThenAssignment_5();
@@ -47993,14 +48178,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6"
-    // InternalPerspectiveDsl.g:14526:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:14574:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
     public final void rule__XIfExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14530:1: ( rule__XIfExpression__Group__6__Impl )
-            // InternalPerspectiveDsl.g:14531:2: rule__XIfExpression__Group__6__Impl
+            // InternalPerspectiveDsl.g:14578:1: ( rule__XIfExpression__Group__6__Impl )
+            // InternalPerspectiveDsl.g:14579:2: rule__XIfExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__6__Impl();
@@ -48026,35 +48211,35 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:14537:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+    // InternalPerspectiveDsl.g:14585: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 {
-            // InternalPerspectiveDsl.g:14541:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
-            // InternalPerspectiveDsl.g:14542:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalPerspectiveDsl.g:14589:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+            // InternalPerspectiveDsl.g:14590:1: ( ( rule__XIfExpression__Group_6__0 )? )
             {
-            // InternalPerspectiveDsl.g:14542:1: ( ( rule__XIfExpression__Group_6__0 )? )
-            // InternalPerspectiveDsl.g:14543:2: ( rule__XIfExpression__Group_6__0 )?
+            // InternalPerspectiveDsl.g:14590:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalPerspectiveDsl.g:14591:2: ( rule__XIfExpression__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
             }
-            // InternalPerspectiveDsl.g:14544:2: ( rule__XIfExpression__Group_6__0 )?
-            int alt101=2;
-            int LA101_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:14592:2: ( rule__XIfExpression__Group_6__0 )?
+            int alt102=2;
+            int LA102_0 = input.LA(1);
 
-            if ( (LA101_0==107) ) {
-                int LA101_1 = input.LA(2);
+            if ( (LA102_0==107) ) {
+                int LA102_1 = input.LA(2);
 
-                if ( (synpred160_InternalPerspectiveDsl()) ) {
-                    alt101=1;
+                if ( (synpred161_InternalPerspectiveDsl()) ) {
+                    alt102=1;
                 }
             }
-            switch (alt101) {
+            switch (alt102) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:14544:3: rule__XIfExpression__Group_6__0
+                    // InternalPerspectiveDsl.g:14592:3: rule__XIfExpression__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XIfExpression__Group_6__0();
@@ -48092,14 +48277,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0"
-    // InternalPerspectiveDsl.g:14553:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+    // InternalPerspectiveDsl.g:14601: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 {
-            // InternalPerspectiveDsl.g:14557:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
-            // InternalPerspectiveDsl.g:14558:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+            // InternalPerspectiveDsl.g:14605:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+            // InternalPerspectiveDsl.g:14606:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
             {
             pushFollow(FOLLOW_62);
             rule__XIfExpression__Group_6__0__Impl();
@@ -48130,23 +48315,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
-    // InternalPerspectiveDsl.g:14565:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+    // InternalPerspectiveDsl.g:14613:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
     public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14569:1: ( ( ( 'else' ) ) )
-            // InternalPerspectiveDsl.g:14570:1: ( ( 'else' ) )
+            // InternalPerspectiveDsl.g:14617:1: ( ( ( 'else' ) ) )
+            // InternalPerspectiveDsl.g:14618:1: ( ( 'else' ) )
             {
-            // InternalPerspectiveDsl.g:14570:1: ( ( 'else' ) )
-            // InternalPerspectiveDsl.g:14571:2: ( 'else' )
+            // InternalPerspectiveDsl.g:14618:1: ( ( 'else' ) )
+            // InternalPerspectiveDsl.g:14619:2: ( 'else' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
             }
-            // InternalPerspectiveDsl.g:14572:2: ( 'else' )
-            // InternalPerspectiveDsl.g:14572:3: 'else'
+            // InternalPerspectiveDsl.g:14620:2: ( 'else' )
+            // InternalPerspectiveDsl.g:14620:3: 'else'
             {
             match(input,107,FOLLOW_2); if (state.failed) return ;
 
@@ -48177,14 +48362,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1"
-    // InternalPerspectiveDsl.g:14580:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+    // InternalPerspectiveDsl.g:14628: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 {
-            // InternalPerspectiveDsl.g:14584:1: ( rule__XIfExpression__Group_6__1__Impl )
-            // InternalPerspectiveDsl.g:14585:2: rule__XIfExpression__Group_6__1__Impl
+            // InternalPerspectiveDsl.g:14632:1: ( rule__XIfExpression__Group_6__1__Impl )
+            // InternalPerspectiveDsl.g:14633:2: rule__XIfExpression__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group_6__1__Impl();
@@ -48210,23 +48395,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
-    // InternalPerspectiveDsl.g:14591:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+    // InternalPerspectiveDsl.g:14639: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 {
-            // InternalPerspectiveDsl.g:14595:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
-            // InternalPerspectiveDsl.g:14596:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalPerspectiveDsl.g:14643:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+            // InternalPerspectiveDsl.g:14644:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
             {
-            // InternalPerspectiveDsl.g:14596:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
-            // InternalPerspectiveDsl.g:14597:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalPerspectiveDsl.g:14644:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalPerspectiveDsl.g:14645:2: ( rule__XIfExpression__ElseAssignment_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
             }
-            // InternalPerspectiveDsl.g:14598:2: ( rule__XIfExpression__ElseAssignment_6_1 )
-            // InternalPerspectiveDsl.g:14598:3: rule__XIfExpression__ElseAssignment_6_1
+            // InternalPerspectiveDsl.g:14646:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalPerspectiveDsl.g:14646:3: rule__XIfExpression__ElseAssignment_6_1
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ElseAssignment_6_1();
@@ -48261,14 +48446,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0"
-    // InternalPerspectiveDsl.g:14607:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:14655: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 {
-            // InternalPerspectiveDsl.g:14611:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
-            // InternalPerspectiveDsl.g:14612:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+            // InternalPerspectiveDsl.g:14659:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+            // InternalPerspectiveDsl.g:14660:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
             {
             pushFollow(FOLLOW_110);
             rule__XSwitchExpression__Group__0__Impl();
@@ -48299,23 +48484,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:14619:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:14667:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
     public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14623:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:14624:1: ( () )
+            // InternalPerspectiveDsl.g:14671:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:14672:1: ( () )
             {
-            // InternalPerspectiveDsl.g:14624:1: ( () )
-            // InternalPerspectiveDsl.g:14625:2: ()
+            // InternalPerspectiveDsl.g:14672:1: ( () )
+            // InternalPerspectiveDsl.g:14673:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:14626:2: ()
-            // InternalPerspectiveDsl.g:14626:3: 
+            // InternalPerspectiveDsl.g:14674:2: ()
+            // InternalPerspectiveDsl.g:14674:3: 
             {
             }
 
@@ -48340,14 +48525,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1"
-    // InternalPerspectiveDsl.g:14634:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:14682: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 {
-            // InternalPerspectiveDsl.g:14638:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
-            // InternalPerspectiveDsl.g:14639:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+            // InternalPerspectiveDsl.g:14686:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+            // InternalPerspectiveDsl.g:14687:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
             {
             pushFollow(FOLLOW_111);
             rule__XSwitchExpression__Group__1__Impl();
@@ -48378,17 +48563,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:14646:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+    // InternalPerspectiveDsl.g:14694:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
     public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14650:1: ( ( 'switch' ) )
-            // InternalPerspectiveDsl.g:14651:1: ( 'switch' )
+            // InternalPerspectiveDsl.g:14698:1: ( ( 'switch' ) )
+            // InternalPerspectiveDsl.g:14699:1: ( 'switch' )
             {
-            // InternalPerspectiveDsl.g:14651:1: ( 'switch' )
-            // InternalPerspectiveDsl.g:14652:2: 'switch'
+            // InternalPerspectiveDsl.g:14699:1: ( 'switch' )
+            // InternalPerspectiveDsl.g:14700:2: 'switch'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
@@ -48419,14 +48604,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2"
-    // InternalPerspectiveDsl.g:14661:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:14709: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 {
-            // InternalPerspectiveDsl.g:14665:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
-            // InternalPerspectiveDsl.g:14666:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+            // InternalPerspectiveDsl.g:14713:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+            // InternalPerspectiveDsl.g:14714:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__XSwitchExpression__Group__2__Impl();
@@ -48457,23 +48642,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:14673:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+    // InternalPerspectiveDsl.g:14721:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
     public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14677:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
-            // InternalPerspectiveDsl.g:14678:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:14725:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:14726:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:14678:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
-            // InternalPerspectiveDsl.g:14679:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalPerspectiveDsl.g:14726:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:14727:2: ( rule__XSwitchExpression__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:14680:2: ( rule__XSwitchExpression__Alternatives_2 )
-            // InternalPerspectiveDsl.g:14680:3: rule__XSwitchExpression__Alternatives_2
+            // InternalPerspectiveDsl.g:14728:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalPerspectiveDsl.g:14728:3: rule__XSwitchExpression__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Alternatives_2();
@@ -48508,14 +48693,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3"
-    // InternalPerspectiveDsl.g:14688:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:14736: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 {
-            // InternalPerspectiveDsl.g:14692:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
-            // InternalPerspectiveDsl.g:14693:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+            // InternalPerspectiveDsl.g:14740:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+            // InternalPerspectiveDsl.g:14741:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
             {
             pushFollow(FOLLOW_112);
             rule__XSwitchExpression__Group__3__Impl();
@@ -48546,17 +48731,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:14700:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:14748:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
     public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14704:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:14705:1: ( '{' )
+            // InternalPerspectiveDsl.g:14752:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:14753:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:14705:1: ( '{' )
-            // InternalPerspectiveDsl.g:14706:2: '{'
+            // InternalPerspectiveDsl.g:14753:1: ( '{' )
+            // InternalPerspectiveDsl.g:14754:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
@@ -48587,14 +48772,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4"
-    // InternalPerspectiveDsl.g:14715:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:14763: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 {
-            // InternalPerspectiveDsl.g:14719:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
-            // InternalPerspectiveDsl.g:14720:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+            // InternalPerspectiveDsl.g:14767:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+            // InternalPerspectiveDsl.g:14768:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
             {
             pushFollow(FOLLOW_112);
             rule__XSwitchExpression__Group__4__Impl();
@@ -48625,35 +48810,35 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:14727:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
+    // InternalPerspectiveDsl.g:14775:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
     public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14731:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
-            // InternalPerspectiveDsl.g:14732:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalPerspectiveDsl.g:14779:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+            // InternalPerspectiveDsl.g:14780:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
             {
-            // InternalPerspectiveDsl.g:14732:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
-            // InternalPerspectiveDsl.g:14733:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            // InternalPerspectiveDsl.g:14780:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalPerspectiveDsl.g:14781:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:14734:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
-            loop102:
+            // InternalPerspectiveDsl.g:14782:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            loop103:
             do {
-                int alt102=2;
-                int LA102_0 = input.LA(1);
+                int alt103=2;
+                int LA103_0 = input.LA(1);
 
-                if ( (LA102_0==RULE_ID||LA102_0==31||LA102_0==98||LA102_0==100||LA102_0==109||LA102_0==111) ) {
-                    alt102=1;
+                if ( (LA103_0==RULE_ID||LA103_0==31||LA103_0==98||LA103_0==100||LA103_0==109||LA103_0==111) ) {
+                    alt103=1;
                 }
 
 
-                switch (alt102) {
+                switch (alt103) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:14734:3: rule__XSwitchExpression__CasesAssignment_4
+            	    // InternalPerspectiveDsl.g:14782:3: rule__XSwitchExpression__CasesAssignment_4
             	    {
             	    pushFollow(FOLLOW_113);
             	    rule__XSwitchExpression__CasesAssignment_4();
@@ -48665,7 +48850,7 @@
             	    break;
 
             	default :
-            	    break loop102;
+            	    break loop103;
                 }
             } while (true);
 
@@ -48694,14 +48879,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5"
-    // InternalPerspectiveDsl.g:14742:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:14790: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 {
-            // InternalPerspectiveDsl.g:14746:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
-            // InternalPerspectiveDsl.g:14747:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+            // InternalPerspectiveDsl.g:14794:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+            // InternalPerspectiveDsl.g:14795:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
             {
             pushFollow(FOLLOW_112);
             rule__XSwitchExpression__Group__5__Impl();
@@ -48732,31 +48917,31 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:14754:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+    // InternalPerspectiveDsl.g:14802: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 {
-            // InternalPerspectiveDsl.g:14758:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
-            // InternalPerspectiveDsl.g:14759:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalPerspectiveDsl.g:14806:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+            // InternalPerspectiveDsl.g:14807:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
             {
-            // InternalPerspectiveDsl.g:14759:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
-            // InternalPerspectiveDsl.g:14760:2: ( rule__XSwitchExpression__Group_5__0 )?
+            // InternalPerspectiveDsl.g:14807:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalPerspectiveDsl.g:14808:2: ( rule__XSwitchExpression__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
             }
-            // InternalPerspectiveDsl.g:14761:2: ( rule__XSwitchExpression__Group_5__0 )?
-            int alt103=2;
-            int LA103_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:14809:2: ( rule__XSwitchExpression__Group_5__0 )?
+            int alt104=2;
+            int LA104_0 = input.LA(1);
 
-            if ( (LA103_0==110) ) {
-                alt103=1;
+            if ( (LA104_0==110) ) {
+                alt104=1;
             }
-            switch (alt103) {
+            switch (alt104) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:14761:3: rule__XSwitchExpression__Group_5__0
+                    // InternalPerspectiveDsl.g:14809:3: rule__XSwitchExpression__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_5__0();
@@ -48794,14 +48979,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6"
-    // InternalPerspectiveDsl.g:14769:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:14817:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
     public final void rule__XSwitchExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14773:1: ( rule__XSwitchExpression__Group__6__Impl )
-            // InternalPerspectiveDsl.g:14774:2: rule__XSwitchExpression__Group__6__Impl
+            // InternalPerspectiveDsl.g:14821:1: ( rule__XSwitchExpression__Group__6__Impl )
+            // InternalPerspectiveDsl.g:14822:2: rule__XSwitchExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__6__Impl();
@@ -48827,17 +49012,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:14780:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:14828:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
     public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14784:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:14785:1: ( '}' )
+            // InternalPerspectiveDsl.g:14832:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:14833:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:14785:1: ( '}' )
-            // InternalPerspectiveDsl.g:14786:2: '}'
+            // InternalPerspectiveDsl.g:14833:1: ( '}' )
+            // InternalPerspectiveDsl.g:14834:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
@@ -48868,14 +49053,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
-    // InternalPerspectiveDsl.g:14796:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+    // InternalPerspectiveDsl.g:14844: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 {
-            // InternalPerspectiveDsl.g:14800:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
-            // InternalPerspectiveDsl.g:14801:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+            // InternalPerspectiveDsl.g:14848:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:14849:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
             {
             pushFollow(FOLLOW_62);
             rule__XSwitchExpression__Group_2_0__0__Impl();
@@ -48906,23 +49091,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:14808:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14856: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 {
-            // InternalPerspectiveDsl.g:14812:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14813:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14860:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14861:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14813:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
-            // InternalPerspectiveDsl.g:14814:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:14861:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14862:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14815:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
-            // InternalPerspectiveDsl.g:14815:3: rule__XSwitchExpression__Group_2_0_0__0
+            // InternalPerspectiveDsl.g:14863:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:14863:3: rule__XSwitchExpression__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0();
@@ -48957,14 +49142,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
-    // InternalPerspectiveDsl.g:14823:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
+    // InternalPerspectiveDsl.g:14871: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 {
-            // InternalPerspectiveDsl.g:14827:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
-            // InternalPerspectiveDsl.g:14828:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
+            // InternalPerspectiveDsl.g:14875:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
+            // InternalPerspectiveDsl.g:14876:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
             {
             pushFollow(FOLLOW_107);
             rule__XSwitchExpression__Group_2_0__1__Impl();
@@ -48995,23 +49180,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
-    // InternalPerspectiveDsl.g:14835:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:14883: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 {
-            // InternalPerspectiveDsl.g:14839:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
-            // InternalPerspectiveDsl.g:14840:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalPerspectiveDsl.g:14887:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+            // InternalPerspectiveDsl.g:14888:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:14840:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
-            // InternalPerspectiveDsl.g:14841:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalPerspectiveDsl.g:14888:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalPerspectiveDsl.g:14889:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
             }
-            // InternalPerspectiveDsl.g:14842:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
-            // InternalPerspectiveDsl.g:14842:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
+            // InternalPerspectiveDsl.g:14890:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalPerspectiveDsl.g:14890:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_0_1();
@@ -49046,14 +49231,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
-    // InternalPerspectiveDsl.g:14850:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
+    // InternalPerspectiveDsl.g:14898: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 {
-            // InternalPerspectiveDsl.g:14854:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
-            // InternalPerspectiveDsl.g:14855:2: rule__XSwitchExpression__Group_2_0__2__Impl
+            // InternalPerspectiveDsl.g:14902:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
+            // InternalPerspectiveDsl.g:14903:2: rule__XSwitchExpression__Group_2_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0__2__Impl();
@@ -49079,17 +49264,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
-    // InternalPerspectiveDsl.g:14861:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:14909:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
     public final void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14865:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:14866:1: ( ')' )
+            // InternalPerspectiveDsl.g:14913:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:14914:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:14866:1: ( ')' )
-            // InternalPerspectiveDsl.g:14867:2: ')'
+            // InternalPerspectiveDsl.g:14914:1: ( ')' )
+            // InternalPerspectiveDsl.g:14915:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
@@ -49120,14 +49305,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
-    // InternalPerspectiveDsl.g:14877:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:14925: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 {
-            // InternalPerspectiveDsl.g:14881:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:14882:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+            // InternalPerspectiveDsl.g:14929:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:14930:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0__Impl();
@@ -49153,23 +49338,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:14888:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14936: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 {
-            // InternalPerspectiveDsl.g:14892:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14893:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14940:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14941:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14893:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:14894:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalPerspectiveDsl.g:14941:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14942:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14895:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
-            // InternalPerspectiveDsl.g:14895:3: rule__XSwitchExpression__Group_2_0_0_0__0
+            // InternalPerspectiveDsl.g:14943:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalPerspectiveDsl.g:14943:3: rule__XSwitchExpression__Group_2_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__0();
@@ -49204,14 +49389,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
-    // InternalPerspectiveDsl.g:14904: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 ;
+    // InternalPerspectiveDsl.g:14952: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 {
-            // InternalPerspectiveDsl.g:14908:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
-            // InternalPerspectiveDsl.g:14909:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+            // InternalPerspectiveDsl.g:14956:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+            // InternalPerspectiveDsl.g:14957:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
             {
             pushFollow(FOLLOW_79);
             rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
@@ -49242,17 +49427,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:14916:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:14964: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 {
-            // InternalPerspectiveDsl.g:14920:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:14921:1: ( '(' )
+            // InternalPerspectiveDsl.g:14968:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:14969:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:14921:1: ( '(' )
-            // InternalPerspectiveDsl.g:14922:2: '('
+            // InternalPerspectiveDsl.g:14969:1: ( '(' )
+            // InternalPerspectiveDsl.g:14970:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
@@ -49283,14 +49468,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
-    // InternalPerspectiveDsl.g:14931: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 ;
+    // InternalPerspectiveDsl.g:14979: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 {
-            // InternalPerspectiveDsl.g:14935:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
-            // InternalPerspectiveDsl.g:14936:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
+            // InternalPerspectiveDsl.g:14983:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
+            // InternalPerspectiveDsl.g:14984:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
             {
             pushFollow(FOLLOW_114);
             rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
@@ -49321,23 +49506,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:14943:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:14991: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 {
-            // InternalPerspectiveDsl.g:14947:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:14948:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:14995:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:14996:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:14948:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
-            // InternalPerspectiveDsl.g:14949:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalPerspectiveDsl.g:14996:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:14997:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:14950:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
-            // InternalPerspectiveDsl.g:14950:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+            // InternalPerspectiveDsl.g:14998:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalPerspectiveDsl.g:14998:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();
@@ -49372,14 +49557,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
-    // InternalPerspectiveDsl.g:14958:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:15006: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 {
-            // InternalPerspectiveDsl.g:14962:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:14963:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:15010:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:15011:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__2__Impl();
@@ -49405,17 +49590,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:14969:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:15017: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 {
-            // InternalPerspectiveDsl.g:14973:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:14974:1: ( ':' )
+            // InternalPerspectiveDsl.g:15021:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:15022:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:14974:1: ( ':' )
-            // InternalPerspectiveDsl.g:14975:2: ':'
+            // InternalPerspectiveDsl.g:15022:1: ( ':' )
+            // InternalPerspectiveDsl.g:15023:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
@@ -49446,14 +49631,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
-    // InternalPerspectiveDsl.g:14985:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+    // InternalPerspectiveDsl.g:15033: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 {
-            // InternalPerspectiveDsl.g:14989:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
-            // InternalPerspectiveDsl.g:14990:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+            // InternalPerspectiveDsl.g:15037:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+            // InternalPerspectiveDsl.g:15038:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
             {
             pushFollow(FOLLOW_111);
             rule__XSwitchExpression__Group_2_1__0__Impl();
@@ -49484,27 +49669,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
-    // InternalPerspectiveDsl.g:14997:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
+    // InternalPerspectiveDsl.g:15045: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 {
-            // InternalPerspectiveDsl.g:15001:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
-            // InternalPerspectiveDsl.g:15002:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalPerspectiveDsl.g:15049:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
+            // InternalPerspectiveDsl.g:15050:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
             {
-            // InternalPerspectiveDsl.g:15002:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
-            // InternalPerspectiveDsl.g:15003:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            // InternalPerspectiveDsl.g:15050:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalPerspectiveDsl.g:15051:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:15004:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
-            int alt104=2;
-            alt104 = dfa104.predict(input);
-            switch (alt104) {
+            // InternalPerspectiveDsl.g:15052:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            int alt105=2;
+            alt105 = dfa105.predict(input);
+            switch (alt105) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15004:3: rule__XSwitchExpression__Group_2_1_0__0
+                    // InternalPerspectiveDsl.g:15052:3: rule__XSwitchExpression__Group_2_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1_0__0();
@@ -49542,14 +49727,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
-    // InternalPerspectiveDsl.g:15012:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
+    // InternalPerspectiveDsl.g:15060: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 {
-            // InternalPerspectiveDsl.g:15016:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
-            // InternalPerspectiveDsl.g:15017:2: rule__XSwitchExpression__Group_2_1__1__Impl
+            // InternalPerspectiveDsl.g:15064:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
+            // InternalPerspectiveDsl.g:15065:2: rule__XSwitchExpression__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1__1__Impl();
@@ -49575,23 +49760,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
-    // InternalPerspectiveDsl.g:15023:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:15071: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 {
-            // InternalPerspectiveDsl.g:15027:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
-            // InternalPerspectiveDsl.g:15028:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalPerspectiveDsl.g:15075:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+            // InternalPerspectiveDsl.g:15076:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:15028:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
-            // InternalPerspectiveDsl.g:15029:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalPerspectiveDsl.g:15076:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalPerspectiveDsl.g:15077:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
             }
-            // InternalPerspectiveDsl.g:15030:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
-            // InternalPerspectiveDsl.g:15030:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
+            // InternalPerspectiveDsl.g:15078:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalPerspectiveDsl.g:15078:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_1_1();
@@ -49626,14 +49811,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
-    // InternalPerspectiveDsl.g:15039:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:15087: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 {
-            // InternalPerspectiveDsl.g:15043:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:15044:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+            // InternalPerspectiveDsl.g:15091:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:15092:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0__0__Impl();
@@ -49659,23 +49844,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:15050:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:15098: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 {
-            // InternalPerspectiveDsl.g:15054:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:15055:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:15102:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:15103:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:15055:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:15056:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalPerspectiveDsl.g:15103:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:15104:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:15057:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
-            // InternalPerspectiveDsl.g:15057:3: rule__XSwitchExpression__Group_2_1_0_0__0
+            // InternalPerspectiveDsl.g:15105:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalPerspectiveDsl.g:15105:3: rule__XSwitchExpression__Group_2_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__0();
@@ -49710,14 +49895,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
-    // InternalPerspectiveDsl.g:15066: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 ;
+    // InternalPerspectiveDsl.g:15114: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 {
-            // InternalPerspectiveDsl.g:15070:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
-            // InternalPerspectiveDsl.g:15071:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+            // InternalPerspectiveDsl.g:15118:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+            // InternalPerspectiveDsl.g:15119:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
             {
             pushFollow(FOLLOW_114);
             rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
@@ -49748,23 +49933,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:15078:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:15126: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 {
-            // InternalPerspectiveDsl.g:15082:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:15083:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:15130:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:15131:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:15083:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
-            // InternalPerspectiveDsl.g:15084:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalPerspectiveDsl.g:15131:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:15132:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:15085:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
-            // InternalPerspectiveDsl.g:15085:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+            // InternalPerspectiveDsl.g:15133:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalPerspectiveDsl.g:15133:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();
@@ -49799,14 +49984,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
-    // InternalPerspectiveDsl.g:15093:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:15141: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 {
-            // InternalPerspectiveDsl.g:15097:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:15098:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:15145:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:15146:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
@@ -49832,17 +50017,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:15104:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:15152: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 {
-            // InternalPerspectiveDsl.g:15108:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:15109:1: ( ':' )
+            // InternalPerspectiveDsl.g:15156:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:15157:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:15109:1: ( ':' )
-            // InternalPerspectiveDsl.g:15110:2: ':'
+            // InternalPerspectiveDsl.g:15157:1: ( ':' )
+            // InternalPerspectiveDsl.g:15158:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
@@ -49873,14 +50058,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0"
-    // InternalPerspectiveDsl.g:15120:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+    // InternalPerspectiveDsl.g:15168: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 {
-            // InternalPerspectiveDsl.g:15124:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
-            // InternalPerspectiveDsl.g:15125:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+            // InternalPerspectiveDsl.g:15172:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+            // InternalPerspectiveDsl.g:15173:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
             {
             pushFollow(FOLLOW_114);
             rule__XSwitchExpression__Group_5__0__Impl();
@@ -49911,17 +50096,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
-    // InternalPerspectiveDsl.g:15132:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+    // InternalPerspectiveDsl.g:15180:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
     public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15136:1: ( ( 'default' ) )
-            // InternalPerspectiveDsl.g:15137:1: ( 'default' )
+            // InternalPerspectiveDsl.g:15184:1: ( ( 'default' ) )
+            // InternalPerspectiveDsl.g:15185:1: ( 'default' )
             {
-            // InternalPerspectiveDsl.g:15137:1: ( 'default' )
-            // InternalPerspectiveDsl.g:15138:2: 'default'
+            // InternalPerspectiveDsl.g:15185:1: ( 'default' )
+            // InternalPerspectiveDsl.g:15186:2: 'default'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
@@ -49952,14 +50137,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1"
-    // InternalPerspectiveDsl.g:15147:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+    // InternalPerspectiveDsl.g:15195: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 {
-            // InternalPerspectiveDsl.g:15151:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
-            // InternalPerspectiveDsl.g:15152:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+            // InternalPerspectiveDsl.g:15199:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+            // InternalPerspectiveDsl.g:15200:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
             {
             pushFollow(FOLLOW_62);
             rule__XSwitchExpression__Group_5__1__Impl();
@@ -49990,17 +50175,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
-    // InternalPerspectiveDsl.g:15159:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:15207:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15163:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:15164:1: ( ':' )
+            // InternalPerspectiveDsl.g:15211:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:15212:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:15164:1: ( ':' )
-            // InternalPerspectiveDsl.g:15165:2: ':'
+            // InternalPerspectiveDsl.g:15212:1: ( ':' )
+            // InternalPerspectiveDsl.g:15213:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
@@ -50031,14 +50216,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2"
-    // InternalPerspectiveDsl.g:15174:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+    // InternalPerspectiveDsl.g:15222: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 {
-            // InternalPerspectiveDsl.g:15178:1: ( rule__XSwitchExpression__Group_5__2__Impl )
-            // InternalPerspectiveDsl.g:15179:2: rule__XSwitchExpression__Group_5__2__Impl
+            // InternalPerspectiveDsl.g:15226:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+            // InternalPerspectiveDsl.g:15227:2: rule__XSwitchExpression__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_5__2__Impl();
@@ -50064,23 +50249,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
-    // InternalPerspectiveDsl.g:15185:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+    // InternalPerspectiveDsl.g:15233: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 {
-            // InternalPerspectiveDsl.g:15189:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
-            // InternalPerspectiveDsl.g:15190:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalPerspectiveDsl.g:15237:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+            // InternalPerspectiveDsl.g:15238:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
             {
-            // InternalPerspectiveDsl.g:15190:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
-            // InternalPerspectiveDsl.g:15191:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalPerspectiveDsl.g:15238:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalPerspectiveDsl.g:15239:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
             }
-            // InternalPerspectiveDsl.g:15192:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
-            // InternalPerspectiveDsl.g:15192:3: rule__XSwitchExpression__DefaultAssignment_5_2
+            // InternalPerspectiveDsl.g:15240:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalPerspectiveDsl.g:15240:3: rule__XSwitchExpression__DefaultAssignment_5_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DefaultAssignment_5_2();
@@ -50115,14 +50300,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0"
-    // InternalPerspectiveDsl.g:15201:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+    // InternalPerspectiveDsl.g:15249: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 {
-            // InternalPerspectiveDsl.g:15205:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
-            // InternalPerspectiveDsl.g:15206:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+            // InternalPerspectiveDsl.g:15253:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+            // InternalPerspectiveDsl.g:15254:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
             {
             pushFollow(FOLLOW_115);
             rule__XCasePart__Group__0__Impl();
@@ -50153,23 +50338,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:15213:1: rule__XCasePart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:15261:1: rule__XCasePart__Group__0__Impl : ( () ) ;
     public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15217:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:15218:1: ( () )
+            // InternalPerspectiveDsl.g:15265:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:15266:1: ( () )
             {
-            // InternalPerspectiveDsl.g:15218:1: ( () )
-            // InternalPerspectiveDsl.g:15219:2: ()
+            // InternalPerspectiveDsl.g:15266:1: ( () )
+            // InternalPerspectiveDsl.g:15267:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:15220:2: ()
-            // InternalPerspectiveDsl.g:15220:3: 
+            // InternalPerspectiveDsl.g:15268:2: ()
+            // InternalPerspectiveDsl.g:15268:3: 
             {
             }
 
@@ -50194,14 +50379,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1"
-    // InternalPerspectiveDsl.g:15228:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+    // InternalPerspectiveDsl.g:15276: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 {
-            // InternalPerspectiveDsl.g:15232:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
-            // InternalPerspectiveDsl.g:15233:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+            // InternalPerspectiveDsl.g:15280:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+            // InternalPerspectiveDsl.g:15281:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
             {
             pushFollow(FOLLOW_115);
             rule__XCasePart__Group__1__Impl();
@@ -50232,31 +50417,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:15240:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
+    // InternalPerspectiveDsl.g:15288:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
     public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15244:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
-            // InternalPerspectiveDsl.g:15245:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalPerspectiveDsl.g:15292:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
+            // InternalPerspectiveDsl.g:15293:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
             {
-            // InternalPerspectiveDsl.g:15245:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
-            // InternalPerspectiveDsl.g:15246:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            // InternalPerspectiveDsl.g:15293:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalPerspectiveDsl.g:15294:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:15247:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
-            int alt105=2;
-            int LA105_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:15295:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            int alt106=2;
+            int LA106_0 = input.LA(1);
 
-            if ( (LA105_0==RULE_ID||LA105_0==31||LA105_0==98) ) {
-                alt105=1;
+            if ( (LA106_0==RULE_ID||LA106_0==31||LA106_0==98) ) {
+                alt106=1;
             }
-            switch (alt105) {
+            switch (alt106) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15247:3: rule__XCasePart__TypeGuardAssignment_1
+                    // InternalPerspectiveDsl.g:15295:3: rule__XCasePart__TypeGuardAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__TypeGuardAssignment_1();
@@ -50294,14 +50479,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2"
-    // InternalPerspectiveDsl.g:15255:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+    // InternalPerspectiveDsl.g:15303: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 {
-            // InternalPerspectiveDsl.g:15259:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
-            // InternalPerspectiveDsl.g:15260:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+            // InternalPerspectiveDsl.g:15307:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+            // InternalPerspectiveDsl.g:15308:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
             {
             pushFollow(FOLLOW_115);
             rule__XCasePart__Group__2__Impl();
@@ -50332,31 +50517,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:15267:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
+    // InternalPerspectiveDsl.g:15315: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 {
-            // InternalPerspectiveDsl.g:15271:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
-            // InternalPerspectiveDsl.g:15272:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalPerspectiveDsl.g:15319:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
+            // InternalPerspectiveDsl.g:15320:1: ( ( rule__XCasePart__Group_2__0 )? )
             {
-            // InternalPerspectiveDsl.g:15272:1: ( ( rule__XCasePart__Group_2__0 )? )
-            // InternalPerspectiveDsl.g:15273:2: ( rule__XCasePart__Group_2__0 )?
+            // InternalPerspectiveDsl.g:15320:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalPerspectiveDsl.g:15321:2: ( rule__XCasePart__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup_2()); 
             }
-            // InternalPerspectiveDsl.g:15274:2: ( rule__XCasePart__Group_2__0 )?
-            int alt106=2;
-            int LA106_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:15322:2: ( rule__XCasePart__Group_2__0 )?
+            int alt107=2;
+            int LA107_0 = input.LA(1);
 
-            if ( (LA106_0==111) ) {
-                alt106=1;
+            if ( (LA107_0==111) ) {
+                alt107=1;
             }
-            switch (alt106) {
+            switch (alt107) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15274:3: rule__XCasePart__Group_2__0
+                    // InternalPerspectiveDsl.g:15322:3: rule__XCasePart__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_2__0();
@@ -50394,14 +50579,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3"
-    // InternalPerspectiveDsl.g:15282:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:15330:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
     public final void rule__XCasePart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15286:1: ( rule__XCasePart__Group__3__Impl )
-            // InternalPerspectiveDsl.g:15287:2: rule__XCasePart__Group__3__Impl
+            // InternalPerspectiveDsl.g:15334:1: ( rule__XCasePart__Group__3__Impl )
+            // InternalPerspectiveDsl.g:15335:2: rule__XCasePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__3__Impl();
@@ -50427,23 +50612,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3__Impl"
-    // InternalPerspectiveDsl.g:15293:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
+    // InternalPerspectiveDsl.g:15341:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
     public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15297:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
-            // InternalPerspectiveDsl.g:15298:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:15345:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
+            // InternalPerspectiveDsl.g:15346:1: ( ( rule__XCasePart__Alternatives_3 ) )
             {
-            // InternalPerspectiveDsl.g:15298:1: ( ( rule__XCasePart__Alternatives_3 ) )
-            // InternalPerspectiveDsl.g:15299:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalPerspectiveDsl.g:15346:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:15347:2: ( rule__XCasePart__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
             }
-            // InternalPerspectiveDsl.g:15300:2: ( rule__XCasePart__Alternatives_3 )
-            // InternalPerspectiveDsl.g:15300:3: rule__XCasePart__Alternatives_3
+            // InternalPerspectiveDsl.g:15348:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalPerspectiveDsl.g:15348:3: rule__XCasePart__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Alternatives_3();
@@ -50478,14 +50663,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0"
-    // InternalPerspectiveDsl.g:15309:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
+    // InternalPerspectiveDsl.g:15357: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 {
-            // InternalPerspectiveDsl.g:15313:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
-            // InternalPerspectiveDsl.g:15314:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
+            // InternalPerspectiveDsl.g:15361:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
+            // InternalPerspectiveDsl.g:15362:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
             {
             pushFollow(FOLLOW_62);
             rule__XCasePart__Group_2__0__Impl();
@@ -50516,17 +50701,17 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
-    // InternalPerspectiveDsl.g:15321:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
+    // InternalPerspectiveDsl.g:15369:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
     public final void rule__XCasePart__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15325:1: ( ( 'case' ) )
-            // InternalPerspectiveDsl.g:15326:1: ( 'case' )
+            // InternalPerspectiveDsl.g:15373:1: ( ( 'case' ) )
+            // InternalPerspectiveDsl.g:15374:1: ( 'case' )
             {
-            // InternalPerspectiveDsl.g:15326:1: ( 'case' )
-            // InternalPerspectiveDsl.g:15327:2: 'case'
+            // InternalPerspectiveDsl.g:15374:1: ( 'case' )
+            // InternalPerspectiveDsl.g:15375:2: 'case'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
@@ -50557,14 +50742,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1"
-    // InternalPerspectiveDsl.g:15336:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
+    // InternalPerspectiveDsl.g:15384: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 {
-            // InternalPerspectiveDsl.g:15340:1: ( rule__XCasePart__Group_2__1__Impl )
-            // InternalPerspectiveDsl.g:15341:2: rule__XCasePart__Group_2__1__Impl
+            // InternalPerspectiveDsl.g:15388:1: ( rule__XCasePart__Group_2__1__Impl )
+            // InternalPerspectiveDsl.g:15389:2: rule__XCasePart__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_2__1__Impl();
@@ -50590,23 +50775,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
-    // InternalPerspectiveDsl.g:15347:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:15395: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 {
-            // InternalPerspectiveDsl.g:15351:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
-            // InternalPerspectiveDsl.g:15352:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalPerspectiveDsl.g:15399:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
+            // InternalPerspectiveDsl.g:15400:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:15352:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
-            // InternalPerspectiveDsl.g:15353:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalPerspectiveDsl.g:15400:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalPerspectiveDsl.g:15401:2: ( rule__XCasePart__CaseAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
             }
-            // InternalPerspectiveDsl.g:15354:2: ( rule__XCasePart__CaseAssignment_2_1 )
-            // InternalPerspectiveDsl.g:15354:3: rule__XCasePart__CaseAssignment_2_1
+            // InternalPerspectiveDsl.g:15402:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalPerspectiveDsl.g:15402:3: rule__XCasePart__CaseAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__CaseAssignment_2_1();
@@ -50641,14 +50826,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0"
-    // InternalPerspectiveDsl.g:15363:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:15411: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 {
-            // InternalPerspectiveDsl.g:15367:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:15368:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
+            // InternalPerspectiveDsl.g:15415:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:15416:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
             {
             pushFollow(FOLLOW_62);
             rule__XCasePart__Group_3_0__0__Impl();
@@ -50679,17 +50864,17 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:15375:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:15423:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
     public final void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15379:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:15380:1: ( ':' )
+            // InternalPerspectiveDsl.g:15427:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:15428:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:15380:1: ( ':' )
-            // InternalPerspectiveDsl.g:15381:2: ':'
+            // InternalPerspectiveDsl.g:15428:1: ( ':' )
+            // InternalPerspectiveDsl.g:15429:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
@@ -50720,14 +50905,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1"
-    // InternalPerspectiveDsl.g:15390:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:15438: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 {
-            // InternalPerspectiveDsl.g:15394:1: ( rule__XCasePart__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:15395:2: rule__XCasePart__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:15442:1: ( rule__XCasePart__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:15443:2: rule__XCasePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_3_0__1__Impl();
@@ -50753,23 +50938,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:15401:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:15449: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 {
-            // InternalPerspectiveDsl.g:15405:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:15406:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:15453:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:15454:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:15406:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:15407:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:15454:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:15455:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:15408:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:15408:3: rule__XCasePart__ThenAssignment_3_0_1
+            // InternalPerspectiveDsl.g:15456:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:15456:3: rule__XCasePart__ThenAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__ThenAssignment_3_0_1();
@@ -50804,14 +50989,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0"
-    // InternalPerspectiveDsl.g:15417:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:15465: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 {
-            // InternalPerspectiveDsl.g:15421:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
-            // InternalPerspectiveDsl.g:15422:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+            // InternalPerspectiveDsl.g:15469:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+            // InternalPerspectiveDsl.g:15470:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
             {
             pushFollow(FOLLOW_62);
             rule__XForLoopExpression__Group__0__Impl();
@@ -50842,23 +51027,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:15429:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:15477: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 {
-            // InternalPerspectiveDsl.g:15433:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:15434:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:15481:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:15482:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:15434:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:15435:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:15482:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:15483:2: ( rule__XForLoopExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:15436:2: ( rule__XForLoopExpression__Group_0__0 )
-            // InternalPerspectiveDsl.g:15436:3: rule__XForLoopExpression__Group_0__0
+            // InternalPerspectiveDsl.g:15484:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:15484:3: rule__XForLoopExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0();
@@ -50893,14 +51078,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1"
-    // InternalPerspectiveDsl.g:15444:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:15492: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 {
-            // InternalPerspectiveDsl.g:15448:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
-            // InternalPerspectiveDsl.g:15449:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+            // InternalPerspectiveDsl.g:15496:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+            // InternalPerspectiveDsl.g:15497:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
             {
             pushFollow(FOLLOW_107);
             rule__XForLoopExpression__Group__1__Impl();
@@ -50931,23 +51116,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:15456:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:15504:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
     public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15460:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:15461:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:15508:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:15509:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:15461:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
-            // InternalPerspectiveDsl.g:15462:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:15509:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:15510:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:15463:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
-            // InternalPerspectiveDsl.g:15463:3: rule__XForLoopExpression__ForExpressionAssignment_1
+            // InternalPerspectiveDsl.g:15511:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:15511:3: rule__XForLoopExpression__ForExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__ForExpressionAssignment_1();
@@ -50982,14 +51167,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2"
-    // InternalPerspectiveDsl.g:15471:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:15519: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 {
-            // InternalPerspectiveDsl.g:15475:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
-            // InternalPerspectiveDsl.g:15476:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+            // InternalPerspectiveDsl.g:15523:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+            // InternalPerspectiveDsl.g:15524:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
             {
             pushFollow(FOLLOW_62);
             rule__XForLoopExpression__Group__2__Impl();
@@ -51020,17 +51205,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:15483:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:15531:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15487:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:15488:1: ( ')' )
+            // InternalPerspectiveDsl.g:15535:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:15536:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:15488:1: ( ')' )
-            // InternalPerspectiveDsl.g:15489:2: ')'
+            // InternalPerspectiveDsl.g:15536:1: ( ')' )
+            // InternalPerspectiveDsl.g:15537:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
@@ -51061,14 +51246,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3"
-    // InternalPerspectiveDsl.g:15498:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:15546:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
     public final void rule__XForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15502:1: ( rule__XForLoopExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:15503:2: rule__XForLoopExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:15550:1: ( rule__XForLoopExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:15551:2: rule__XForLoopExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__3__Impl();
@@ -51094,23 +51279,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:15509:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:15557:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
     public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15513:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:15514:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:15561:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:15562:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:15514:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
-            // InternalPerspectiveDsl.g:15515:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:15562:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:15563:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:15516:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
-            // InternalPerspectiveDsl.g:15516:3: rule__XForLoopExpression__EachExpressionAssignment_3
+            // InternalPerspectiveDsl.g:15564:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:15564:3: rule__XForLoopExpression__EachExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__EachExpressionAssignment_3();
@@ -51145,14 +51330,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0"
-    // InternalPerspectiveDsl.g:15525:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:15573: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 {
-            // InternalPerspectiveDsl.g:15529:1: ( rule__XForLoopExpression__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:15530:2: rule__XForLoopExpression__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:15577:1: ( rule__XForLoopExpression__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:15578:2: rule__XForLoopExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0__Impl();
@@ -51178,23 +51363,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:15536:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:15584: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 {
-            // InternalPerspectiveDsl.g:15540:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:15541:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:15588:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:15589:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:15541:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:15542:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:15589:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:15590:2: ( rule__XForLoopExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:15543:2: ( rule__XForLoopExpression__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:15543:3: rule__XForLoopExpression__Group_0_0__0
+            // InternalPerspectiveDsl.g:15591:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:15591:3: rule__XForLoopExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__0();
@@ -51229,14 +51414,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
-    // InternalPerspectiveDsl.g:15552:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:15600: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 {
-            // InternalPerspectiveDsl.g:15556:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:15557:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
+            // InternalPerspectiveDsl.g:15604:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:15605:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
             {
             pushFollow(FOLLOW_116);
             rule__XForLoopExpression__Group_0_0__0__Impl();
@@ -51267,23 +51452,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:15564:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:15612:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15568:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:15569:1: ( () )
+            // InternalPerspectiveDsl.g:15616:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:15617:1: ( () )
             {
-            // InternalPerspectiveDsl.g:15569:1: ( () )
-            // InternalPerspectiveDsl.g:15570:2: ()
+            // InternalPerspectiveDsl.g:15617:1: ( () )
+            // InternalPerspectiveDsl.g:15618:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:15571:2: ()
-            // InternalPerspectiveDsl.g:15571:3: 
+            // InternalPerspectiveDsl.g:15619:2: ()
+            // InternalPerspectiveDsl.g:15619:3: 
             {
             }
 
@@ -51308,14 +51493,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
-    // InternalPerspectiveDsl.g:15579:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
+    // InternalPerspectiveDsl.g:15627: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 {
-            // InternalPerspectiveDsl.g:15583:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
-            // InternalPerspectiveDsl.g:15584:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
+            // InternalPerspectiveDsl.g:15631:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
+            // InternalPerspectiveDsl.g:15632:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
             {
             pushFollow(FOLLOW_58);
             rule__XForLoopExpression__Group_0_0__1__Impl();
@@ -51346,17 +51531,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:15591:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
+    // InternalPerspectiveDsl.g:15639: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 {
-            // InternalPerspectiveDsl.g:15595:1: ( ( 'for' ) )
-            // InternalPerspectiveDsl.g:15596:1: ( 'for' )
+            // InternalPerspectiveDsl.g:15643:1: ( ( 'for' ) )
+            // InternalPerspectiveDsl.g:15644:1: ( 'for' )
             {
-            // InternalPerspectiveDsl.g:15596:1: ( 'for' )
-            // InternalPerspectiveDsl.g:15597:2: 'for'
+            // InternalPerspectiveDsl.g:15644:1: ( 'for' )
+            // InternalPerspectiveDsl.g:15645:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
@@ -51387,14 +51572,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
-    // InternalPerspectiveDsl.g:15606:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
+    // InternalPerspectiveDsl.g:15654: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 {
-            // InternalPerspectiveDsl.g:15610:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
-            // InternalPerspectiveDsl.g:15611:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
+            // InternalPerspectiveDsl.g:15658:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
+            // InternalPerspectiveDsl.g:15659:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
             {
             pushFollow(FOLLOW_79);
             rule__XForLoopExpression__Group_0_0__2__Impl();
@@ -51425,17 +51610,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:15618:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:15666:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15622:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:15623:1: ( '(' )
+            // InternalPerspectiveDsl.g:15670:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:15671:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:15623:1: ( '(' )
-            // InternalPerspectiveDsl.g:15624:2: '('
+            // InternalPerspectiveDsl.g:15671:1: ( '(' )
+            // InternalPerspectiveDsl.g:15672:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
@@ -51466,14 +51651,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
-    // InternalPerspectiveDsl.g:15633:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
+    // InternalPerspectiveDsl.g:15681: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 {
-            // InternalPerspectiveDsl.g:15637:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
-            // InternalPerspectiveDsl.g:15638:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
+            // InternalPerspectiveDsl.g:15685:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
+            // InternalPerspectiveDsl.g:15686:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
             {
             pushFollow(FOLLOW_114);
             rule__XForLoopExpression__Group_0_0__3__Impl();
@@ -51504,23 +51689,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
-    // InternalPerspectiveDsl.g:15645:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:15693: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 {
-            // InternalPerspectiveDsl.g:15649:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
-            // InternalPerspectiveDsl.g:15650:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalPerspectiveDsl.g:15697:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
+            // InternalPerspectiveDsl.g:15698:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:15650:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
-            // InternalPerspectiveDsl.g:15651:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalPerspectiveDsl.g:15698:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalPerspectiveDsl.g:15699:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
             }
-            // InternalPerspectiveDsl.g:15652:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
-            // InternalPerspectiveDsl.g:15652:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+            // InternalPerspectiveDsl.g:15700:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalPerspectiveDsl.g:15700:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();
@@ -51555,14 +51740,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
-    // InternalPerspectiveDsl.g:15660:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
+    // InternalPerspectiveDsl.g:15708: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 {
-            // InternalPerspectiveDsl.g:15664:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
-            // InternalPerspectiveDsl.g:15665:2: rule__XForLoopExpression__Group_0_0__4__Impl
+            // InternalPerspectiveDsl.g:15712:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
+            // InternalPerspectiveDsl.g:15713:2: rule__XForLoopExpression__Group_0_0__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__4__Impl();
@@ -51588,17 +51773,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
-    // InternalPerspectiveDsl.g:15671:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:15719:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
     public final void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15675:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:15676:1: ( ':' )
+            // InternalPerspectiveDsl.g:15723:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:15724:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:15676:1: ( ':' )
-            // InternalPerspectiveDsl.g:15677:2: ':'
+            // InternalPerspectiveDsl.g:15724:1: ( ':' )
+            // InternalPerspectiveDsl.g:15725:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
@@ -51629,14 +51814,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
-    // InternalPerspectiveDsl.g:15687:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:15735: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 {
-            // InternalPerspectiveDsl.g:15691:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
-            // InternalPerspectiveDsl.g:15692:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
+            // InternalPerspectiveDsl.g:15739:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
+            // InternalPerspectiveDsl.g:15740:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
             {
             pushFollow(FOLLOW_116);
             rule__XBasicForLoopExpression__Group__0__Impl();
@@ -51667,23 +51852,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:15699:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:15747:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15703:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:15704:1: ( () )
+            // InternalPerspectiveDsl.g:15751:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:15752:1: ( () )
             {
-            // InternalPerspectiveDsl.g:15704:1: ( () )
-            // InternalPerspectiveDsl.g:15705:2: ()
+            // InternalPerspectiveDsl.g:15752:1: ( () )
+            // InternalPerspectiveDsl.g:15753:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:15706:2: ()
-            // InternalPerspectiveDsl.g:15706:3: 
+            // InternalPerspectiveDsl.g:15754:2: ()
+            // InternalPerspectiveDsl.g:15754:3: 
             {
             }
 
@@ -51708,14 +51893,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
-    // InternalPerspectiveDsl.g:15714:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:15762: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 {
-            // InternalPerspectiveDsl.g:15718:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
-            // InternalPerspectiveDsl.g:15719:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
+            // InternalPerspectiveDsl.g:15766:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
+            // InternalPerspectiveDsl.g:15767:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
             {
             pushFollow(FOLLOW_58);
             rule__XBasicForLoopExpression__Group__1__Impl();
@@ -51746,17 +51931,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:15726:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
+    // InternalPerspectiveDsl.g:15774:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
     public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15730:1: ( ( 'for' ) )
-            // InternalPerspectiveDsl.g:15731:1: ( 'for' )
+            // InternalPerspectiveDsl.g:15778:1: ( ( 'for' ) )
+            // InternalPerspectiveDsl.g:15779:1: ( 'for' )
             {
-            // InternalPerspectiveDsl.g:15731:1: ( 'for' )
-            // InternalPerspectiveDsl.g:15732:2: 'for'
+            // InternalPerspectiveDsl.g:15779:1: ( 'for' )
+            // InternalPerspectiveDsl.g:15780:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
@@ -51787,14 +51972,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
-    // InternalPerspectiveDsl.g:15741:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:15789: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 {
-            // InternalPerspectiveDsl.g:15745:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
-            // InternalPerspectiveDsl.g:15746:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
+            // InternalPerspectiveDsl.g:15793:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
+            // InternalPerspectiveDsl.g:15794:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
             {
             pushFollow(FOLLOW_117);
             rule__XBasicForLoopExpression__Group__2__Impl();
@@ -51825,17 +52010,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:15753:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:15801:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15757:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:15758:1: ( '(' )
+            // InternalPerspectiveDsl.g:15805:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:15806:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:15758:1: ( '(' )
-            // InternalPerspectiveDsl.g:15759:2: '('
+            // InternalPerspectiveDsl.g:15806:1: ( '(' )
+            // InternalPerspectiveDsl.g:15807:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
@@ -51866,14 +52051,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
-    // InternalPerspectiveDsl.g:15768:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:15816: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 {
-            // InternalPerspectiveDsl.g:15772:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
-            // InternalPerspectiveDsl.g:15773:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
+            // InternalPerspectiveDsl.g:15820:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
+            // InternalPerspectiveDsl.g:15821:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
             {
             pushFollow(FOLLOW_117);
             rule__XBasicForLoopExpression__Group__3__Impl();
@@ -51904,31 +52089,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:15780:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:15828: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 {
-            // InternalPerspectiveDsl.g:15784:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:15785:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:15832:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:15833:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:15785:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:15786:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            // InternalPerspectiveDsl.g:15833:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:15834:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:15787:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
-            int alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:15835:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            int alt108=2;
+            int LA108_0 = input.LA(1);
 
-            if ( ((LA107_0>=RULE_ID && LA107_0<=RULE_DECIMAL)||LA107_0==27||(LA107_0>=34 && LA107_0<=35)||LA107_0==40||(LA107_0>=44 && LA107_0<=50)||LA107_0==54||LA107_0==98||(LA107_0>=102 && LA107_0<=103)||LA107_0==106||LA107_0==108||(LA107_0>=112 && LA107_0<=120)||LA107_0==122||(LA107_0>=132 && LA107_0<=133)) ) {
-                alt107=1;
+            if ( ((LA108_0>=RULE_ID && LA108_0<=RULE_DECIMAL)||LA108_0==27||(LA108_0>=34 && LA108_0<=35)||LA108_0==40||(LA108_0>=44 && LA108_0<=50)||LA108_0==54||LA108_0==98||(LA108_0>=102 && LA108_0<=103)||LA108_0==106||LA108_0==108||(LA108_0>=112 && LA108_0<=120)||LA108_0==122||(LA108_0>=133 && LA108_0<=134)) ) {
+                alt108=1;
             }
-            switch (alt107) {
+            switch (alt108) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15787:3: rule__XBasicForLoopExpression__Group_3__0
+                    // InternalPerspectiveDsl.g:15835:3: rule__XBasicForLoopExpression__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_3__0();
@@ -51966,14 +52151,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
-    // InternalPerspectiveDsl.g:15795:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:15843: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 {
-            // InternalPerspectiveDsl.g:15799:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
-            // InternalPerspectiveDsl.g:15800:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
+            // InternalPerspectiveDsl.g:15847:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
+            // InternalPerspectiveDsl.g:15848:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
             {
             pushFollow(FOLLOW_118);
             rule__XBasicForLoopExpression__Group__4__Impl();
@@ -52004,17 +52189,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:15807:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
+    // InternalPerspectiveDsl.g:15855:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15811:1: ( ( ';' ) )
-            // InternalPerspectiveDsl.g:15812:1: ( ';' )
+            // InternalPerspectiveDsl.g:15859:1: ( ( ';' ) )
+            // InternalPerspectiveDsl.g:15860:1: ( ';' )
             {
-            // InternalPerspectiveDsl.g:15812:1: ( ';' )
-            // InternalPerspectiveDsl.g:15813:2: ';'
+            // InternalPerspectiveDsl.g:15860:1: ( ';' )
+            // InternalPerspectiveDsl.g:15861:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
@@ -52045,14 +52230,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
-    // InternalPerspectiveDsl.g:15822:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:15870: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 {
-            // InternalPerspectiveDsl.g:15826:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
-            // InternalPerspectiveDsl.g:15827:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
+            // InternalPerspectiveDsl.g:15874:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
+            // InternalPerspectiveDsl.g:15875:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
             {
             pushFollow(FOLLOW_118);
             rule__XBasicForLoopExpression__Group__5__Impl();
@@ -52083,31 +52268,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:15834:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
+    // InternalPerspectiveDsl.g:15882:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15838:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
-            // InternalPerspectiveDsl.g:15839:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalPerspectiveDsl.g:15886:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
+            // InternalPerspectiveDsl.g:15887:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
             {
-            // InternalPerspectiveDsl.g:15839:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
-            // InternalPerspectiveDsl.g:15840:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            // InternalPerspectiveDsl.g:15887:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalPerspectiveDsl.g:15888:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:15841:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
-            int alt108=2;
-            int LA108_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:15889:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            int alt109=2;
+            int LA109_0 = input.LA(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==54||LA108_0==98||(LA108_0>=102 && LA108_0<=103)||LA108_0==106||LA108_0==108||(LA108_0>=112 && LA108_0<=120)||LA108_0==122||LA108_0==133) ) {
-                alt108=1;
+            if ( ((LA109_0>=RULE_ID && LA109_0<=RULE_DECIMAL)||LA109_0==27||(LA109_0>=34 && LA109_0<=35)||LA109_0==40||(LA109_0>=45 && LA109_0<=50)||LA109_0==54||LA109_0==98||(LA109_0>=102 && LA109_0<=103)||LA109_0==106||LA109_0==108||(LA109_0>=112 && LA109_0<=120)||LA109_0==122||LA109_0==134) ) {
+                alt109=1;
             }
-            switch (alt108) {
+            switch (alt109) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15841:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
+                    // InternalPerspectiveDsl.g:15889:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__ExpressionAssignment_5();
@@ -52145,14 +52330,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
-    // InternalPerspectiveDsl.g:15849:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
+    // InternalPerspectiveDsl.g:15897: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 {
-            // InternalPerspectiveDsl.g:15853:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
-            // InternalPerspectiveDsl.g:15854:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
+            // InternalPerspectiveDsl.g:15901:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
+            // InternalPerspectiveDsl.g:15902:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
             {
             pushFollow(FOLLOW_59);
             rule__XBasicForLoopExpression__Group__6__Impl();
@@ -52183,17 +52368,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:15861:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
+    // InternalPerspectiveDsl.g:15909:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15865:1: ( ( ';' ) )
-            // InternalPerspectiveDsl.g:15866:1: ( ';' )
+            // InternalPerspectiveDsl.g:15913:1: ( ( ';' ) )
+            // InternalPerspectiveDsl.g:15914:1: ( ';' )
             {
-            // InternalPerspectiveDsl.g:15866:1: ( ';' )
-            // InternalPerspectiveDsl.g:15867:2: ';'
+            // InternalPerspectiveDsl.g:15914:1: ( ';' )
+            // InternalPerspectiveDsl.g:15915:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
@@ -52224,14 +52409,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
-    // InternalPerspectiveDsl.g:15876:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
+    // InternalPerspectiveDsl.g:15924: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 {
-            // InternalPerspectiveDsl.g:15880:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
-            // InternalPerspectiveDsl.g:15881:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
+            // InternalPerspectiveDsl.g:15928:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
+            // InternalPerspectiveDsl.g:15929:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
             {
             pushFollow(FOLLOW_59);
             rule__XBasicForLoopExpression__Group__7__Impl();
@@ -52262,31 +52447,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
-    // InternalPerspectiveDsl.g:15888:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
+    // InternalPerspectiveDsl.g:15936: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 {
-            // InternalPerspectiveDsl.g:15892:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
-            // InternalPerspectiveDsl.g:15893:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalPerspectiveDsl.g:15940:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
+            // InternalPerspectiveDsl.g:15941:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
             {
-            // InternalPerspectiveDsl.g:15893:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
-            // InternalPerspectiveDsl.g:15894:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            // InternalPerspectiveDsl.g:15941:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalPerspectiveDsl.g:15942:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
             }
-            // InternalPerspectiveDsl.g:15895:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
-            int alt109=2;
-            int LA109_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:15943:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            int alt110=2;
+            int LA110_0 = input.LA(1);
 
-            if ( ((LA109_0>=RULE_ID && LA109_0<=RULE_DECIMAL)||LA109_0==27||(LA109_0>=34 && LA109_0<=35)||LA109_0==40||(LA109_0>=45 && LA109_0<=50)||LA109_0==54||LA109_0==98||(LA109_0>=102 && LA109_0<=103)||LA109_0==106||LA109_0==108||(LA109_0>=112 && LA109_0<=120)||LA109_0==122||LA109_0==133) ) {
-                alt109=1;
+            if ( ((LA110_0>=RULE_ID && LA110_0<=RULE_DECIMAL)||LA110_0==27||(LA110_0>=34 && LA110_0<=35)||LA110_0==40||(LA110_0>=45 && LA110_0<=50)||LA110_0==54||LA110_0==98||(LA110_0>=102 && LA110_0<=103)||LA110_0==106||LA110_0==108||(LA110_0>=112 && LA110_0<=120)||LA110_0==122||LA110_0==134) ) {
+                alt110=1;
             }
-            switch (alt109) {
+            switch (alt110) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15895:3: rule__XBasicForLoopExpression__Group_7__0
+                    // InternalPerspectiveDsl.g:15943:3: rule__XBasicForLoopExpression__Group_7__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_7__0();
@@ -52324,14 +52509,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
-    // InternalPerspectiveDsl.g:15903:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
+    // InternalPerspectiveDsl.g:15951: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 {
-            // InternalPerspectiveDsl.g:15907:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
-            // InternalPerspectiveDsl.g:15908:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
+            // InternalPerspectiveDsl.g:15955:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
+            // InternalPerspectiveDsl.g:15956:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
             {
             pushFollow(FOLLOW_62);
             rule__XBasicForLoopExpression__Group__8__Impl();
@@ -52362,17 +52547,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
-    // InternalPerspectiveDsl.g:15915:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:15963:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
     public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15919:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:15920:1: ( ')' )
+            // InternalPerspectiveDsl.g:15967:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:15968:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:15920:1: ( ')' )
-            // InternalPerspectiveDsl.g:15921:2: ')'
+            // InternalPerspectiveDsl.g:15968:1: ( ')' )
+            // InternalPerspectiveDsl.g:15969:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
@@ -52403,14 +52588,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
-    // InternalPerspectiveDsl.g:15930:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
+    // InternalPerspectiveDsl.g:15978:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
     public final void rule__XBasicForLoopExpression__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15934:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
-            // InternalPerspectiveDsl.g:15935:2: rule__XBasicForLoopExpression__Group__9__Impl
+            // InternalPerspectiveDsl.g:15982:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
+            // InternalPerspectiveDsl.g:15983:2: rule__XBasicForLoopExpression__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__9__Impl();
@@ -52436,23 +52621,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
-    // InternalPerspectiveDsl.g:15941:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
+    // InternalPerspectiveDsl.g:15989:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
     public final void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15945:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
-            // InternalPerspectiveDsl.g:15946:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalPerspectiveDsl.g:15993:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
+            // InternalPerspectiveDsl.g:15994:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
             {
-            // InternalPerspectiveDsl.g:15946:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
-            // InternalPerspectiveDsl.g:15947:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalPerspectiveDsl.g:15994:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalPerspectiveDsl.g:15995:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
             }
-            // InternalPerspectiveDsl.g:15948:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
-            // InternalPerspectiveDsl.g:15948:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
+            // InternalPerspectiveDsl.g:15996:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalPerspectiveDsl.g:15996:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__EachExpressionAssignment_9();
@@ -52487,14 +52672,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
-    // InternalPerspectiveDsl.g:15957:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
+    // InternalPerspectiveDsl.g:16005: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 {
-            // InternalPerspectiveDsl.g:15961:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
-            // InternalPerspectiveDsl.g:15962:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
+            // InternalPerspectiveDsl.g:16009:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
+            // InternalPerspectiveDsl.g:16010:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
             {
             pushFollow(FOLLOW_60);
             rule__XBasicForLoopExpression__Group_3__0__Impl();
@@ -52525,23 +52710,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:15969:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:16017: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 {
-            // InternalPerspectiveDsl.g:15973:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:15974:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:16021:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:16022:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:15974:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:15975:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:16022:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:16023:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:15976:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
-            // InternalPerspectiveDsl.g:15976:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+            // InternalPerspectiveDsl.g:16024:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:16024:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();
@@ -52576,14 +52761,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
-    // InternalPerspectiveDsl.g:15984:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:16032: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 {
-            // InternalPerspectiveDsl.g:15988:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:15989:2: rule__XBasicForLoopExpression__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:16036:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:16037:2: rule__XBasicForLoopExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3__1__Impl();
@@ -52609,35 +52794,35 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:15995:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:16043: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 {
-            // InternalPerspectiveDsl.g:15999:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
-            // InternalPerspectiveDsl.g:16000:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:16047:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
+            // InternalPerspectiveDsl.g:16048:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:16000:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
-            // InternalPerspectiveDsl.g:16001:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:16048:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:16049:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
             }
-            // InternalPerspectiveDsl.g:16002:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
-            loop110:
+            // InternalPerspectiveDsl.g:16050:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            loop111:
             do {
-                int alt110=2;
-                int LA110_0 = input.LA(1);
+                int alt111=2;
+                int LA111_0 = input.LA(1);
 
-                if ( (LA110_0==100) ) {
-                    alt110=1;
+                if ( (LA111_0==100) ) {
+                    alt111=1;
                 }
 
 
-                switch (alt110) {
+                switch (alt111) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:16002:3: rule__XBasicForLoopExpression__Group_3_1__0
+            	    // InternalPerspectiveDsl.g:16050:3: rule__XBasicForLoopExpression__Group_3_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XBasicForLoopExpression__Group_3_1__0();
@@ -52649,7 +52834,7 @@
             	    break;
 
             	default :
-            	    break loop110;
+            	    break loop111;
                 }
             } while (true);
 
@@ -52678,14 +52863,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
-    // InternalPerspectiveDsl.g:16011:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:16059: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 {
-            // InternalPerspectiveDsl.g:16015:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:16016:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
+            // InternalPerspectiveDsl.g:16063:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:16064:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
             {
             pushFollow(FOLLOW_119);
             rule__XBasicForLoopExpression__Group_3_1__0__Impl();
@@ -52716,17 +52901,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:16023:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:16071:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16027:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:16028:1: ( ',' )
+            // InternalPerspectiveDsl.g:16075:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:16076:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:16028:1: ( ',' )
-            // InternalPerspectiveDsl.g:16029:2: ','
+            // InternalPerspectiveDsl.g:16076:1: ( ',' )
+            // InternalPerspectiveDsl.g:16077:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
@@ -52757,14 +52942,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
-    // InternalPerspectiveDsl.g:16038:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:16086: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 {
-            // InternalPerspectiveDsl.g:16042:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:16043:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:16090:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:16091:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3_1__1__Impl();
@@ -52790,23 +52975,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:16049:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:16097: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 {
-            // InternalPerspectiveDsl.g:16053:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:16054:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:16101:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:16102:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:16054:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:16055:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:16102:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:16103:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:16056:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:16056:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+            // InternalPerspectiveDsl.g:16104:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:16104:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();
@@ -52841,14 +53026,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
-    // InternalPerspectiveDsl.g:16065:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
+    // InternalPerspectiveDsl.g:16113: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 {
-            // InternalPerspectiveDsl.g:16069:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
-            // InternalPerspectiveDsl.g:16070:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
+            // InternalPerspectiveDsl.g:16117:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
+            // InternalPerspectiveDsl.g:16118:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
             {
             pushFollow(FOLLOW_60);
             rule__XBasicForLoopExpression__Group_7__0__Impl();
@@ -52879,23 +53064,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
-    // InternalPerspectiveDsl.g:16077:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
+    // InternalPerspectiveDsl.g:16125: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 {
-            // InternalPerspectiveDsl.g:16081:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
-            // InternalPerspectiveDsl.g:16082:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalPerspectiveDsl.g:16129:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
+            // InternalPerspectiveDsl.g:16130:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
             {
-            // InternalPerspectiveDsl.g:16082:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
-            // InternalPerspectiveDsl.g:16083:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalPerspectiveDsl.g:16130:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalPerspectiveDsl.g:16131:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
             }
-            // InternalPerspectiveDsl.g:16084:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
-            // InternalPerspectiveDsl.g:16084:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+            // InternalPerspectiveDsl.g:16132:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalPerspectiveDsl.g:16132:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();
@@ -52930,14 +53115,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
-    // InternalPerspectiveDsl.g:16092:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
+    // InternalPerspectiveDsl.g:16140: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 {
-            // InternalPerspectiveDsl.g:16096:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
-            // InternalPerspectiveDsl.g:16097:2: rule__XBasicForLoopExpression__Group_7__1__Impl
+            // InternalPerspectiveDsl.g:16144:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
+            // InternalPerspectiveDsl.g:16145:2: rule__XBasicForLoopExpression__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7__1__Impl();
@@ -52963,35 +53148,35 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
-    // InternalPerspectiveDsl.g:16103:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:16151: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 {
-            // InternalPerspectiveDsl.g:16107:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
-            // InternalPerspectiveDsl.g:16108:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalPerspectiveDsl.g:16155:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
+            // InternalPerspectiveDsl.g:16156:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:16108:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
-            // InternalPerspectiveDsl.g:16109:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            // InternalPerspectiveDsl.g:16156:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalPerspectiveDsl.g:16157:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
             }
-            // InternalPerspectiveDsl.g:16110:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
-            loop111:
+            // InternalPerspectiveDsl.g:16158:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            loop112:
             do {
-                int alt111=2;
-                int LA111_0 = input.LA(1);
+                int alt112=2;
+                int LA112_0 = input.LA(1);
 
-                if ( (LA111_0==100) ) {
-                    alt111=1;
+                if ( (LA112_0==100) ) {
+                    alt112=1;
                 }
 
 
-                switch (alt111) {
+                switch (alt112) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:16110:3: rule__XBasicForLoopExpression__Group_7_1__0
+            	    // InternalPerspectiveDsl.g:16158:3: rule__XBasicForLoopExpression__Group_7_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XBasicForLoopExpression__Group_7_1__0();
@@ -53003,7 +53188,7 @@
             	    break;
 
             	default :
-            	    break loop111;
+            	    break loop112;
                 }
             } while (true);
 
@@ -53032,14 +53217,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
-    // InternalPerspectiveDsl.g:16119:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
+    // InternalPerspectiveDsl.g:16167: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 {
-            // InternalPerspectiveDsl.g:16123:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
-            // InternalPerspectiveDsl.g:16124:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
+            // InternalPerspectiveDsl.g:16171:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
+            // InternalPerspectiveDsl.g:16172:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XBasicForLoopExpression__Group_7_1__0__Impl();
@@ -53070,17 +53255,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
-    // InternalPerspectiveDsl.g:16131:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:16179:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16135:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:16136:1: ( ',' )
+            // InternalPerspectiveDsl.g:16183:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:16184:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:16136:1: ( ',' )
-            // InternalPerspectiveDsl.g:16137:2: ','
+            // InternalPerspectiveDsl.g:16184:1: ( ',' )
+            // InternalPerspectiveDsl.g:16185:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
@@ -53111,14 +53296,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
-    // InternalPerspectiveDsl.g:16146:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
+    // InternalPerspectiveDsl.g:16194: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 {
-            // InternalPerspectiveDsl.g:16150:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
-            // InternalPerspectiveDsl.g:16151:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
+            // InternalPerspectiveDsl.g:16198:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
+            // InternalPerspectiveDsl.g:16199:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7_1__1__Impl();
@@ -53144,23 +53329,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
-    // InternalPerspectiveDsl.g:16157:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:16205: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 {
-            // InternalPerspectiveDsl.g:16161:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
-            // InternalPerspectiveDsl.g:16162:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalPerspectiveDsl.g:16209:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
+            // InternalPerspectiveDsl.g:16210:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:16162:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
-            // InternalPerspectiveDsl.g:16163:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalPerspectiveDsl.g:16210:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalPerspectiveDsl.g:16211:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
             }
-            // InternalPerspectiveDsl.g:16164:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
-            // InternalPerspectiveDsl.g:16164:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+            // InternalPerspectiveDsl.g:16212:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalPerspectiveDsl.g:16212:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();
@@ -53195,14 +53380,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0"
-    // InternalPerspectiveDsl.g:16173:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:16221: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 {
-            // InternalPerspectiveDsl.g:16177:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
-            // InternalPerspectiveDsl.g:16178:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+            // InternalPerspectiveDsl.g:16225:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+            // InternalPerspectiveDsl.g:16226:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
             {
             pushFollow(FOLLOW_120);
             rule__XWhileExpression__Group__0__Impl();
@@ -53233,23 +53418,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16185:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:16233:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16189:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:16190:1: ( () )
+            // InternalPerspectiveDsl.g:16237:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:16238:1: ( () )
             {
-            // InternalPerspectiveDsl.g:16190:1: ( () )
-            // InternalPerspectiveDsl.g:16191:2: ()
+            // InternalPerspectiveDsl.g:16238:1: ( () )
+            // InternalPerspectiveDsl.g:16239:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:16192:2: ()
-            // InternalPerspectiveDsl.g:16192:3: 
+            // InternalPerspectiveDsl.g:16240:2: ()
+            // InternalPerspectiveDsl.g:16240:3: 
             {
             }
 
@@ -53274,14 +53459,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1"
-    // InternalPerspectiveDsl.g:16200:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:16248: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 {
-            // InternalPerspectiveDsl.g:16204:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
-            // InternalPerspectiveDsl.g:16205:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+            // InternalPerspectiveDsl.g:16252:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+            // InternalPerspectiveDsl.g:16253:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
             {
             pushFollow(FOLLOW_58);
             rule__XWhileExpression__Group__1__Impl();
@@ -53312,17 +53497,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16212:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+    // InternalPerspectiveDsl.g:16260:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
     public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16216:1: ( ( 'while' ) )
-            // InternalPerspectiveDsl.g:16217:1: ( 'while' )
+            // InternalPerspectiveDsl.g:16264:1: ( ( 'while' ) )
+            // InternalPerspectiveDsl.g:16265:1: ( 'while' )
             {
-            // InternalPerspectiveDsl.g:16217:1: ( 'while' )
-            // InternalPerspectiveDsl.g:16218:2: 'while'
+            // InternalPerspectiveDsl.g:16265:1: ( 'while' )
+            // InternalPerspectiveDsl.g:16266:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
@@ -53353,14 +53538,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2"
-    // InternalPerspectiveDsl.g:16227:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:16275: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 {
-            // InternalPerspectiveDsl.g:16231:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
-            // InternalPerspectiveDsl.g:16232:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+            // InternalPerspectiveDsl.g:16279:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+            // InternalPerspectiveDsl.g:16280:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
             {
             pushFollow(FOLLOW_62);
             rule__XWhileExpression__Group__2__Impl();
@@ -53391,17 +53576,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:16239:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:16287:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16243:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:16244:1: ( '(' )
+            // InternalPerspectiveDsl.g:16291:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:16292:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:16244:1: ( '(' )
-            // InternalPerspectiveDsl.g:16245:2: '('
+            // InternalPerspectiveDsl.g:16292:1: ( '(' )
+            // InternalPerspectiveDsl.g:16293:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
@@ -53432,14 +53617,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3"
-    // InternalPerspectiveDsl.g:16254:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:16302: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 {
-            // InternalPerspectiveDsl.g:16258:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
-            // InternalPerspectiveDsl.g:16259:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+            // InternalPerspectiveDsl.g:16306:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+            // InternalPerspectiveDsl.g:16307:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
             {
             pushFollow(FOLLOW_107);
             rule__XWhileExpression__Group__3__Impl();
@@ -53470,23 +53655,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:16266:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:16314:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
     public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16270:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:16271:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalPerspectiveDsl.g:16318:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:16319:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:16271:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
-            // InternalPerspectiveDsl.g:16272:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalPerspectiveDsl.g:16319:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalPerspectiveDsl.g:16320:2: ( rule__XWhileExpression__PredicateAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:16273:2: ( rule__XWhileExpression__PredicateAssignment_3 )
-            // InternalPerspectiveDsl.g:16273:3: rule__XWhileExpression__PredicateAssignment_3
+            // InternalPerspectiveDsl.g:16321:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalPerspectiveDsl.g:16321:3: rule__XWhileExpression__PredicateAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__PredicateAssignment_3();
@@ -53521,14 +53706,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4"
-    // InternalPerspectiveDsl.g:16281:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:16329: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 {
-            // InternalPerspectiveDsl.g:16285:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
-            // InternalPerspectiveDsl.g:16286:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+            // InternalPerspectiveDsl.g:16333:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+            // InternalPerspectiveDsl.g:16334:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
             {
             pushFollow(FOLLOW_62);
             rule__XWhileExpression__Group__4__Impl();
@@ -53559,17 +53744,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:16293:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:16341:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16297:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:16298:1: ( ')' )
+            // InternalPerspectiveDsl.g:16345:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:16346:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:16298:1: ( ')' )
-            // InternalPerspectiveDsl.g:16299:2: ')'
+            // InternalPerspectiveDsl.g:16346:1: ( ')' )
+            // InternalPerspectiveDsl.g:16347:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
@@ -53600,14 +53785,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5"
-    // InternalPerspectiveDsl.g:16308:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+    // InternalPerspectiveDsl.g:16356:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
     public final void rule__XWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16312:1: ( rule__XWhileExpression__Group__5__Impl )
-            // InternalPerspectiveDsl.g:16313:2: rule__XWhileExpression__Group__5__Impl
+            // InternalPerspectiveDsl.g:16360:1: ( rule__XWhileExpression__Group__5__Impl )
+            // InternalPerspectiveDsl.g:16361:2: rule__XWhileExpression__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__5__Impl();
@@ -53633,23 +53818,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:16319:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:16367:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
     public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16323:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:16324:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalPerspectiveDsl.g:16371:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:16372:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:16324:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
-            // InternalPerspectiveDsl.g:16325:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalPerspectiveDsl.g:16372:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalPerspectiveDsl.g:16373:2: ( rule__XWhileExpression__BodyAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:16326:2: ( rule__XWhileExpression__BodyAssignment_5 )
-            // InternalPerspectiveDsl.g:16326:3: rule__XWhileExpression__BodyAssignment_5
+            // InternalPerspectiveDsl.g:16374:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalPerspectiveDsl.g:16374:3: rule__XWhileExpression__BodyAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__BodyAssignment_5();
@@ -53684,14 +53869,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0"
-    // InternalPerspectiveDsl.g:16335:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:16383: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 {
-            // InternalPerspectiveDsl.g:16339:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
-            // InternalPerspectiveDsl.g:16340:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+            // InternalPerspectiveDsl.g:16387:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+            // InternalPerspectiveDsl.g:16388:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
             {
             pushFollow(FOLLOW_121);
             rule__XDoWhileExpression__Group__0__Impl();
@@ -53722,23 +53907,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16347:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:16395:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16351:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:16352:1: ( () )
+            // InternalPerspectiveDsl.g:16399:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:16400:1: ( () )
             {
-            // InternalPerspectiveDsl.g:16352:1: ( () )
-            // InternalPerspectiveDsl.g:16353:2: ()
+            // InternalPerspectiveDsl.g:16400:1: ( () )
+            // InternalPerspectiveDsl.g:16401:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:16354:2: ()
-            // InternalPerspectiveDsl.g:16354:3: 
+            // InternalPerspectiveDsl.g:16402:2: ()
+            // InternalPerspectiveDsl.g:16402:3: 
             {
             }
 
@@ -53763,14 +53948,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1"
-    // InternalPerspectiveDsl.g:16362:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:16410: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 {
-            // InternalPerspectiveDsl.g:16366:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
-            // InternalPerspectiveDsl.g:16367:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+            // InternalPerspectiveDsl.g:16414:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+            // InternalPerspectiveDsl.g:16415:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
             {
             pushFollow(FOLLOW_62);
             rule__XDoWhileExpression__Group__1__Impl();
@@ -53801,17 +53986,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16374:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+    // InternalPerspectiveDsl.g:16422:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
     public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16378:1: ( ( 'do' ) )
-            // InternalPerspectiveDsl.g:16379:1: ( 'do' )
+            // InternalPerspectiveDsl.g:16426:1: ( ( 'do' ) )
+            // InternalPerspectiveDsl.g:16427:1: ( 'do' )
             {
-            // InternalPerspectiveDsl.g:16379:1: ( 'do' )
-            // InternalPerspectiveDsl.g:16380:2: 'do'
+            // InternalPerspectiveDsl.g:16427:1: ( 'do' )
+            // InternalPerspectiveDsl.g:16428:2: 'do'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
@@ -53842,14 +54027,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2"
-    // InternalPerspectiveDsl.g:16389:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:16437: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 {
-            // InternalPerspectiveDsl.g:16393:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
-            // InternalPerspectiveDsl.g:16394:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+            // InternalPerspectiveDsl.g:16441:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+            // InternalPerspectiveDsl.g:16442:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
             {
             pushFollow(FOLLOW_120);
             rule__XDoWhileExpression__Group__2__Impl();
@@ -53880,23 +54065,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:16401:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:16449:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
     public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16405:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:16406:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalPerspectiveDsl.g:16453:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:16454:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:16406:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
-            // InternalPerspectiveDsl.g:16407:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalPerspectiveDsl.g:16454:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalPerspectiveDsl.g:16455:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:16408:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
-            // InternalPerspectiveDsl.g:16408:3: rule__XDoWhileExpression__BodyAssignment_2
+            // InternalPerspectiveDsl.g:16456:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalPerspectiveDsl.g:16456:3: rule__XDoWhileExpression__BodyAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__BodyAssignment_2();
@@ -53931,14 +54116,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3"
-    // InternalPerspectiveDsl.g:16416:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:16464: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 {
-            // InternalPerspectiveDsl.g:16420:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
-            // InternalPerspectiveDsl.g:16421:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+            // InternalPerspectiveDsl.g:16468:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+            // InternalPerspectiveDsl.g:16469:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
             {
             pushFollow(FOLLOW_58);
             rule__XDoWhileExpression__Group__3__Impl();
@@ -53969,17 +54154,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:16428:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+    // InternalPerspectiveDsl.g:16476:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
     public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16432:1: ( ( 'while' ) )
-            // InternalPerspectiveDsl.g:16433:1: ( 'while' )
+            // InternalPerspectiveDsl.g:16480:1: ( ( 'while' ) )
+            // InternalPerspectiveDsl.g:16481:1: ( 'while' )
             {
-            // InternalPerspectiveDsl.g:16433:1: ( 'while' )
-            // InternalPerspectiveDsl.g:16434:2: 'while'
+            // InternalPerspectiveDsl.g:16481:1: ( 'while' )
+            // InternalPerspectiveDsl.g:16482:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
@@ -54010,14 +54195,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4"
-    // InternalPerspectiveDsl.g:16443:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:16491: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 {
-            // InternalPerspectiveDsl.g:16447:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
-            // InternalPerspectiveDsl.g:16448:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+            // InternalPerspectiveDsl.g:16495:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+            // InternalPerspectiveDsl.g:16496:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
             {
             pushFollow(FOLLOW_62);
             rule__XDoWhileExpression__Group__4__Impl();
@@ -54048,17 +54233,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:16455:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:16503:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
     public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16459:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:16460:1: ( '(' )
+            // InternalPerspectiveDsl.g:16507:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:16508:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:16460:1: ( '(' )
-            // InternalPerspectiveDsl.g:16461:2: '('
+            // InternalPerspectiveDsl.g:16508:1: ( '(' )
+            // InternalPerspectiveDsl.g:16509:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
@@ -54089,14 +54274,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5"
-    // InternalPerspectiveDsl.g:16470:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:16518: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 {
-            // InternalPerspectiveDsl.g:16474:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
-            // InternalPerspectiveDsl.g:16475:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+            // InternalPerspectiveDsl.g:16522:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+            // InternalPerspectiveDsl.g:16523:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
             {
             pushFollow(FOLLOW_107);
             rule__XDoWhileExpression__Group__5__Impl();
@@ -54127,23 +54312,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:16482:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:16530:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
     public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16486:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:16487:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalPerspectiveDsl.g:16534:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:16535:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:16487:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
-            // InternalPerspectiveDsl.g:16488:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalPerspectiveDsl.g:16535:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalPerspectiveDsl.g:16536:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:16489:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
-            // InternalPerspectiveDsl.g:16489:3: rule__XDoWhileExpression__PredicateAssignment_5
+            // InternalPerspectiveDsl.g:16537:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalPerspectiveDsl.g:16537:3: rule__XDoWhileExpression__PredicateAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__PredicateAssignment_5();
@@ -54178,14 +54363,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6"
-    // InternalPerspectiveDsl.g:16497:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:16545:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
     public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16501:1: ( rule__XDoWhileExpression__Group__6__Impl )
-            // InternalPerspectiveDsl.g:16502:2: rule__XDoWhileExpression__Group__6__Impl
+            // InternalPerspectiveDsl.g:16549:1: ( rule__XDoWhileExpression__Group__6__Impl )
+            // InternalPerspectiveDsl.g:16550:2: rule__XDoWhileExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__6__Impl();
@@ -54211,17 +54396,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:16508:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:16556:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
     public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16512:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:16513:1: ( ')' )
+            // InternalPerspectiveDsl.g:16560:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:16561:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:16513:1: ( ')' )
-            // InternalPerspectiveDsl.g:16514:2: ')'
+            // InternalPerspectiveDsl.g:16561:1: ( ')' )
+            // InternalPerspectiveDsl.g:16562:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
@@ -54252,14 +54437,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0"
-    // InternalPerspectiveDsl.g:16524:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:16572: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 {
-            // InternalPerspectiveDsl.g:16528:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
-            // InternalPerspectiveDsl.g:16529:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+            // InternalPerspectiveDsl.g:16576:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+            // InternalPerspectiveDsl.g:16577:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
             {
             pushFollow(FOLLOW_8);
             rule__XBlockExpression__Group__0__Impl();
@@ -54290,23 +54475,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16536:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:16584:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16540:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:16541:1: ( () )
+            // InternalPerspectiveDsl.g:16588:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:16589:1: ( () )
             {
-            // InternalPerspectiveDsl.g:16541:1: ( () )
-            // InternalPerspectiveDsl.g:16542:2: ()
+            // InternalPerspectiveDsl.g:16589:1: ( () )
+            // InternalPerspectiveDsl.g:16590:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:16543:2: ()
-            // InternalPerspectiveDsl.g:16543:3: 
+            // InternalPerspectiveDsl.g:16591:2: ()
+            // InternalPerspectiveDsl.g:16591:3: 
             {
             }
 
@@ -54331,14 +54516,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1"
-    // InternalPerspectiveDsl.g:16551:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:16599: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 {
-            // InternalPerspectiveDsl.g:16555:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
-            // InternalPerspectiveDsl.g:16556:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+            // InternalPerspectiveDsl.g:16603:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+            // InternalPerspectiveDsl.g:16604:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
             {
             pushFollow(FOLLOW_122);
             rule__XBlockExpression__Group__1__Impl();
@@ -54369,17 +54554,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16563:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:16611:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
     public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16567:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:16568:1: ( '{' )
+            // InternalPerspectiveDsl.g:16615:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:16616:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:16568:1: ( '{' )
-            // InternalPerspectiveDsl.g:16569:2: '{'
+            // InternalPerspectiveDsl.g:16616:1: ( '{' )
+            // InternalPerspectiveDsl.g:16617:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
@@ -54410,14 +54595,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2"
-    // InternalPerspectiveDsl.g:16578:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:16626: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 {
-            // InternalPerspectiveDsl.g:16582:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
-            // InternalPerspectiveDsl.g:16583:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+            // InternalPerspectiveDsl.g:16630:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+            // InternalPerspectiveDsl.g:16631:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
             {
             pushFollow(FOLLOW_122);
             rule__XBlockExpression__Group__2__Impl();
@@ -54448,35 +54633,35 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:16590:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:16638: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 {
-            // InternalPerspectiveDsl.g:16594:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
-            // InternalPerspectiveDsl.g:16595:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalPerspectiveDsl.g:16642:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+            // InternalPerspectiveDsl.g:16643:1: ( ( rule__XBlockExpression__Group_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:16595:1: ( ( rule__XBlockExpression__Group_2__0 )* )
-            // InternalPerspectiveDsl.g:16596:2: ( rule__XBlockExpression__Group_2__0 )*
+            // InternalPerspectiveDsl.g:16643:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalPerspectiveDsl.g:16644:2: ( rule__XBlockExpression__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
             }
-            // InternalPerspectiveDsl.g:16597:2: ( rule__XBlockExpression__Group_2__0 )*
-            loop112:
+            // InternalPerspectiveDsl.g:16645:2: ( rule__XBlockExpression__Group_2__0 )*
+            loop113:
             do {
-                int alt112=2;
-                int LA112_0 = input.LA(1);
+                int alt113=2;
+                int LA113_0 = input.LA(1);
 
-                if ( ((LA112_0>=RULE_ID && LA112_0<=RULE_DECIMAL)||LA112_0==27||(LA112_0>=34 && LA112_0<=35)||LA112_0==40||(LA112_0>=44 && LA112_0<=50)||LA112_0==54||LA112_0==98||(LA112_0>=102 && LA112_0<=103)||LA112_0==106||LA112_0==108||(LA112_0>=112 && LA112_0<=120)||LA112_0==122||(LA112_0>=132 && LA112_0<=133)) ) {
-                    alt112=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==54||LA113_0==98||(LA113_0>=102 && LA113_0<=103)||LA113_0==106||LA113_0==108||(LA113_0>=112 && LA113_0<=120)||LA113_0==122||(LA113_0>=133 && LA113_0<=134)) ) {
+                    alt113=1;
                 }
 
 
-                switch (alt112) {
+                switch (alt113) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:16597:3: rule__XBlockExpression__Group_2__0
+            	    // InternalPerspectiveDsl.g:16645:3: rule__XBlockExpression__Group_2__0
             	    {
             	    pushFollow(FOLLOW_106);
             	    rule__XBlockExpression__Group_2__0();
@@ -54488,7 +54673,7 @@
             	    break;
 
             	default :
-            	    break loop112;
+            	    break loop113;
                 }
             } while (true);
 
@@ -54517,14 +54702,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3"
-    // InternalPerspectiveDsl.g:16605:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:16653:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
     public final void rule__XBlockExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16609:1: ( rule__XBlockExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:16610:2: rule__XBlockExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:16657:1: ( rule__XBlockExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:16658:2: rule__XBlockExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__3__Impl();
@@ -54550,17 +54735,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:16616:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:16664:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
     public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16620:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:16621:1: ( '}' )
+            // InternalPerspectiveDsl.g:16668:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:16669:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:16621:1: ( '}' )
-            // InternalPerspectiveDsl.g:16622:2: '}'
+            // InternalPerspectiveDsl.g:16669:1: ( '}' )
+            // InternalPerspectiveDsl.g:16670:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
@@ -54591,14 +54776,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0"
-    // InternalPerspectiveDsl.g:16632:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+    // InternalPerspectiveDsl.g:16680: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 {
-            // InternalPerspectiveDsl.g:16636:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
-            // InternalPerspectiveDsl.g:16637:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+            // InternalPerspectiveDsl.g:16684:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+            // InternalPerspectiveDsl.g:16685:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
             {
             pushFollow(FOLLOW_54);
             rule__XBlockExpression__Group_2__0__Impl();
@@ -54629,23 +54814,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
-    // InternalPerspectiveDsl.g:16644:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+    // InternalPerspectiveDsl.g:16692: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 {
-            // InternalPerspectiveDsl.g:16648:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
-            // InternalPerspectiveDsl.g:16649:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalPerspectiveDsl.g:16696:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+            // InternalPerspectiveDsl.g:16697:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
             {
-            // InternalPerspectiveDsl.g:16649:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
-            // InternalPerspectiveDsl.g:16650:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalPerspectiveDsl.g:16697:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalPerspectiveDsl.g:16698:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
             }
-            // InternalPerspectiveDsl.g:16651:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
-            // InternalPerspectiveDsl.g:16651:3: rule__XBlockExpression__ExpressionsAssignment_2_0
+            // InternalPerspectiveDsl.g:16699:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalPerspectiveDsl.g:16699:3: rule__XBlockExpression__ExpressionsAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__ExpressionsAssignment_2_0();
@@ -54680,14 +54865,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1"
-    // InternalPerspectiveDsl.g:16659:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+    // InternalPerspectiveDsl.g:16707: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 {
-            // InternalPerspectiveDsl.g:16663:1: ( rule__XBlockExpression__Group_2__1__Impl )
-            // InternalPerspectiveDsl.g:16664:2: rule__XBlockExpression__Group_2__1__Impl
+            // InternalPerspectiveDsl.g:16711:1: ( rule__XBlockExpression__Group_2__1__Impl )
+            // InternalPerspectiveDsl.g:16712:2: rule__XBlockExpression__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group_2__1__Impl();
@@ -54713,31 +54898,31 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
-    // InternalPerspectiveDsl.g:16670:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+    // InternalPerspectiveDsl.g:16718:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
     public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16674:1: ( ( ( ';' )? ) )
-            // InternalPerspectiveDsl.g:16675:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:16722:1: ( ( ( ';' )? ) )
+            // InternalPerspectiveDsl.g:16723:1: ( ( ';' )? )
             {
-            // InternalPerspectiveDsl.g:16675:1: ( ( ';' )? )
-            // InternalPerspectiveDsl.g:16676:2: ( ';' )?
+            // InternalPerspectiveDsl.g:16723:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:16724:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
             }
-            // InternalPerspectiveDsl.g:16677:2: ( ';' )?
-            int alt113=2;
-            int LA113_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:16725:2: ( ';' )?
+            int alt114=2;
+            int LA114_0 = input.LA(1);
 
-            if ( (LA113_0==96) ) {
-                alt113=1;
+            if ( (LA114_0==96) ) {
+                alt114=1;
             }
-            switch (alt113) {
+            switch (alt114) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16677:3: ';'
+                    // InternalPerspectiveDsl.g:16725:3: ';'
                     {
                     match(input,96,FOLLOW_2); if (state.failed) return ;
 
@@ -54771,14 +54956,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0"
-    // InternalPerspectiveDsl.g:16686:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+    // InternalPerspectiveDsl.g:16734: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 {
-            // InternalPerspectiveDsl.g:16690:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
-            // InternalPerspectiveDsl.g:16691:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+            // InternalPerspectiveDsl.g:16738:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+            // InternalPerspectiveDsl.g:16739:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
             {
             pushFollow(FOLLOW_123);
             rule__XVariableDeclaration__Group__0__Impl();
@@ -54809,23 +54994,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16698:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:16746:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16702:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:16703:1: ( () )
+            // InternalPerspectiveDsl.g:16750:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:16751:1: ( () )
             {
-            // InternalPerspectiveDsl.g:16703:1: ( () )
-            // InternalPerspectiveDsl.g:16704:2: ()
+            // InternalPerspectiveDsl.g:16751:1: ( () )
+            // InternalPerspectiveDsl.g:16752:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:16705:2: ()
-            // InternalPerspectiveDsl.g:16705:3: 
+            // InternalPerspectiveDsl.g:16753:2: ()
+            // InternalPerspectiveDsl.g:16753:3: 
             {
             }
 
@@ -54850,14 +55035,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1"
-    // InternalPerspectiveDsl.g:16713:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+    // InternalPerspectiveDsl.g:16761: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 {
-            // InternalPerspectiveDsl.g:16717:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
-            // InternalPerspectiveDsl.g:16718:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+            // InternalPerspectiveDsl.g:16765:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+            // InternalPerspectiveDsl.g:16766:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
             {
             pushFollow(FOLLOW_79);
             rule__XVariableDeclaration__Group__1__Impl();
@@ -54888,23 +55073,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16725:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+    // InternalPerspectiveDsl.g:16773:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
     public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16729:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
-            // InternalPerspectiveDsl.g:16730:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:16777:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+            // InternalPerspectiveDsl.g:16778:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
             {
-            // InternalPerspectiveDsl.g:16730:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
-            // InternalPerspectiveDsl.g:16731:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalPerspectiveDsl.g:16778:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:16779:2: ( rule__XVariableDeclaration__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:16732:2: ( rule__XVariableDeclaration__Alternatives_1 )
-            // InternalPerspectiveDsl.g:16732:3: rule__XVariableDeclaration__Alternatives_1
+            // InternalPerspectiveDsl.g:16780:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalPerspectiveDsl.g:16780:3: rule__XVariableDeclaration__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_1();
@@ -54939,14 +55124,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2"
-    // InternalPerspectiveDsl.g:16740:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+    // InternalPerspectiveDsl.g:16788: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 {
-            // InternalPerspectiveDsl.g:16744:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
-            // InternalPerspectiveDsl.g:16745:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+            // InternalPerspectiveDsl.g:16792:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+            // InternalPerspectiveDsl.g:16793:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
             {
             pushFollow(FOLLOW_63);
             rule__XVariableDeclaration__Group__2__Impl();
@@ -54977,23 +55162,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
-    // InternalPerspectiveDsl.g:16752:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+    // InternalPerspectiveDsl.g:16800:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
     public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16756:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
-            // InternalPerspectiveDsl.g:16757:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:16804:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:16805:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:16757:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
-            // InternalPerspectiveDsl.g:16758:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:16805:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:16806:2: ( rule__XVariableDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:16759:2: ( rule__XVariableDeclaration__Alternatives_2 )
-            // InternalPerspectiveDsl.g:16759:3: rule__XVariableDeclaration__Alternatives_2
+            // InternalPerspectiveDsl.g:16807:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:16807:3: rule__XVariableDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_2();
@@ -55028,14 +55213,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3"
-    // InternalPerspectiveDsl.g:16767:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:16815:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
     public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16771:1: ( rule__XVariableDeclaration__Group__3__Impl )
-            // InternalPerspectiveDsl.g:16772:2: rule__XVariableDeclaration__Group__3__Impl
+            // InternalPerspectiveDsl.g:16819:1: ( rule__XVariableDeclaration__Group__3__Impl )
+            // InternalPerspectiveDsl.g:16820:2: rule__XVariableDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__3__Impl();
@@ -55061,31 +55246,31 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
-    // InternalPerspectiveDsl.g:16778:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:16826: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 {
-            // InternalPerspectiveDsl.g:16782:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:16783:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:16830:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:16831:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:16783:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:16784:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            // InternalPerspectiveDsl.g:16831:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:16832:2: ( rule__XVariableDeclaration__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:16785:2: ( rule__XVariableDeclaration__Group_3__0 )?
-            int alt114=2;
-            int LA114_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:16833:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            int alt115=2;
+            int LA115_0 = input.LA(1);
 
-            if ( (LA114_0==13) ) {
-                alt114=1;
+            if ( (LA115_0==13) ) {
+                alt115=1;
             }
-            switch (alt114) {
+            switch (alt115) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16785:3: rule__XVariableDeclaration__Group_3__0
+                    // InternalPerspectiveDsl.g:16833:3: rule__XVariableDeclaration__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_3__0();
@@ -55123,14 +55308,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
-    // InternalPerspectiveDsl.g:16794:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+    // InternalPerspectiveDsl.g:16842: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 {
-            // InternalPerspectiveDsl.g:16798:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
-            // InternalPerspectiveDsl.g:16799:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+            // InternalPerspectiveDsl.g:16846:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+            // InternalPerspectiveDsl.g:16847:2: rule__XVariableDeclaration__Group_2_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0__0__Impl();
@@ -55156,23 +55341,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:16805:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:16853: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 {
-            // InternalPerspectiveDsl.g:16809:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:16810:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:16857:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:16858:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:16810:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
-            // InternalPerspectiveDsl.g:16811:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:16858:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:16859:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:16812:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
-            // InternalPerspectiveDsl.g:16812:3: rule__XVariableDeclaration__Group_2_0_0__0
+            // InternalPerspectiveDsl.g:16860:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:16860:3: rule__XVariableDeclaration__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__0();
@@ -55207,14 +55392,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
-    // InternalPerspectiveDsl.g:16821:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
+    // InternalPerspectiveDsl.g:16869: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 {
-            // InternalPerspectiveDsl.g:16825:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
-            // InternalPerspectiveDsl.g:16826:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+            // InternalPerspectiveDsl.g:16873:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+            // InternalPerspectiveDsl.g:16874:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
             {
             pushFollow(FOLLOW_7);
             rule__XVariableDeclaration__Group_2_0_0__0__Impl();
@@ -55245,23 +55430,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:16833:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:16881: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 {
-            // InternalPerspectiveDsl.g:16837:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:16838:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalPerspectiveDsl.g:16885:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:16886:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:16838:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
-            // InternalPerspectiveDsl.g:16839:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalPerspectiveDsl.g:16886:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalPerspectiveDsl.g:16887:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:16840:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
-            // InternalPerspectiveDsl.g:16840:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+            // InternalPerspectiveDsl.g:16888:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalPerspectiveDsl.g:16888:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
@@ -55296,14 +55481,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
-    // InternalPerspectiveDsl.g:16848:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:16896: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 {
-            // InternalPerspectiveDsl.g:16852:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:16853:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+            // InternalPerspectiveDsl.g:16900:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:16901:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__1__Impl();
@@ -55329,23 +55514,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:16859:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:16907: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 {
-            // InternalPerspectiveDsl.g:16863:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:16864:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalPerspectiveDsl.g:16911:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:16912:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:16864:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
-            // InternalPerspectiveDsl.g:16865:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalPerspectiveDsl.g:16912:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalPerspectiveDsl.g:16913:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:16866:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
-            // InternalPerspectiveDsl.g:16866:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+            // InternalPerspectiveDsl.g:16914:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalPerspectiveDsl.g:16914:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__NameAssignment_2_0_0_1();
@@ -55380,14 +55565,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
-    // InternalPerspectiveDsl.g:16875:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+    // InternalPerspectiveDsl.g:16923: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 {
-            // InternalPerspectiveDsl.g:16879:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
-            // InternalPerspectiveDsl.g:16880:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+            // InternalPerspectiveDsl.g:16927:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+            // InternalPerspectiveDsl.g:16928:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
             {
             pushFollow(FOLLOW_62);
             rule__XVariableDeclaration__Group_3__0__Impl();
@@ -55418,17 +55603,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:16887:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:16935:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
     public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16891:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:16892:1: ( '=' )
+            // InternalPerspectiveDsl.g:16939:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:16940:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:16892:1: ( '=' )
-            // InternalPerspectiveDsl.g:16893:2: '='
+            // InternalPerspectiveDsl.g:16940:1: ( '=' )
+            // InternalPerspectiveDsl.g:16941:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
@@ -55459,14 +55644,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
-    // InternalPerspectiveDsl.g:16902:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:16950: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 {
-            // InternalPerspectiveDsl.g:16906:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:16907:2: rule__XVariableDeclaration__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:16954:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:16955:2: rule__XVariableDeclaration__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_3__1__Impl();
@@ -55492,23 +55677,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:16913:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:16961: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 {
-            // InternalPerspectiveDsl.g:16917:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
-            // InternalPerspectiveDsl.g:16918:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:16965:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+            // InternalPerspectiveDsl.g:16966:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:16918:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
-            // InternalPerspectiveDsl.g:16919:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalPerspectiveDsl.g:16966:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:16967:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:16920:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
-            // InternalPerspectiveDsl.g:16920:3: rule__XVariableDeclaration__RightAssignment_3_1
+            // InternalPerspectiveDsl.g:16968:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalPerspectiveDsl.g:16968:3: rule__XVariableDeclaration__RightAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__RightAssignment_3_1();
@@ -55543,14 +55728,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0"
-    // InternalPerspectiveDsl.g:16929:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+    // InternalPerspectiveDsl.g:16977: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 {
-            // InternalPerspectiveDsl.g:16933:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
-            // InternalPerspectiveDsl.g:16934:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+            // InternalPerspectiveDsl.g:16981:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+            // InternalPerspectiveDsl.g:16982:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_79);
             rule__JvmFormalParameter__Group__0__Impl();
@@ -55581,38 +55766,38 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16941:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+    // InternalPerspectiveDsl.g:16989:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
     public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16945:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
-            // InternalPerspectiveDsl.g:16946:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalPerspectiveDsl.g:16993:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+            // InternalPerspectiveDsl.g:16994:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
             {
-            // InternalPerspectiveDsl.g:16946:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
-            // InternalPerspectiveDsl.g:16947:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            // InternalPerspectiveDsl.g:16994:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalPerspectiveDsl.g:16995:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:16948:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
-            int alt115=2;
-            int LA115_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:16996:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            int alt116=2;
+            int LA116_0 = input.LA(1);
 
-            if ( (LA115_0==RULE_ID) ) {
-                int LA115_1 = input.LA(2);
+            if ( (LA116_0==RULE_ID) ) {
+                int LA116_1 = input.LA(2);
 
-                if ( (LA115_1==RULE_ID||LA115_1==27||LA115_1==43||LA115_1==103) ) {
-                    alt115=1;
+                if ( (LA116_1==RULE_ID||LA116_1==27||LA116_1==43||LA116_1==103) ) {
+                    alt116=1;
                 }
             }
-            else if ( (LA115_0==31||LA115_0==98) ) {
-                alt115=1;
+            else if ( (LA116_0==31||LA116_0==98) ) {
+                alt116=1;
             }
-            switch (alt115) {
+            switch (alt116) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16948:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
+                    // InternalPerspectiveDsl.g:16996:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmFormalParameter__ParameterTypeAssignment_0();
@@ -55650,14 +55835,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1"
-    // InternalPerspectiveDsl.g:16956:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:17004:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
     public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16960:1: ( rule__JvmFormalParameter__Group__1__Impl )
-            // InternalPerspectiveDsl.g:16961:2: rule__JvmFormalParameter__Group__1__Impl
+            // InternalPerspectiveDsl.g:17008:1: ( rule__JvmFormalParameter__Group__1__Impl )
+            // InternalPerspectiveDsl.g:17009:2: rule__JvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__1__Impl();
@@ -55683,23 +55868,23 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16967:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:17015:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16971:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:16972:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17019:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:17020:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:16972:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
-            // InternalPerspectiveDsl.g:16973:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:17020:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17021:2: ( rule__JvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:16974:2: ( rule__JvmFormalParameter__NameAssignment_1 )
-            // InternalPerspectiveDsl.g:16974:3: rule__JvmFormalParameter__NameAssignment_1
+            // InternalPerspectiveDsl.g:17022:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:17022:3: rule__JvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__NameAssignment_1();
@@ -55734,14 +55919,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
-    // InternalPerspectiveDsl.g:16983:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+    // InternalPerspectiveDsl.g:17031: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 {
-            // InternalPerspectiveDsl.g:16987:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
-            // InternalPerspectiveDsl.g:16988:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+            // InternalPerspectiveDsl.g:17035:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+            // InternalPerspectiveDsl.g:17036:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__FullJvmFormalParameter__Group__0__Impl();
@@ -55772,23 +55957,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16995:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+    // InternalPerspectiveDsl.g:17043:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16999:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
-            // InternalPerspectiveDsl.g:17000:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:17047:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+            // InternalPerspectiveDsl.g:17048:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
             {
-            // InternalPerspectiveDsl.g:17000:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
-            // InternalPerspectiveDsl.g:17001:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalPerspectiveDsl.g:17048:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:17049:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:17002:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
-            // InternalPerspectiveDsl.g:17002:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+            // InternalPerspectiveDsl.g:17050:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalPerspectiveDsl.g:17050:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
@@ -55823,14 +56008,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
-    // InternalPerspectiveDsl.g:17010:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:17058:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
     public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17014:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
-            // InternalPerspectiveDsl.g:17015:2: rule__FullJvmFormalParameter__Group__1__Impl
+            // InternalPerspectiveDsl.g:17062:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+            // InternalPerspectiveDsl.g:17063:2: rule__FullJvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__1__Impl();
@@ -55856,23 +56041,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17021:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:17069:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17025:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:17026:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17073:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:17074:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:17026:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
-            // InternalPerspectiveDsl.g:17027:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:17074:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17075:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:17028:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
-            // InternalPerspectiveDsl.g:17028:3: rule__FullJvmFormalParameter__NameAssignment_1
+            // InternalPerspectiveDsl.g:17076:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:17076:3: rule__FullJvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__NameAssignment_1();
@@ -55907,14 +56092,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0"
-    // InternalPerspectiveDsl.g:17037:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+    // InternalPerspectiveDsl.g:17085: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 {
-            // InternalPerspectiveDsl.g:17041:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
-            // InternalPerspectiveDsl.g:17042:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+            // InternalPerspectiveDsl.g:17089:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+            // InternalPerspectiveDsl.g:17090:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
             {
             pushFollow(FOLLOW_97);
             rule__XFeatureCall__Group__0__Impl();
@@ -55945,23 +56130,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17049:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17097:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
     public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17053:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17054:1: ( () )
+            // InternalPerspectiveDsl.g:17101:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17102:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17054:1: ( () )
-            // InternalPerspectiveDsl.g:17055:2: ()
+            // InternalPerspectiveDsl.g:17102:1: ( () )
+            // InternalPerspectiveDsl.g:17103:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17056:2: ()
-            // InternalPerspectiveDsl.g:17056:3: 
+            // InternalPerspectiveDsl.g:17104:2: ()
+            // InternalPerspectiveDsl.g:17104:3: 
             {
             }
 
@@ -55986,14 +56171,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1"
-    // InternalPerspectiveDsl.g:17064:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+    // InternalPerspectiveDsl.g:17112: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 {
-            // InternalPerspectiveDsl.g:17068:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
-            // InternalPerspectiveDsl.g:17069:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+            // InternalPerspectiveDsl.g:17116:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+            // InternalPerspectiveDsl.g:17117:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
             {
             pushFollow(FOLLOW_97);
             rule__XFeatureCall__Group__1__Impl();
@@ -56024,31 +56209,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17076:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:17124: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 {
-            // InternalPerspectiveDsl.g:17080:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:17081:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:17128:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:17129:1: ( ( rule__XFeatureCall__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:17081:1: ( ( rule__XFeatureCall__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:17082:2: ( rule__XFeatureCall__Group_1__0 )?
+            // InternalPerspectiveDsl.g:17129:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:17130:2: ( rule__XFeatureCall__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:17083:2: ( rule__XFeatureCall__Group_1__0 )?
-            int alt116=2;
-            int LA116_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:17131:2: ( rule__XFeatureCall__Group_1__0 )?
+            int alt117=2;
+            int LA117_0 = input.LA(1);
 
-            if ( (LA116_0==27) ) {
-                alt116=1;
+            if ( (LA117_0==27) ) {
+                alt117=1;
             }
-            switch (alt116) {
+            switch (alt117) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17083:3: rule__XFeatureCall__Group_1__0
+                    // InternalPerspectiveDsl.g:17131:3: rule__XFeatureCall__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_1__0();
@@ -56086,14 +56271,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2"
-    // InternalPerspectiveDsl.g:17091:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+    // InternalPerspectiveDsl.g:17139: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 {
-            // InternalPerspectiveDsl.g:17095:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
-            // InternalPerspectiveDsl.g:17096:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+            // InternalPerspectiveDsl.g:17143:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+            // InternalPerspectiveDsl.g:17144:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
             {
             pushFollow(FOLLOW_98);
             rule__XFeatureCall__Group__2__Impl();
@@ -56124,23 +56309,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
-    // InternalPerspectiveDsl.g:17103:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:17151:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
     public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17107:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:17108:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17155:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:17156:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:17108:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
-            // InternalPerspectiveDsl.g:17109:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalPerspectiveDsl.g:17156:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17157:2: ( rule__XFeatureCall__FeatureAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:17110:2: ( rule__XFeatureCall__FeatureAssignment_2 )
-            // InternalPerspectiveDsl.g:17110:3: rule__XFeatureCall__FeatureAssignment_2
+            // InternalPerspectiveDsl.g:17158:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalPerspectiveDsl.g:17158:3: rule__XFeatureCall__FeatureAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureAssignment_2();
@@ -56175,14 +56360,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3"
-    // InternalPerspectiveDsl.g:17118:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+    // InternalPerspectiveDsl.g:17166: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 {
-            // InternalPerspectiveDsl.g:17122:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
-            // InternalPerspectiveDsl.g:17123:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+            // InternalPerspectiveDsl.g:17170:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+            // InternalPerspectiveDsl.g:17171:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
             {
             pushFollow(FOLLOW_98);
             rule__XFeatureCall__Group__3__Impl();
@@ -56213,27 +56398,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
-    // InternalPerspectiveDsl.g:17130:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:17178: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 {
-            // InternalPerspectiveDsl.g:17134:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:17135:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:17182:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:17183:1: ( ( rule__XFeatureCall__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:17135:1: ( ( rule__XFeatureCall__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:17136:2: ( rule__XFeatureCall__Group_3__0 )?
+            // InternalPerspectiveDsl.g:17183:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:17184:2: ( rule__XFeatureCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:17137:2: ( rule__XFeatureCall__Group_3__0 )?
-            int alt117=2;
-            alt117 = dfa117.predict(input);
-            switch (alt117) {
+            // InternalPerspectiveDsl.g:17185:2: ( rule__XFeatureCall__Group_3__0 )?
+            int alt118=2;
+            alt118 = dfa118.predict(input);
+            switch (alt118) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17137:3: rule__XFeatureCall__Group_3__0
+                    // InternalPerspectiveDsl.g:17185:3: rule__XFeatureCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3__0();
@@ -56271,14 +56456,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4"
-    // InternalPerspectiveDsl.g:17145:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:17193:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
     public final void rule__XFeatureCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17149:1: ( rule__XFeatureCall__Group__4__Impl )
-            // InternalPerspectiveDsl.g:17150:2: rule__XFeatureCall__Group__4__Impl
+            // InternalPerspectiveDsl.g:17197:1: ( rule__XFeatureCall__Group__4__Impl )
+            // InternalPerspectiveDsl.g:17198:2: rule__XFeatureCall__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__4__Impl();
@@ -56304,27 +56489,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
-    // InternalPerspectiveDsl.g:17156:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+    // InternalPerspectiveDsl.g:17204:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
     public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17160:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
-            // InternalPerspectiveDsl.g:17161:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalPerspectiveDsl.g:17208:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+            // InternalPerspectiveDsl.g:17209:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
             {
-            // InternalPerspectiveDsl.g:17161:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
-            // InternalPerspectiveDsl.g:17162:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            // InternalPerspectiveDsl.g:17209:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalPerspectiveDsl.g:17210:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:17163:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
-            int alt118=2;
-            alt118 = dfa118.predict(input);
-            switch (alt118) {
+            // InternalPerspectiveDsl.g:17211:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            int alt119=2;
+            alt119 = dfa119.predict(input);
+            switch (alt119) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17163:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+                    // InternalPerspectiveDsl.g:17211:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -56362,14 +56547,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0"
-    // InternalPerspectiveDsl.g:17172:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+    // InternalPerspectiveDsl.g:17220: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 {
-            // InternalPerspectiveDsl.g:17176:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
-            // InternalPerspectiveDsl.g:17177:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+            // InternalPerspectiveDsl.g:17224:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+            // InternalPerspectiveDsl.g:17225:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
             {
             pushFollow(FOLLOW_99);
             rule__XFeatureCall__Group_1__0__Impl();
@@ -56400,17 +56585,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:17184:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:17232:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
     public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17188:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:17189:1: ( '<' )
+            // InternalPerspectiveDsl.g:17236:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:17237:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:17189:1: ( '<' )
-            // InternalPerspectiveDsl.g:17190:2: '<'
+            // InternalPerspectiveDsl.g:17237:1: ( '<' )
+            // InternalPerspectiveDsl.g:17238:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
@@ -56441,14 +56626,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1"
-    // InternalPerspectiveDsl.g:17199:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+    // InternalPerspectiveDsl.g:17247: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 {
-            // InternalPerspectiveDsl.g:17203:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
-            // InternalPerspectiveDsl.g:17204:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+            // InternalPerspectiveDsl.g:17251:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+            // InternalPerspectiveDsl.g:17252:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
             {
             pushFollow(FOLLOW_100);
             rule__XFeatureCall__Group_1__1__Impl();
@@ -56479,23 +56664,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:17211:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:17259: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 {
-            // InternalPerspectiveDsl.g:17215:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:17216:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:17263:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:17264:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:17216:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:17217:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:17264:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:17265:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:17218:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
-            // InternalPerspectiveDsl.g:17218:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+            // InternalPerspectiveDsl.g:17266:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:17266:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_1();
@@ -56530,14 +56715,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2"
-    // InternalPerspectiveDsl.g:17226:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+    // InternalPerspectiveDsl.g:17274: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 {
-            // InternalPerspectiveDsl.g:17230:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
-            // InternalPerspectiveDsl.g:17231:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+            // InternalPerspectiveDsl.g:17278:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+            // InternalPerspectiveDsl.g:17279:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
             {
             pushFollow(FOLLOW_100);
             rule__XFeatureCall__Group_1__2__Impl();
@@ -56568,35 +56753,35 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
-    // InternalPerspectiveDsl.g:17238:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:17286: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 {
-            // InternalPerspectiveDsl.g:17242:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
-            // InternalPerspectiveDsl.g:17243:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:17290:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+            // InternalPerspectiveDsl.g:17291:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:17243:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
-            // InternalPerspectiveDsl.g:17244:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            // InternalPerspectiveDsl.g:17291:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:17292:2: ( rule__XFeatureCall__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
             }
-            // InternalPerspectiveDsl.g:17245:2: ( rule__XFeatureCall__Group_1_2__0 )*
-            loop119:
+            // InternalPerspectiveDsl.g:17293:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            loop120:
             do {
-                int alt119=2;
-                int LA119_0 = input.LA(1);
+                int alt120=2;
+                int LA120_0 = input.LA(1);
 
-                if ( (LA119_0==100) ) {
-                    alt119=1;
+                if ( (LA120_0==100) ) {
+                    alt120=1;
                 }
 
 
-                switch (alt119) {
+                switch (alt120) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:17245:3: rule__XFeatureCall__Group_1_2__0
+            	    // InternalPerspectiveDsl.g:17293:3: rule__XFeatureCall__Group_1_2__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XFeatureCall__Group_1_2__0();
@@ -56608,7 +56793,7 @@
             	    break;
 
             	default :
-            	    break loop119;
+            	    break loop120;
                 }
             } while (true);
 
@@ -56637,14 +56822,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3"
-    // InternalPerspectiveDsl.g:17253:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+    // InternalPerspectiveDsl.g:17301: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 {
-            // InternalPerspectiveDsl.g:17257:1: ( rule__XFeatureCall__Group_1__3__Impl )
-            // InternalPerspectiveDsl.g:17258:2: rule__XFeatureCall__Group_1__3__Impl
+            // InternalPerspectiveDsl.g:17305:1: ( rule__XFeatureCall__Group_1__3__Impl )
+            // InternalPerspectiveDsl.g:17306:2: rule__XFeatureCall__Group_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1__3__Impl();
@@ -56670,17 +56855,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
-    // InternalPerspectiveDsl.g:17264:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:17312:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
     public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17268:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:17269:1: ( '>' )
+            // InternalPerspectiveDsl.g:17316:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:17317:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:17269:1: ( '>' )
-            // InternalPerspectiveDsl.g:17270:2: '>'
+            // InternalPerspectiveDsl.g:17317:1: ( '>' )
+            // InternalPerspectiveDsl.g:17318:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
@@ -56711,14 +56896,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
-    // InternalPerspectiveDsl.g:17280:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+    // InternalPerspectiveDsl.g:17328: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 {
-            // InternalPerspectiveDsl.g:17284:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
-            // InternalPerspectiveDsl.g:17285:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+            // InternalPerspectiveDsl.g:17332:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+            // InternalPerspectiveDsl.g:17333:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
             {
             pushFollow(FOLLOW_99);
             rule__XFeatureCall__Group_1_2__0__Impl();
@@ -56749,17 +56934,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
-    // InternalPerspectiveDsl.g:17292:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:17340:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17296:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:17297:1: ( ',' )
+            // InternalPerspectiveDsl.g:17344:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:17345:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:17297:1: ( ',' )
-            // InternalPerspectiveDsl.g:17298:2: ','
+            // InternalPerspectiveDsl.g:17345:1: ( ',' )
+            // InternalPerspectiveDsl.g:17346:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
@@ -56790,14 +56975,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
-    // InternalPerspectiveDsl.g:17307:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+    // InternalPerspectiveDsl.g:17355: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 {
-            // InternalPerspectiveDsl.g:17311:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
-            // InternalPerspectiveDsl.g:17312:2: rule__XFeatureCall__Group_1_2__1__Impl
+            // InternalPerspectiveDsl.g:17359:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+            // InternalPerspectiveDsl.g:17360:2: rule__XFeatureCall__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1_2__1__Impl();
@@ -56823,23 +57008,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
-    // InternalPerspectiveDsl.g:17318:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:17366: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 {
-            // InternalPerspectiveDsl.g:17322:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
-            // InternalPerspectiveDsl.g:17323:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:17370:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+            // InternalPerspectiveDsl.g:17371:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:17323:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
-            // InternalPerspectiveDsl.g:17324:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:17371:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:17372:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
             }
-            // InternalPerspectiveDsl.g:17325:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
-            // InternalPerspectiveDsl.g:17325:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+            // InternalPerspectiveDsl.g:17373:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:17373:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
@@ -56874,14 +57059,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0"
-    // InternalPerspectiveDsl.g:17334:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+    // InternalPerspectiveDsl.g:17382: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 {
-            // InternalPerspectiveDsl.g:17338:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
-            // InternalPerspectiveDsl.g:17339:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+            // InternalPerspectiveDsl.g:17386:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+            // InternalPerspectiveDsl.g:17387:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
             {
             pushFollow(FOLLOW_101);
             rule__XFeatureCall__Group_3__0__Impl();
@@ -56912,23 +57097,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:17346:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:17394: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 {
-            // InternalPerspectiveDsl.g:17350:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:17351:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:17398:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:17399:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:17351:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:17352:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalPerspectiveDsl.g:17399:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:17400:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:17353:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
-            // InternalPerspectiveDsl.g:17353:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+            // InternalPerspectiveDsl.g:17401:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalPerspectiveDsl.g:17401:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
@@ -56963,14 +57148,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1"
-    // InternalPerspectiveDsl.g:17361:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+    // InternalPerspectiveDsl.g:17409: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 {
-            // InternalPerspectiveDsl.g:17365:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
-            // InternalPerspectiveDsl.g:17366:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+            // InternalPerspectiveDsl.g:17413:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+            // InternalPerspectiveDsl.g:17414:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
             {
             pushFollow(FOLLOW_101);
             rule__XFeatureCall__Group_3__1__Impl();
@@ -57001,31 +57186,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:17373:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+    // InternalPerspectiveDsl.g:17421: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 {
-            // InternalPerspectiveDsl.g:17377:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
-            // InternalPerspectiveDsl.g:17378:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:17425:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+            // InternalPerspectiveDsl.g:17426:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
             {
-            // InternalPerspectiveDsl.g:17378:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
-            // InternalPerspectiveDsl.g:17379:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:17426:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:17427:2: ( rule__XFeatureCall__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
             }
-            // InternalPerspectiveDsl.g:17380:2: ( rule__XFeatureCall__Alternatives_3_1 )?
-            int alt120=2;
-            int LA120_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:17428:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            int alt121=2;
+            int LA121_0 = input.LA(1);
 
-            if ( ((LA120_0>=RULE_ID && LA120_0<=RULE_DECIMAL)||LA120_0==27||LA120_0==31||(LA120_0>=34 && LA120_0<=35)||LA120_0==40||(LA120_0>=45 && LA120_0<=50)||LA120_0==54||LA120_0==98||(LA120_0>=102 && LA120_0<=103)||LA120_0==106||LA120_0==108||(LA120_0>=112 && LA120_0<=120)||LA120_0==122||LA120_0==131||LA120_0==133) ) {
-                alt120=1;
+            if ( ((LA121_0>=RULE_ID && LA121_0<=RULE_DECIMAL)||LA121_0==27||LA121_0==31||(LA121_0>=34 && LA121_0<=35)||LA121_0==40||(LA121_0>=45 && LA121_0<=50)||LA121_0==54||LA121_0==98||(LA121_0>=102 && LA121_0<=103)||LA121_0==106||LA121_0==108||(LA121_0>=112 && LA121_0<=120)||LA121_0==122||LA121_0==132||LA121_0==134) ) {
+                alt121=1;
             }
-            switch (alt120) {
+            switch (alt121) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17380:3: rule__XFeatureCall__Alternatives_3_1
+                    // InternalPerspectiveDsl.g:17428:3: rule__XFeatureCall__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Alternatives_3_1();
@@ -57063,14 +57248,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2"
-    // InternalPerspectiveDsl.g:17388:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+    // InternalPerspectiveDsl.g:17436: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 {
-            // InternalPerspectiveDsl.g:17392:1: ( rule__XFeatureCall__Group_3__2__Impl )
-            // InternalPerspectiveDsl.g:17393:2: rule__XFeatureCall__Group_3__2__Impl
+            // InternalPerspectiveDsl.g:17440:1: ( rule__XFeatureCall__Group_3__2__Impl )
+            // InternalPerspectiveDsl.g:17441:2: rule__XFeatureCall__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3__2__Impl();
@@ -57096,17 +57281,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:17399:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:17447:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17403:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:17404:1: ( ')' )
+            // InternalPerspectiveDsl.g:17451:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:17452:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:17404:1: ( ')' )
-            // InternalPerspectiveDsl.g:17405:2: ')'
+            // InternalPerspectiveDsl.g:17452:1: ( ')' )
+            // InternalPerspectiveDsl.g:17453:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
@@ -57137,14 +57322,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
-    // InternalPerspectiveDsl.g:17415:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
+    // InternalPerspectiveDsl.g:17463: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 {
-            // InternalPerspectiveDsl.g:17419:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
-            // InternalPerspectiveDsl.g:17420:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+            // InternalPerspectiveDsl.g:17467:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+            // InternalPerspectiveDsl.g:17468:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XFeatureCall__Group_3_1_1__0__Impl();
@@ -57175,23 +57360,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:17427:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:17475: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 {
-            // InternalPerspectiveDsl.g:17431:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
-            // InternalPerspectiveDsl.g:17432:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:17479:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+            // InternalPerspectiveDsl.g:17480:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:17432:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
-            // InternalPerspectiveDsl.g:17433:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalPerspectiveDsl.g:17480:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:17481:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:17434:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
-            // InternalPerspectiveDsl.g:17434:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+            // InternalPerspectiveDsl.g:17482:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalPerspectiveDsl.g:17482:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
@@ -57226,14 +57411,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
-    // InternalPerspectiveDsl.g:17442:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:17490: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 {
-            // InternalPerspectiveDsl.g:17446:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:17447:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+            // InternalPerspectiveDsl.g:17494:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:17495:2: rule__XFeatureCall__Group_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1__1__Impl();
@@ -57259,35 +57444,35 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:17453:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:17501: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 {
-            // InternalPerspectiveDsl.g:17457:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:17458:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:17505:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:17506:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:17458:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:17459:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:17506:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:17507:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:17460:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
-            loop121:
+            // InternalPerspectiveDsl.g:17508:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            loop122:
             do {
-                int alt121=2;
-                int LA121_0 = input.LA(1);
+                int alt122=2;
+                int LA122_0 = input.LA(1);
 
-                if ( (LA121_0==100) ) {
-                    alt121=1;
+                if ( (LA122_0==100) ) {
+                    alt122=1;
                 }
 
 
-                switch (alt121) {
+                switch (alt122) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:17460:3: rule__XFeatureCall__Group_3_1_1_1__0
+            	    // InternalPerspectiveDsl.g:17508:3: rule__XFeatureCall__Group_3_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XFeatureCall__Group_3_1_1_1__0();
@@ -57299,7 +57484,7 @@
             	    break;
 
             	default :
-            	    break loop121;
+            	    break loop122;
                 }
             } while (true);
 
@@ -57328,14 +57513,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
-    // InternalPerspectiveDsl.g:17469: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 ;
+    // InternalPerspectiveDsl.g:17517: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 {
-            // InternalPerspectiveDsl.g:17473:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
-            // InternalPerspectiveDsl.g:17474:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+            // InternalPerspectiveDsl.g:17521:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+            // InternalPerspectiveDsl.g:17522:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XFeatureCall__Group_3_1_1_1__0__Impl();
@@ -57366,17 +57551,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:17481:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:17529: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 {
-            // InternalPerspectiveDsl.g:17485:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:17486:1: ( ',' )
+            // InternalPerspectiveDsl.g:17533:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:17534:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:17486:1: ( ',' )
-            // InternalPerspectiveDsl.g:17487:2: ','
+            // InternalPerspectiveDsl.g:17534:1: ( ',' )
+            // InternalPerspectiveDsl.g:17535:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
@@ -57407,14 +57592,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
-    // InternalPerspectiveDsl.g:17496:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:17544: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 {
-            // InternalPerspectiveDsl.g:17500:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:17501:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:17548:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:17549:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1_1__1__Impl();
@@ -57440,23 +57625,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:17507:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:17555: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 {
-            // InternalPerspectiveDsl.g:17511:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:17512:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:17559:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:17560:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:17512:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:17513:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:17560:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:17561:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:17514:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
-            // InternalPerspectiveDsl.g:17514:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+            // InternalPerspectiveDsl.g:17562:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:17562:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
@@ -57491,14 +57676,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0"
-    // InternalPerspectiveDsl.g:17523:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+    // InternalPerspectiveDsl.g:17571: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 {
-            // InternalPerspectiveDsl.g:17527:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
-            // InternalPerspectiveDsl.g:17528:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+            // InternalPerspectiveDsl.g:17575:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+            // InternalPerspectiveDsl.g:17576:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
             {
             pushFollow(FOLLOW_124);
             rule__XConstructorCall__Group__0__Impl();
@@ -57529,23 +57714,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17535:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17583:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
     public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17539:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17540:1: ( () )
+            // InternalPerspectiveDsl.g:17587:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17588:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17540:1: ( () )
-            // InternalPerspectiveDsl.g:17541:2: ()
+            // InternalPerspectiveDsl.g:17588:1: ( () )
+            // InternalPerspectiveDsl.g:17589:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17542:2: ()
-            // InternalPerspectiveDsl.g:17542:3: 
+            // InternalPerspectiveDsl.g:17590:2: ()
+            // InternalPerspectiveDsl.g:17590:3: 
             {
             }
 
@@ -57570,14 +57755,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1"
-    // InternalPerspectiveDsl.g:17550:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+    // InternalPerspectiveDsl.g:17598: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 {
-            // InternalPerspectiveDsl.g:17554:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
-            // InternalPerspectiveDsl.g:17555:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+            // InternalPerspectiveDsl.g:17602:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+            // InternalPerspectiveDsl.g:17603:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XConstructorCall__Group__1__Impl();
@@ -57608,17 +57793,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17562:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+    // InternalPerspectiveDsl.g:17610:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
     public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17566:1: ( ( 'new' ) )
-            // InternalPerspectiveDsl.g:17567:1: ( 'new' )
+            // InternalPerspectiveDsl.g:17614:1: ( ( 'new' ) )
+            // InternalPerspectiveDsl.g:17615:1: ( 'new' )
             {
-            // InternalPerspectiveDsl.g:17567:1: ( 'new' )
-            // InternalPerspectiveDsl.g:17568:2: 'new'
+            // InternalPerspectiveDsl.g:17615:1: ( 'new' )
+            // InternalPerspectiveDsl.g:17616:2: 'new'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
@@ -57649,14 +57834,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2"
-    // InternalPerspectiveDsl.g:17577:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+    // InternalPerspectiveDsl.g:17625: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 {
-            // InternalPerspectiveDsl.g:17581:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
-            // InternalPerspectiveDsl.g:17582:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+            // InternalPerspectiveDsl.g:17629:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+            // InternalPerspectiveDsl.g:17630:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
             {
             pushFollow(FOLLOW_125);
             rule__XConstructorCall__Group__2__Impl();
@@ -57687,23 +57872,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
-    // InternalPerspectiveDsl.g:17589:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:17637:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
     public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17593:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:17594:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17641:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:17642:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:17594:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
-            // InternalPerspectiveDsl.g:17595:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalPerspectiveDsl.g:17642:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17643:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:17596:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
-            // InternalPerspectiveDsl.g:17596:3: rule__XConstructorCall__ConstructorAssignment_2
+            // InternalPerspectiveDsl.g:17644:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalPerspectiveDsl.g:17644:3: rule__XConstructorCall__ConstructorAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ConstructorAssignment_2();
@@ -57738,14 +57923,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3"
-    // InternalPerspectiveDsl.g:17604:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+    // InternalPerspectiveDsl.g:17652: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 {
-            // InternalPerspectiveDsl.g:17608:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
-            // InternalPerspectiveDsl.g:17609:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+            // InternalPerspectiveDsl.g:17656:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+            // InternalPerspectiveDsl.g:17657:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
             {
             pushFollow(FOLLOW_125);
             rule__XConstructorCall__Group__3__Impl();
@@ -57776,27 +57961,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
-    // InternalPerspectiveDsl.g:17616:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:17664: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 {
-            // InternalPerspectiveDsl.g:17620:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:17621:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:17668:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:17669:1: ( ( rule__XConstructorCall__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:17621:1: ( ( rule__XConstructorCall__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:17622:2: ( rule__XConstructorCall__Group_3__0 )?
+            // InternalPerspectiveDsl.g:17669:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:17670:2: ( rule__XConstructorCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:17623:2: ( rule__XConstructorCall__Group_3__0 )?
-            int alt122=2;
-            alt122 = dfa122.predict(input);
-            switch (alt122) {
+            // InternalPerspectiveDsl.g:17671:2: ( rule__XConstructorCall__Group_3__0 )?
+            int alt123=2;
+            alt123 = dfa123.predict(input);
+            switch (alt123) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17623:3: rule__XConstructorCall__Group_3__0
+                    // InternalPerspectiveDsl.g:17671:3: rule__XConstructorCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_3__0();
@@ -57834,14 +58019,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4"
-    // InternalPerspectiveDsl.g:17631:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+    // InternalPerspectiveDsl.g:17679: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 {
-            // InternalPerspectiveDsl.g:17635:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
-            // InternalPerspectiveDsl.g:17636:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+            // InternalPerspectiveDsl.g:17683:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+            // InternalPerspectiveDsl.g:17684:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
             {
             pushFollow(FOLLOW_125);
             rule__XConstructorCall__Group__4__Impl();
@@ -57872,27 +58057,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
-    // InternalPerspectiveDsl.g:17643:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+    // InternalPerspectiveDsl.g:17691: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 {
-            // InternalPerspectiveDsl.g:17647:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
-            // InternalPerspectiveDsl.g:17648:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:17695:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+            // InternalPerspectiveDsl.g:17696:1: ( ( rule__XConstructorCall__Group_4__0 )? )
             {
-            // InternalPerspectiveDsl.g:17648:1: ( ( rule__XConstructorCall__Group_4__0 )? )
-            // InternalPerspectiveDsl.g:17649:2: ( rule__XConstructorCall__Group_4__0 )?
+            // InternalPerspectiveDsl.g:17696:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:17697:2: ( rule__XConstructorCall__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
             }
-            // InternalPerspectiveDsl.g:17650:2: ( rule__XConstructorCall__Group_4__0 )?
-            int alt123=2;
-            alt123 = dfa123.predict(input);
-            switch (alt123) {
+            // InternalPerspectiveDsl.g:17698:2: ( rule__XConstructorCall__Group_4__0 )?
+            int alt124=2;
+            alt124 = dfa124.predict(input);
+            switch (alt124) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17650:3: rule__XConstructorCall__Group_4__0
+                    // InternalPerspectiveDsl.g:17698:3: rule__XConstructorCall__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4__0();
@@ -57930,14 +58115,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5"
-    // InternalPerspectiveDsl.g:17658:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+    // InternalPerspectiveDsl.g:17706:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
     public final void rule__XConstructorCall__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17662:1: ( rule__XConstructorCall__Group__5__Impl )
-            // InternalPerspectiveDsl.g:17663:2: rule__XConstructorCall__Group__5__Impl
+            // InternalPerspectiveDsl.g:17710:1: ( rule__XConstructorCall__Group__5__Impl )
+            // InternalPerspectiveDsl.g:17711:2: rule__XConstructorCall__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__5__Impl();
@@ -57963,27 +58148,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
-    // InternalPerspectiveDsl.g:17669:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+    // InternalPerspectiveDsl.g:17717:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
     public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17673:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
-            // InternalPerspectiveDsl.g:17674:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalPerspectiveDsl.g:17721:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+            // InternalPerspectiveDsl.g:17722:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
             {
-            // InternalPerspectiveDsl.g:17674:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
-            // InternalPerspectiveDsl.g:17675:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            // InternalPerspectiveDsl.g:17722:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalPerspectiveDsl.g:17723:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:17676:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
-            int alt124=2;
-            alt124 = dfa124.predict(input);
-            switch (alt124) {
+            // InternalPerspectiveDsl.g:17724:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            int alt125=2;
+            alt125 = dfa125.predict(input);
+            switch (alt125) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17676:3: rule__XConstructorCall__ArgumentsAssignment_5
+                    // InternalPerspectiveDsl.g:17724:3: rule__XConstructorCall__ArgumentsAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_5();
@@ -58021,14 +58206,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0"
-    // InternalPerspectiveDsl.g:17685:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+    // InternalPerspectiveDsl.g:17733: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 {
-            // InternalPerspectiveDsl.g:17689:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
-            // InternalPerspectiveDsl.g:17690:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+            // InternalPerspectiveDsl.g:17737:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+            // InternalPerspectiveDsl.g:17738:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
             {
             pushFollow(FOLLOW_99);
             rule__XConstructorCall__Group_3__0__Impl();
@@ -58059,23 +58244,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:17697:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+    // InternalPerspectiveDsl.g:17745:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
     public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17701:1: ( ( ( '<' ) ) )
-            // InternalPerspectiveDsl.g:17702:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:17749:1: ( ( ( '<' ) ) )
+            // InternalPerspectiveDsl.g:17750:1: ( ( '<' ) )
             {
-            // InternalPerspectiveDsl.g:17702:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:17703:2: ( '<' )
+            // InternalPerspectiveDsl.g:17750:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:17751:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
             }
-            // InternalPerspectiveDsl.g:17704:2: ( '<' )
-            // InternalPerspectiveDsl.g:17704:3: '<'
+            // InternalPerspectiveDsl.g:17752:2: ( '<' )
+            // InternalPerspectiveDsl.g:17752:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -58106,14 +58291,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1"
-    // InternalPerspectiveDsl.g:17712:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+    // InternalPerspectiveDsl.g:17760: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 {
-            // InternalPerspectiveDsl.g:17716:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
-            // InternalPerspectiveDsl.g:17717:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+            // InternalPerspectiveDsl.g:17764:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+            // InternalPerspectiveDsl.g:17765:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
             {
             pushFollow(FOLLOW_100);
             rule__XConstructorCall__Group_3__1__Impl();
@@ -58144,23 +58329,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:17724:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:17772: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 {
-            // InternalPerspectiveDsl.g:17728:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
-            // InternalPerspectiveDsl.g:17729:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:17776:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+            // InternalPerspectiveDsl.g:17777:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:17729:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
-            // InternalPerspectiveDsl.g:17730:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalPerspectiveDsl.g:17777:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:17778:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:17731:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
-            // InternalPerspectiveDsl.g:17731:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+            // InternalPerspectiveDsl.g:17779:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalPerspectiveDsl.g:17779:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_1();
@@ -58195,14 +58380,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2"
-    // InternalPerspectiveDsl.g:17739:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+    // InternalPerspectiveDsl.g:17787: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 {
-            // InternalPerspectiveDsl.g:17743:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
-            // InternalPerspectiveDsl.g:17744:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+            // InternalPerspectiveDsl.g:17791:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+            // InternalPerspectiveDsl.g:17792:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
             {
             pushFollow(FOLLOW_100);
             rule__XConstructorCall__Group_3__2__Impl();
@@ -58233,35 +58418,35 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:17751:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:17799: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 {
-            // InternalPerspectiveDsl.g:17755:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
-            // InternalPerspectiveDsl.g:17756:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalPerspectiveDsl.g:17803:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+            // InternalPerspectiveDsl.g:17804:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:17756:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
-            // InternalPerspectiveDsl.g:17757:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            // InternalPerspectiveDsl.g:17804:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalPerspectiveDsl.g:17805:2: ( rule__XConstructorCall__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
             }
-            // InternalPerspectiveDsl.g:17758:2: ( rule__XConstructorCall__Group_3_2__0 )*
-            loop125:
+            // InternalPerspectiveDsl.g:17806:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            loop126:
             do {
-                int alt125=2;
-                int LA125_0 = input.LA(1);
+                int alt126=2;
+                int LA126_0 = input.LA(1);
 
-                if ( (LA125_0==100) ) {
-                    alt125=1;
+                if ( (LA126_0==100) ) {
+                    alt126=1;
                 }
 
 
-                switch (alt125) {
+                switch (alt126) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:17758:3: rule__XConstructorCall__Group_3_2__0
+            	    // InternalPerspectiveDsl.g:17806:3: rule__XConstructorCall__Group_3_2__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XConstructorCall__Group_3_2__0();
@@ -58273,7 +58458,7 @@
             	    break;
 
             	default :
-            	    break loop125;
+            	    break loop126;
                 }
             } while (true);
 
@@ -58302,14 +58487,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3"
-    // InternalPerspectiveDsl.g:17766:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+    // InternalPerspectiveDsl.g:17814: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 {
-            // InternalPerspectiveDsl.g:17770:1: ( rule__XConstructorCall__Group_3__3__Impl )
-            // InternalPerspectiveDsl.g:17771:2: rule__XConstructorCall__Group_3__3__Impl
+            // InternalPerspectiveDsl.g:17818:1: ( rule__XConstructorCall__Group_3__3__Impl )
+            // InternalPerspectiveDsl.g:17819:2: rule__XConstructorCall__Group_3__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3__3__Impl();
@@ -58335,17 +58520,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
-    // InternalPerspectiveDsl.g:17777:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:17825:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
     public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17781:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:17782:1: ( '>' )
+            // InternalPerspectiveDsl.g:17829:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:17830:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:17782:1: ( '>' )
-            // InternalPerspectiveDsl.g:17783:2: '>'
+            // InternalPerspectiveDsl.g:17830:1: ( '>' )
+            // InternalPerspectiveDsl.g:17831:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
@@ -58376,14 +58561,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
-    // InternalPerspectiveDsl.g:17793:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:17841: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 {
-            // InternalPerspectiveDsl.g:17797:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:17798:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+            // InternalPerspectiveDsl.g:17845:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:17846:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
             {
             pushFollow(FOLLOW_99);
             rule__XConstructorCall__Group_3_2__0__Impl();
@@ -58414,17 +58599,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:17805:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:17853:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17809:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:17810:1: ( ',' )
+            // InternalPerspectiveDsl.g:17857:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:17858:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:17810:1: ( ',' )
-            // InternalPerspectiveDsl.g:17811:2: ','
+            // InternalPerspectiveDsl.g:17858:1: ( ',' )
+            // InternalPerspectiveDsl.g:17859:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
@@ -58455,14 +58640,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
-    // InternalPerspectiveDsl.g:17820:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:17868: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 {
-            // InternalPerspectiveDsl.g:17824:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:17825:2: rule__XConstructorCall__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:17872:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:17873:2: rule__XConstructorCall__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3_2__1__Impl();
@@ -58488,23 +58673,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:17831:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:17879: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 {
-            // InternalPerspectiveDsl.g:17835:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:17836:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:17883:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:17884:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:17836:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:17837:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:17884:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:17885:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:17838:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:17838:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+            // InternalPerspectiveDsl.g:17886:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:17886:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
@@ -58539,14 +58724,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0"
-    // InternalPerspectiveDsl.g:17847:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+    // InternalPerspectiveDsl.g:17895: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 {
-            // InternalPerspectiveDsl.g:17851:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
-            // InternalPerspectiveDsl.g:17852:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+            // InternalPerspectiveDsl.g:17899:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+            // InternalPerspectiveDsl.g:17900:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
             {
             pushFollow(FOLLOW_101);
             rule__XConstructorCall__Group_4__0__Impl();
@@ -58577,23 +58762,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
-    // InternalPerspectiveDsl.g:17859:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
+    // InternalPerspectiveDsl.g:17907: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 {
-            // InternalPerspectiveDsl.g:17863:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
-            // InternalPerspectiveDsl.g:17864:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalPerspectiveDsl.g:17911:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
+            // InternalPerspectiveDsl.g:17912:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
             {
-            // InternalPerspectiveDsl.g:17864:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
-            // InternalPerspectiveDsl.g:17865:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalPerspectiveDsl.g:17912:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalPerspectiveDsl.g:17913:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
             }
-            // InternalPerspectiveDsl.g:17866:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
-            // InternalPerspectiveDsl.g:17866:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+            // InternalPerspectiveDsl.g:17914:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalPerspectiveDsl.g:17914:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();
@@ -58628,14 +58813,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1"
-    // InternalPerspectiveDsl.g:17874:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+    // InternalPerspectiveDsl.g:17922: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 {
-            // InternalPerspectiveDsl.g:17878:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
-            // InternalPerspectiveDsl.g:17879:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+            // InternalPerspectiveDsl.g:17926:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+            // InternalPerspectiveDsl.g:17927:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
             {
             pushFollow(FOLLOW_101);
             rule__XConstructorCall__Group_4__1__Impl();
@@ -58666,31 +58851,31 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
-    // InternalPerspectiveDsl.g:17886:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+    // InternalPerspectiveDsl.g:17934: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 {
-            // InternalPerspectiveDsl.g:17890:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
-            // InternalPerspectiveDsl.g:17891:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalPerspectiveDsl.g:17938:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+            // InternalPerspectiveDsl.g:17939:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
             {
-            // InternalPerspectiveDsl.g:17891:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
-            // InternalPerspectiveDsl.g:17892:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            // InternalPerspectiveDsl.g:17939:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalPerspectiveDsl.g:17940:2: ( rule__XConstructorCall__Alternatives_4_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
             }
-            // InternalPerspectiveDsl.g:17893:2: ( rule__XConstructorCall__Alternatives_4_1 )?
-            int alt126=2;
-            int LA126_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:17941:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            int alt127=2;
+            int LA127_0 = input.LA(1);
 
-            if ( ((LA126_0>=RULE_ID && LA126_0<=RULE_DECIMAL)||LA126_0==27||LA126_0==31||(LA126_0>=34 && LA126_0<=35)||LA126_0==40||(LA126_0>=45 && LA126_0<=50)||LA126_0==54||LA126_0==98||(LA126_0>=102 && LA126_0<=103)||LA126_0==106||LA126_0==108||(LA126_0>=112 && LA126_0<=120)||LA126_0==122||LA126_0==131||LA126_0==133) ) {
-                alt126=1;
+            if ( ((LA127_0>=RULE_ID && LA127_0<=RULE_DECIMAL)||LA127_0==27||LA127_0==31||(LA127_0>=34 && LA127_0<=35)||LA127_0==40||(LA127_0>=45 && LA127_0<=50)||LA127_0==54||LA127_0==98||(LA127_0>=102 && LA127_0<=103)||LA127_0==106||LA127_0==108||(LA127_0>=112 && LA127_0<=120)||LA127_0==122||LA127_0==132||LA127_0==134) ) {
+                alt127=1;
             }
-            switch (alt126) {
+            switch (alt127) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17893:3: rule__XConstructorCall__Alternatives_4_1
+                    // InternalPerspectiveDsl.g:17941:3: rule__XConstructorCall__Alternatives_4_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Alternatives_4_1();
@@ -58728,14 +58913,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2"
-    // InternalPerspectiveDsl.g:17901:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+    // InternalPerspectiveDsl.g:17949: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 {
-            // InternalPerspectiveDsl.g:17905:1: ( rule__XConstructorCall__Group_4__2__Impl )
-            // InternalPerspectiveDsl.g:17906:2: rule__XConstructorCall__Group_4__2__Impl
+            // InternalPerspectiveDsl.g:17953:1: ( rule__XConstructorCall__Group_4__2__Impl )
+            // InternalPerspectiveDsl.g:17954:2: rule__XConstructorCall__Group_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4__2__Impl();
@@ -58761,17 +58946,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
-    // InternalPerspectiveDsl.g:17912:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:17960:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
     public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17916:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:17917:1: ( ')' )
+            // InternalPerspectiveDsl.g:17964:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:17965:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:17917:1: ( ')' )
-            // InternalPerspectiveDsl.g:17918:2: ')'
+            // InternalPerspectiveDsl.g:17965:1: ( ')' )
+            // InternalPerspectiveDsl.g:17966:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
@@ -58802,14 +58987,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
-    // InternalPerspectiveDsl.g:17928:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
+    // InternalPerspectiveDsl.g:17976: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 {
-            // InternalPerspectiveDsl.g:17932:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
-            // InternalPerspectiveDsl.g:17933:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+            // InternalPerspectiveDsl.g:17980:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+            // InternalPerspectiveDsl.g:17981:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XConstructorCall__Group_4_1_1__0__Impl();
@@ -58840,23 +59025,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:17940:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:17988: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 {
-            // InternalPerspectiveDsl.g:17944:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
-            // InternalPerspectiveDsl.g:17945:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalPerspectiveDsl.g:17992:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+            // InternalPerspectiveDsl.g:17993:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:17945:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
-            // InternalPerspectiveDsl.g:17946:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalPerspectiveDsl.g:17993:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalPerspectiveDsl.g:17994:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:17947:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
-            // InternalPerspectiveDsl.g:17947:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+            // InternalPerspectiveDsl.g:17995:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalPerspectiveDsl.g:17995:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
@@ -58891,14 +59076,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
-    // InternalPerspectiveDsl.g:17955:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18003: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 {
-            // InternalPerspectiveDsl.g:17959:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:17960:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+            // InternalPerspectiveDsl.g:18007:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:18008:2: rule__XConstructorCall__Group_4_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1__1__Impl();
@@ -58924,35 +59109,35 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:17966:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:18014: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 {
-            // InternalPerspectiveDsl.g:17970:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:17971:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:18018:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:18019:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:17971:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:17972:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:18019:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:18020:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:17973:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
-            loop127:
+            // InternalPerspectiveDsl.g:18021:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            loop128:
             do {
-                int alt127=2;
-                int LA127_0 = input.LA(1);
+                int alt128=2;
+                int LA128_0 = input.LA(1);
 
-                if ( (LA127_0==100) ) {
-                    alt127=1;
+                if ( (LA128_0==100) ) {
+                    alt128=1;
                 }
 
 
-                switch (alt127) {
+                switch (alt128) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:17973:3: rule__XConstructorCall__Group_4_1_1_1__0
+            	    // InternalPerspectiveDsl.g:18021:3: rule__XConstructorCall__Group_4_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XConstructorCall__Group_4_1_1_1__0();
@@ -58964,7 +59149,7 @@
             	    break;
 
             	default :
-            	    break loop127;
+            	    break loop128;
                 }
             } while (true);
 
@@ -58993,14 +59178,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
-    // InternalPerspectiveDsl.g:17982: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 ;
+    // InternalPerspectiveDsl.g:18030: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 {
-            // InternalPerspectiveDsl.g:17986:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
-            // InternalPerspectiveDsl.g:17987:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+            // InternalPerspectiveDsl.g:18034:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+            // InternalPerspectiveDsl.g:18035:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XConstructorCall__Group_4_1_1_1__0__Impl();
@@ -59031,17 +59216,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:17994:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:18042: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 {
-            // InternalPerspectiveDsl.g:17998:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:17999:1: ( ',' )
+            // InternalPerspectiveDsl.g:18046:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:18047:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:17999:1: ( ',' )
-            // InternalPerspectiveDsl.g:18000:2: ','
+            // InternalPerspectiveDsl.g:18047:1: ( ',' )
+            // InternalPerspectiveDsl.g:18048:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
@@ -59072,14 +59257,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
-    // InternalPerspectiveDsl.g:18009:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18057: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 {
-            // InternalPerspectiveDsl.g:18013:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:18014:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:18061:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:18062:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1_1__1__Impl();
@@ -59105,23 +59290,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:18020:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:18068: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 {
-            // InternalPerspectiveDsl.g:18024:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:18025:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:18072:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:18073:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:18025:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:18026:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalPerspectiveDsl.g:18073:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:18074:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:18027:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
-            // InternalPerspectiveDsl.g:18027:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+            // InternalPerspectiveDsl.g:18075:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalPerspectiveDsl.g:18075:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
@@ -59156,14 +59341,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0"
-    // InternalPerspectiveDsl.g:18036:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:18084: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 {
-            // InternalPerspectiveDsl.g:18040:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:18041:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+            // InternalPerspectiveDsl.g:18088:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:18089:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
             {
             pushFollow(FOLLOW_126);
             rule__XBooleanLiteral__Group__0__Impl();
@@ -59194,23 +59379,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18048:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18096:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18052:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18053:1: ( () )
+            // InternalPerspectiveDsl.g:18100:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18101:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18053:1: ( () )
-            // InternalPerspectiveDsl.g:18054:2: ()
+            // InternalPerspectiveDsl.g:18101:1: ( () )
+            // InternalPerspectiveDsl.g:18102:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18055:2: ()
-            // InternalPerspectiveDsl.g:18055:3: 
+            // InternalPerspectiveDsl.g:18103:2: ()
+            // InternalPerspectiveDsl.g:18103:3: 
             {
             }
 
@@ -59235,14 +59420,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1"
-    // InternalPerspectiveDsl.g:18063:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:18111:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
     public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18067:1: ( rule__XBooleanLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:18068:2: rule__XBooleanLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:18115:1: ( rule__XBooleanLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:18116:2: rule__XBooleanLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__1__Impl();
@@ -59268,23 +59453,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18074:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+    // InternalPerspectiveDsl.g:18122:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
     public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18078:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
-            // InternalPerspectiveDsl.g:18079:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:18126:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+            // InternalPerspectiveDsl.g:18127:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
             {
-            // InternalPerspectiveDsl.g:18079:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
-            // InternalPerspectiveDsl.g:18080:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalPerspectiveDsl.g:18127:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:18128:2: ( rule__XBooleanLiteral__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:18081:2: ( rule__XBooleanLiteral__Alternatives_1 )
-            // InternalPerspectiveDsl.g:18081:3: rule__XBooleanLiteral__Alternatives_1
+            // InternalPerspectiveDsl.g:18129:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalPerspectiveDsl.g:18129:3: rule__XBooleanLiteral__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Alternatives_1();
@@ -59319,14 +59504,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0"
-    // InternalPerspectiveDsl.g:18090:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:18138: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 {
-            // InternalPerspectiveDsl.g:18094:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:18095:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+            // InternalPerspectiveDsl.g:18142:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:18143:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
             {
             pushFollow(FOLLOW_127);
             rule__XNullLiteral__Group__0__Impl();
@@ -59357,23 +59542,23 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18102:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18150:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18106:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18107:1: ( () )
+            // InternalPerspectiveDsl.g:18154:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18155:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18107:1: ( () )
-            // InternalPerspectiveDsl.g:18108:2: ()
+            // InternalPerspectiveDsl.g:18155:1: ( () )
+            // InternalPerspectiveDsl.g:18156:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18109:2: ()
-            // InternalPerspectiveDsl.g:18109:3: 
+            // InternalPerspectiveDsl.g:18157:2: ()
+            // InternalPerspectiveDsl.g:18157:3: 
             {
             }
 
@@ -59398,14 +59583,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1"
-    // InternalPerspectiveDsl.g:18117:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:18165:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
     public final void rule__XNullLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18121:1: ( rule__XNullLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:18122:2: rule__XNullLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:18169:1: ( rule__XNullLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:18170:2: rule__XNullLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__1__Impl();
@@ -59431,17 +59616,17 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18128:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+    // InternalPerspectiveDsl.g:18176:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
     public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18132:1: ( ( 'null' ) )
-            // InternalPerspectiveDsl.g:18133:1: ( 'null' )
+            // InternalPerspectiveDsl.g:18180:1: ( ( 'null' ) )
+            // InternalPerspectiveDsl.g:18181:1: ( 'null' )
             {
-            // InternalPerspectiveDsl.g:18133:1: ( 'null' )
-            // InternalPerspectiveDsl.g:18134:2: 'null'
+            // InternalPerspectiveDsl.g:18181:1: ( 'null' )
+            // InternalPerspectiveDsl.g:18182:2: 'null'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
@@ -59472,14 +59657,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0"
-    // InternalPerspectiveDsl.g:18144:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:18192: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 {
-            // InternalPerspectiveDsl.g:18148:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:18149:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+            // InternalPerspectiveDsl.g:18196:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:18197:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
             {
             pushFollow(FOLLOW_128);
             rule__XNumberLiteral__Group__0__Impl();
@@ -59510,23 +59695,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18156:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18204:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18160:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18161:1: ( () )
+            // InternalPerspectiveDsl.g:18208:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18209:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18161:1: ( () )
-            // InternalPerspectiveDsl.g:18162:2: ()
+            // InternalPerspectiveDsl.g:18209:1: ( () )
+            // InternalPerspectiveDsl.g:18210:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18163:2: ()
-            // InternalPerspectiveDsl.g:18163:3: 
+            // InternalPerspectiveDsl.g:18211:2: ()
+            // InternalPerspectiveDsl.g:18211:3: 
             {
             }
 
@@ -59551,14 +59736,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1"
-    // InternalPerspectiveDsl.g:18171:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:18219:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
     public final void rule__XNumberLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18175:1: ( rule__XNumberLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:18176:2: rule__XNumberLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:18223:1: ( rule__XNumberLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:18224:2: rule__XNumberLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__1__Impl();
@@ -59584,23 +59769,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18182:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:18230:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18186:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:18187:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18234:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:18235:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:18187:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
-            // InternalPerspectiveDsl.g:18188:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:18235:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18236:2: ( rule__XNumberLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:18189:2: ( rule__XNumberLiteral__ValueAssignment_1 )
-            // InternalPerspectiveDsl.g:18189:3: rule__XNumberLiteral__ValueAssignment_1
+            // InternalPerspectiveDsl.g:18237:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:18237:3: rule__XNumberLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__ValueAssignment_1();
@@ -59635,14 +59820,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0"
-    // InternalPerspectiveDsl.g:18198:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:18246: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 {
-            // InternalPerspectiveDsl.g:18202:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:18203:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+            // InternalPerspectiveDsl.g:18250:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:18251:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
             {
             pushFollow(FOLLOW_15);
             rule__XStringLiteral__Group__0__Impl();
@@ -59673,23 +59858,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18210:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18258:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18214:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18215:1: ( () )
+            // InternalPerspectiveDsl.g:18262:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18263:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18215:1: ( () )
-            // InternalPerspectiveDsl.g:18216:2: ()
+            // InternalPerspectiveDsl.g:18263:1: ( () )
+            // InternalPerspectiveDsl.g:18264:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18217:2: ()
-            // InternalPerspectiveDsl.g:18217:3: 
+            // InternalPerspectiveDsl.g:18265:2: ()
+            // InternalPerspectiveDsl.g:18265:3: 
             {
             }
 
@@ -59714,14 +59899,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1"
-    // InternalPerspectiveDsl.g:18225:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:18273:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
     public final void rule__XStringLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18229:1: ( rule__XStringLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:18230:2: rule__XStringLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:18277:1: ( rule__XStringLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:18278:2: rule__XStringLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__1__Impl();
@@ -59747,23 +59932,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18236:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:18284:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18240:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:18241:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18288:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:18289:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:18241:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
-            // InternalPerspectiveDsl.g:18242:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:18289:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18290:2: ( rule__XStringLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:18243:2: ( rule__XStringLiteral__ValueAssignment_1 )
-            // InternalPerspectiveDsl.g:18243:3: rule__XStringLiteral__ValueAssignment_1
+            // InternalPerspectiveDsl.g:18291:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:18291:3: rule__XStringLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__ValueAssignment_1();
@@ -59798,14 +59983,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0"
-    // InternalPerspectiveDsl.g:18252:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:18300: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 {
-            // InternalPerspectiveDsl.g:18256:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:18257:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+            // InternalPerspectiveDsl.g:18304:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:18305:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
             {
             pushFollow(FOLLOW_129);
             rule__XTypeLiteral__Group__0__Impl();
@@ -59836,23 +60021,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18264:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18312:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18268:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18269:1: ( () )
+            // InternalPerspectiveDsl.g:18316:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18317:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18269:1: ( () )
-            // InternalPerspectiveDsl.g:18270:2: ()
+            // InternalPerspectiveDsl.g:18317:1: ( () )
+            // InternalPerspectiveDsl.g:18318:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18271:2: ()
-            // InternalPerspectiveDsl.g:18271:3: 
+            // InternalPerspectiveDsl.g:18319:2: ()
+            // InternalPerspectiveDsl.g:18319:3: 
             {
             }
 
@@ -59877,14 +60062,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1"
-    // InternalPerspectiveDsl.g:18279:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+    // InternalPerspectiveDsl.g:18327: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 {
-            // InternalPerspectiveDsl.g:18283:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
-            // InternalPerspectiveDsl.g:18284:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+            // InternalPerspectiveDsl.g:18331:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+            // InternalPerspectiveDsl.g:18332:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
             {
             pushFollow(FOLLOW_58);
             rule__XTypeLiteral__Group__1__Impl();
@@ -59915,17 +60100,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18291:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+    // InternalPerspectiveDsl.g:18339:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
     public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18295:1: ( ( 'typeof' ) )
-            // InternalPerspectiveDsl.g:18296:1: ( 'typeof' )
+            // InternalPerspectiveDsl.g:18343:1: ( ( 'typeof' ) )
+            // InternalPerspectiveDsl.g:18344:1: ( 'typeof' )
             {
-            // InternalPerspectiveDsl.g:18296:1: ( 'typeof' )
-            // InternalPerspectiveDsl.g:18297:2: 'typeof'
+            // InternalPerspectiveDsl.g:18344:1: ( 'typeof' )
+            // InternalPerspectiveDsl.g:18345:2: 'typeof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
@@ -59956,14 +60141,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2"
-    // InternalPerspectiveDsl.g:18306:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+    // InternalPerspectiveDsl.g:18354: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 {
-            // InternalPerspectiveDsl.g:18310:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
-            // InternalPerspectiveDsl.g:18311:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+            // InternalPerspectiveDsl.g:18358:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+            // InternalPerspectiveDsl.g:18359:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__XTypeLiteral__Group__2__Impl();
@@ -59994,17 +60179,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18318:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:18366:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
     public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18322:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:18323:1: ( '(' )
+            // InternalPerspectiveDsl.g:18370:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:18371:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:18323:1: ( '(' )
-            // InternalPerspectiveDsl.g:18324:2: '('
+            // InternalPerspectiveDsl.g:18371:1: ( '(' )
+            // InternalPerspectiveDsl.g:18372:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
@@ -60035,14 +60220,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3"
-    // InternalPerspectiveDsl.g:18333:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+    // InternalPerspectiveDsl.g:18381: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 {
-            // InternalPerspectiveDsl.g:18337:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
-            // InternalPerspectiveDsl.g:18338:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+            // InternalPerspectiveDsl.g:18385:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+            // InternalPerspectiveDsl.g:18386:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
             {
             pushFollow(FOLLOW_130);
             rule__XTypeLiteral__Group__3__Impl();
@@ -60073,23 +60258,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
-    // InternalPerspectiveDsl.g:18345:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:18393:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
     public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18349:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:18350:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalPerspectiveDsl.g:18397:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:18398:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:18350:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
-            // InternalPerspectiveDsl.g:18351:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalPerspectiveDsl.g:18398:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalPerspectiveDsl.g:18399:2: ( rule__XTypeLiteral__TypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:18352:2: ( rule__XTypeLiteral__TypeAssignment_3 )
-            // InternalPerspectiveDsl.g:18352:3: rule__XTypeLiteral__TypeAssignment_3
+            // InternalPerspectiveDsl.g:18400:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalPerspectiveDsl.g:18400:3: rule__XTypeLiteral__TypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__TypeAssignment_3();
@@ -60124,14 +60309,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4"
-    // InternalPerspectiveDsl.g:18360:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+    // InternalPerspectiveDsl.g:18408: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 {
-            // InternalPerspectiveDsl.g:18364:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
-            // InternalPerspectiveDsl.g:18365:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+            // InternalPerspectiveDsl.g:18412:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+            // InternalPerspectiveDsl.g:18413:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
             {
             pushFollow(FOLLOW_130);
             rule__XTypeLiteral__Group__4__Impl();
@@ -60162,35 +60347,35 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
-    // InternalPerspectiveDsl.g:18372:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+    // InternalPerspectiveDsl.g:18420:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
     public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18376:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
-            // InternalPerspectiveDsl.g:18377:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalPerspectiveDsl.g:18424:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+            // InternalPerspectiveDsl.g:18425:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
             {
-            // InternalPerspectiveDsl.g:18377:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
-            // InternalPerspectiveDsl.g:18378:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            // InternalPerspectiveDsl.g:18425:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalPerspectiveDsl.g:18426:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:18379:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
-            loop128:
+            // InternalPerspectiveDsl.g:18427:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            loop129:
             do {
-                int alt128=2;
-                int LA128_0 = input.LA(1);
+                int alt129=2;
+                int LA129_0 = input.LA(1);
 
-                if ( (LA128_0==103) ) {
-                    alt128=1;
+                if ( (LA129_0==103) ) {
+                    alt129=1;
                 }
 
 
-                switch (alt128) {
+                switch (alt129) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:18379:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+            	    // InternalPerspectiveDsl.g:18427:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
             	    {
             	    pushFollow(FOLLOW_131);
             	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();
@@ -60202,7 +60387,7 @@
             	    break;
 
             	default :
-            	    break loop128;
+            	    break loop129;
                 }
             } while (true);
 
@@ -60231,14 +60416,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5"
-    // InternalPerspectiveDsl.g:18387:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+    // InternalPerspectiveDsl.g:18435:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
     public final void rule__XTypeLiteral__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18391:1: ( rule__XTypeLiteral__Group__5__Impl )
-            // InternalPerspectiveDsl.g:18392:2: rule__XTypeLiteral__Group__5__Impl
+            // InternalPerspectiveDsl.g:18439:1: ( rule__XTypeLiteral__Group__5__Impl )
+            // InternalPerspectiveDsl.g:18440:2: rule__XTypeLiteral__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__5__Impl();
@@ -60264,17 +60449,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
-    // InternalPerspectiveDsl.g:18398:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:18446:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
     public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18402:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:18403:1: ( ')' )
+            // InternalPerspectiveDsl.g:18450:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:18451:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:18403:1: ( ')' )
-            // InternalPerspectiveDsl.g:18404:2: ')'
+            // InternalPerspectiveDsl.g:18451:1: ( ')' )
+            // InternalPerspectiveDsl.g:18452:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
@@ -60305,14 +60490,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0"
-    // InternalPerspectiveDsl.g:18414:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:18462: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 {
-            // InternalPerspectiveDsl.g:18418:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
-            // InternalPerspectiveDsl.g:18419:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+            // InternalPerspectiveDsl.g:18466:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+            // InternalPerspectiveDsl.g:18467:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
             {
             pushFollow(FOLLOW_132);
             rule__XThrowExpression__Group__0__Impl();
@@ -60343,23 +60528,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18426:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18474:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
     public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18430:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18431:1: ( () )
+            // InternalPerspectiveDsl.g:18478:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18479:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18431:1: ( () )
-            // InternalPerspectiveDsl.g:18432:2: ()
+            // InternalPerspectiveDsl.g:18479:1: ( () )
+            // InternalPerspectiveDsl.g:18480:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18433:2: ()
-            // InternalPerspectiveDsl.g:18433:3: 
+            // InternalPerspectiveDsl.g:18481:2: ()
+            // InternalPerspectiveDsl.g:18481:3: 
             {
             }
 
@@ -60384,14 +60569,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1"
-    // InternalPerspectiveDsl.g:18441:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:18489: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 {
-            // InternalPerspectiveDsl.g:18445:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
-            // InternalPerspectiveDsl.g:18446:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+            // InternalPerspectiveDsl.g:18493:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+            // InternalPerspectiveDsl.g:18494:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
             {
             pushFollow(FOLLOW_62);
             rule__XThrowExpression__Group__1__Impl();
@@ -60422,17 +60607,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18453:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+    // InternalPerspectiveDsl.g:18501:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
     public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18457:1: ( ( 'throw' ) )
-            // InternalPerspectiveDsl.g:18458:1: ( 'throw' )
+            // InternalPerspectiveDsl.g:18505:1: ( ( 'throw' ) )
+            // InternalPerspectiveDsl.g:18506:1: ( 'throw' )
             {
-            // InternalPerspectiveDsl.g:18458:1: ( 'throw' )
-            // InternalPerspectiveDsl.g:18459:2: 'throw'
+            // InternalPerspectiveDsl.g:18506:1: ( 'throw' )
+            // InternalPerspectiveDsl.g:18507:2: 'throw'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
@@ -60463,14 +60648,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2"
-    // InternalPerspectiveDsl.g:18468:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:18516:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
     public final void rule__XThrowExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18472:1: ( rule__XThrowExpression__Group__2__Impl )
-            // InternalPerspectiveDsl.g:18473:2: rule__XThrowExpression__Group__2__Impl
+            // InternalPerspectiveDsl.g:18520:1: ( rule__XThrowExpression__Group__2__Impl )
+            // InternalPerspectiveDsl.g:18521:2: rule__XThrowExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__2__Impl();
@@ -60496,23 +60681,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18479:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:18527:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18483:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:18484:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18531:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:18532:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:18484:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
-            // InternalPerspectiveDsl.g:18485:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:18532:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18533:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:18486:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
-            // InternalPerspectiveDsl.g:18486:3: rule__XThrowExpression__ExpressionAssignment_2
+            // InternalPerspectiveDsl.g:18534:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:18534:3: rule__XThrowExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__ExpressionAssignment_2();
@@ -60547,14 +60732,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0"
-    // InternalPerspectiveDsl.g:18495:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:18543: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 {
-            // InternalPerspectiveDsl.g:18499:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
-            // InternalPerspectiveDsl.g:18500:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+            // InternalPerspectiveDsl.g:18547:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+            // InternalPerspectiveDsl.g:18548:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
             {
             pushFollow(FOLLOW_133);
             rule__XReturnExpression__Group__0__Impl();
@@ -60585,23 +60770,23 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18507:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18555:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
     public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18511:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18512:1: ( () )
+            // InternalPerspectiveDsl.g:18559:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18560:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18512:1: ( () )
-            // InternalPerspectiveDsl.g:18513:2: ()
+            // InternalPerspectiveDsl.g:18560:1: ( () )
+            // InternalPerspectiveDsl.g:18561:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18514:2: ()
-            // InternalPerspectiveDsl.g:18514:3: 
+            // InternalPerspectiveDsl.g:18562:2: ()
+            // InternalPerspectiveDsl.g:18562:3: 
             {
             }
 
@@ -60626,14 +60811,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1"
-    // InternalPerspectiveDsl.g:18522:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:18570: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 {
-            // InternalPerspectiveDsl.g:18526:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
-            // InternalPerspectiveDsl.g:18527:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+            // InternalPerspectiveDsl.g:18574:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+            // InternalPerspectiveDsl.g:18575:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
             {
             pushFollow(FOLLOW_62);
             rule__XReturnExpression__Group__1__Impl();
@@ -60664,17 +60849,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18534:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+    // InternalPerspectiveDsl.g:18582:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
     public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18538:1: ( ( 'return' ) )
-            // InternalPerspectiveDsl.g:18539:1: ( 'return' )
+            // InternalPerspectiveDsl.g:18586:1: ( ( 'return' ) )
+            // InternalPerspectiveDsl.g:18587:1: ( 'return' )
             {
-            // InternalPerspectiveDsl.g:18539:1: ( 'return' )
-            // InternalPerspectiveDsl.g:18540:2: 'return'
+            // InternalPerspectiveDsl.g:18587:1: ( 'return' )
+            // InternalPerspectiveDsl.g:18588:2: 'return'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
@@ -60705,14 +60890,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2"
-    // InternalPerspectiveDsl.g:18549:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:18597:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
     public final void rule__XReturnExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18553:1: ( rule__XReturnExpression__Group__2__Impl )
-            // InternalPerspectiveDsl.g:18554:2: rule__XReturnExpression__Group__2__Impl
+            // InternalPerspectiveDsl.g:18601:1: ( rule__XReturnExpression__Group__2__Impl )
+            // InternalPerspectiveDsl.g:18602:2: rule__XReturnExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__2__Impl();
@@ -60738,27 +60923,27 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18560:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+    // InternalPerspectiveDsl.g:18608:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
     public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18564:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
-            // InternalPerspectiveDsl.g:18565:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalPerspectiveDsl.g:18612:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+            // InternalPerspectiveDsl.g:18613:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
             {
-            // InternalPerspectiveDsl.g:18565:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
-            // InternalPerspectiveDsl.g:18566:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            // InternalPerspectiveDsl.g:18613:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalPerspectiveDsl.g:18614:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:18567:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
-            int alt129=2;
-            alt129 = dfa129.predict(input);
-            switch (alt129) {
+            // InternalPerspectiveDsl.g:18615:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            int alt130=2;
+            alt130 = dfa130.predict(input);
+            switch (alt130) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:18567:3: rule__XReturnExpression__ExpressionAssignment_2
+                    // InternalPerspectiveDsl.g:18615:3: rule__XReturnExpression__ExpressionAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XReturnExpression__ExpressionAssignment_2();
@@ -60796,14 +60981,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
-    // InternalPerspectiveDsl.g:18576:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:18624: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 {
-            // InternalPerspectiveDsl.g:18580:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
-            // InternalPerspectiveDsl.g:18581:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+            // InternalPerspectiveDsl.g:18628:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+            // InternalPerspectiveDsl.g:18629:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
             {
             pushFollow(FOLLOW_134);
             rule__XTryCatchFinallyExpression__Group__0__Impl();
@@ -60834,23 +61019,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18588:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18636:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
     public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18592:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18593:1: ( () )
+            // InternalPerspectiveDsl.g:18640:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18641:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18593:1: ( () )
-            // InternalPerspectiveDsl.g:18594:2: ()
+            // InternalPerspectiveDsl.g:18641:1: ( () )
+            // InternalPerspectiveDsl.g:18642:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:18595:2: ()
-            // InternalPerspectiveDsl.g:18595:3: 
+            // InternalPerspectiveDsl.g:18643:2: ()
+            // InternalPerspectiveDsl.g:18643:3: 
             {
             }
 
@@ -60875,14 +61060,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
-    // InternalPerspectiveDsl.g:18603:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:18651: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 {
-            // InternalPerspectiveDsl.g:18607:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
-            // InternalPerspectiveDsl.g:18608:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+            // InternalPerspectiveDsl.g:18655:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+            // InternalPerspectiveDsl.g:18656:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
             {
             pushFollow(FOLLOW_62);
             rule__XTryCatchFinallyExpression__Group__1__Impl();
@@ -60913,17 +61098,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18615:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+    // InternalPerspectiveDsl.g:18663:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
     public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18619:1: ( ( 'try' ) )
-            // InternalPerspectiveDsl.g:18620:1: ( 'try' )
+            // InternalPerspectiveDsl.g:18667:1: ( ( 'try' ) )
+            // InternalPerspectiveDsl.g:18668:1: ( 'try' )
             {
-            // InternalPerspectiveDsl.g:18620:1: ( 'try' )
-            // InternalPerspectiveDsl.g:18621:2: 'try'
+            // InternalPerspectiveDsl.g:18668:1: ( 'try' )
+            // InternalPerspectiveDsl.g:18669:2: 'try'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
@@ -60954,14 +61139,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
-    // InternalPerspectiveDsl.g:18630:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:18678: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 {
-            // InternalPerspectiveDsl.g:18634:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
-            // InternalPerspectiveDsl.g:18635:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+            // InternalPerspectiveDsl.g:18682:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+            // InternalPerspectiveDsl.g:18683:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
             {
             pushFollow(FOLLOW_135);
             rule__XTryCatchFinallyExpression__Group__2__Impl();
@@ -60992,23 +61177,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18642:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:18690:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18646:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:18647:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18694:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:18695:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:18647:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
-            // InternalPerspectiveDsl.g:18648:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:18695:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18696:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:18649:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
-            // InternalPerspectiveDsl.g:18649:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+            // InternalPerspectiveDsl.g:18697:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:18697:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
@@ -61043,14 +61228,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
-    // InternalPerspectiveDsl.g:18657:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:18705:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18661:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:18662:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:18709:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:18710:2: rule__XTryCatchFinallyExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__3__Impl();
@@ -61076,23 +61261,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:18668:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+    // InternalPerspectiveDsl.g:18716:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18672:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
-            // InternalPerspectiveDsl.g:18673:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:18720:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+            // InternalPerspectiveDsl.g:18721:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
             {
-            // InternalPerspectiveDsl.g:18673:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
-            // InternalPerspectiveDsl.g:18674:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalPerspectiveDsl.g:18721:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:18722:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
             }
-            // InternalPerspectiveDsl.g:18675:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
-            // InternalPerspectiveDsl.g:18675:3: rule__XTryCatchFinallyExpression__Alternatives_3
+            // InternalPerspectiveDsl.g:18723:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalPerspectiveDsl.g:18723:3: rule__XTryCatchFinallyExpression__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Alternatives_3();
@@ -61127,14 +61312,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
-    // InternalPerspectiveDsl.g:18684:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:18732: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 {
-            // InternalPerspectiveDsl.g:18688:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:18689:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+            // InternalPerspectiveDsl.g:18736:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:18737:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
             {
             pushFollow(FOLLOW_136);
             rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
@@ -61165,26 +61350,26 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:18696:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+    // InternalPerspectiveDsl.g:18744: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 {
-            // InternalPerspectiveDsl.g:18700:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
-            // InternalPerspectiveDsl.g:18701:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalPerspectiveDsl.g:18748:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+            // InternalPerspectiveDsl.g:18749:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
             {
-            // InternalPerspectiveDsl.g:18701:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
-            // InternalPerspectiveDsl.g:18702:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalPerspectiveDsl.g:18749:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalPerspectiveDsl.g:18750:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
             {
-            // InternalPerspectiveDsl.g:18702:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
-            // InternalPerspectiveDsl.g:18703:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalPerspectiveDsl.g:18750:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+            // InternalPerspectiveDsl.g:18751:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:18704:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-            // InternalPerspectiveDsl.g:18704:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            // InternalPerspectiveDsl.g:18752:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalPerspectiveDsl.g:18752:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             {
             pushFollow(FOLLOW_137);
             rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
@@ -61200,32 +61385,32 @@
 
             }
 
-            // InternalPerspectiveDsl.g:18707:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
-            // InternalPerspectiveDsl.g:18708:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            // InternalPerspectiveDsl.g:18755:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalPerspectiveDsl.g:18756:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:18709:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
-            loop130:
+            // InternalPerspectiveDsl.g:18757:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            loop131:
             do {
-                int alt130=2;
-                int LA130_0 = input.LA(1);
+                int alt131=2;
+                int LA131_0 = input.LA(1);
 
-                if ( (LA130_0==123) ) {
-                    int LA130_2 = input.LA(2);
+                if ( (LA131_0==123) ) {
+                    int LA131_2 = input.LA(2);
 
-                    if ( (synpred189_InternalPerspectiveDsl()) ) {
-                        alt130=1;
+                    if ( (synpred190_InternalPerspectiveDsl()) ) {
+                        alt131=1;
                     }
 
 
                 }
 
 
-                switch (alt130) {
+                switch (alt131) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:18709:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            	    // InternalPerspectiveDsl.g:18757:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             	    {
             	    pushFollow(FOLLOW_137);
             	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
@@ -61237,7 +61422,7 @@
             	    break;
 
             	default :
-            	    break loop130;
+            	    break loop131;
                 }
             } while (true);
 
@@ -61269,14 +61454,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
-    // InternalPerspectiveDsl.g:18718:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:18766: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 {
-            // InternalPerspectiveDsl.g:18722:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:18723:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:18770:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:18771:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
@@ -61302,35 +61487,35 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:18729:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:18777: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 {
-            // InternalPerspectiveDsl.g:18733:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:18734:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalPerspectiveDsl.g:18781:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:18782:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:18734:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
-            // InternalPerspectiveDsl.g:18735:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            // InternalPerspectiveDsl.g:18782:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalPerspectiveDsl.g:18783:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:18736:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
-            int alt131=2;
-            int LA131_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:18784:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            int alt132=2;
+            int LA132_0 = input.LA(1);
 
-            if ( (LA131_0==121) ) {
-                int LA131_1 = input.LA(2);
+            if ( (LA132_0==121) ) {
+                int LA132_1 = input.LA(2);
 
-                if ( (synpred190_InternalPerspectiveDsl()) ) {
-                    alt131=1;
+                if ( (synpred191_InternalPerspectiveDsl()) ) {
+                    alt132=1;
                 }
             }
-            switch (alt131) {
+            switch (alt132) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:18736:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+                    // InternalPerspectiveDsl.g:18784:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -61368,14 +61553,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
-    // InternalPerspectiveDsl.g:18745:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
+    // InternalPerspectiveDsl.g:18793: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 {
-            // InternalPerspectiveDsl.g:18749:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
-            // InternalPerspectiveDsl.g:18750:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+            // InternalPerspectiveDsl.g:18797:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+            // InternalPerspectiveDsl.g:18798:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
@@ -61406,23 +61591,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:18757:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+    // InternalPerspectiveDsl.g:18805: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 {
-            // InternalPerspectiveDsl.g:18761:1: ( ( ( 'finally' ) ) )
-            // InternalPerspectiveDsl.g:18762:1: ( ( 'finally' ) )
+            // InternalPerspectiveDsl.g:18809:1: ( ( ( 'finally' ) ) )
+            // InternalPerspectiveDsl.g:18810:1: ( ( 'finally' ) )
             {
-            // InternalPerspectiveDsl.g:18762:1: ( ( 'finally' ) )
-            // InternalPerspectiveDsl.g:18763:2: ( 'finally' )
+            // InternalPerspectiveDsl.g:18810:1: ( ( 'finally' ) )
+            // InternalPerspectiveDsl.g:18811:2: ( 'finally' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:18764:2: ( 'finally' )
-            // InternalPerspectiveDsl.g:18764:3: 'finally'
+            // InternalPerspectiveDsl.g:18812:2: ( 'finally' )
+            // InternalPerspectiveDsl.g:18812:3: 'finally'
             {
             match(input,121,FOLLOW_2); if (state.failed) return ;
 
@@ -61453,14 +61638,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
-    // InternalPerspectiveDsl.g:18772:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18820: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 {
-            // InternalPerspectiveDsl.g:18776:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:18777:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+            // InternalPerspectiveDsl.g:18824:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:18825:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
@@ -61486,23 +61671,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:18783:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:18831: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 {
-            // InternalPerspectiveDsl.g:18787:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
-            // InternalPerspectiveDsl.g:18788:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalPerspectiveDsl.g:18835:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:18836:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:18788:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
-            // InternalPerspectiveDsl.g:18789:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalPerspectiveDsl.g:18836:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalPerspectiveDsl.g:18837:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:18790:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
-            // InternalPerspectiveDsl.g:18790:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+            // InternalPerspectiveDsl.g:18838:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalPerspectiveDsl.g:18838:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
@@ -61537,14 +61722,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
-    // InternalPerspectiveDsl.g:18799:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:18847: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 {
-            // InternalPerspectiveDsl.g:18803:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:18804:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+            // InternalPerspectiveDsl.g:18851:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:18852:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
@@ -61575,17 +61760,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:18811:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+    // InternalPerspectiveDsl.g:18859: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 {
-            // InternalPerspectiveDsl.g:18815:1: ( ( 'finally' ) )
-            // InternalPerspectiveDsl.g:18816:1: ( 'finally' )
+            // InternalPerspectiveDsl.g:18863:1: ( ( 'finally' ) )
+            // InternalPerspectiveDsl.g:18864:1: ( 'finally' )
             {
-            // InternalPerspectiveDsl.g:18816:1: ( 'finally' )
-            // InternalPerspectiveDsl.g:18817:2: 'finally'
+            // InternalPerspectiveDsl.g:18864:1: ( 'finally' )
+            // InternalPerspectiveDsl.g:18865:2: 'finally'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
@@ -61616,14 +61801,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
-    // InternalPerspectiveDsl.g:18826:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18874: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 {
-            // InternalPerspectiveDsl.g:18830:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:18831:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:18878:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:18879:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
@@ -61649,23 +61834,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:18837:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:18885: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 {
-            // InternalPerspectiveDsl.g:18841:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:18842:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:18889:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:18890:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:18842:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:18843:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:18890:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:18891:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:18844:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:18844:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+            // InternalPerspectiveDsl.g:18892:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:18892:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
@@ -61700,14 +61885,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0"
-    // InternalPerspectiveDsl.g:18853:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:18901: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 {
-            // InternalPerspectiveDsl.g:18857:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
-            // InternalPerspectiveDsl.g:18858:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
+            // InternalPerspectiveDsl.g:18905:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
+            // InternalPerspectiveDsl.g:18906:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
             {
             pushFollow(FOLLOW_62);
             rule__XSynchronizedExpression__Group__0__Impl();
@@ -61738,23 +61923,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18865:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:18913: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 {
-            // InternalPerspectiveDsl.g:18869:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:18870:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:18917:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:18918:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:18870:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:18871:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:18918:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:18919:2: ( rule__XSynchronizedExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:18872:2: ( rule__XSynchronizedExpression__Group_0__0 )
-            // InternalPerspectiveDsl.g:18872:3: rule__XSynchronizedExpression__Group_0__0
+            // InternalPerspectiveDsl.g:18920:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:18920:3: rule__XSynchronizedExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0();
@@ -61789,14 +61974,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1"
-    // InternalPerspectiveDsl.g:18880:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:18928: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 {
-            // InternalPerspectiveDsl.g:18884:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
-            // InternalPerspectiveDsl.g:18885:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
+            // InternalPerspectiveDsl.g:18932:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
+            // InternalPerspectiveDsl.g:18933:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
             {
             pushFollow(FOLLOW_107);
             rule__XSynchronizedExpression__Group__1__Impl();
@@ -61827,23 +62012,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18892:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:18940:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
     public final void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18896:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:18897:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18944:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:18945:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:18897:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
-            // InternalPerspectiveDsl.g:18898:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalPerspectiveDsl.g:18945:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18946:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:18899:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
-            // InternalPerspectiveDsl.g:18899:3: rule__XSynchronizedExpression__ParamAssignment_1
+            // InternalPerspectiveDsl.g:18947:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalPerspectiveDsl.g:18947:3: rule__XSynchronizedExpression__ParamAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ParamAssignment_1();
@@ -61878,14 +62063,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2"
-    // InternalPerspectiveDsl.g:18907:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:18955: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 {
-            // InternalPerspectiveDsl.g:18911:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
-            // InternalPerspectiveDsl.g:18912:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
+            // InternalPerspectiveDsl.g:18959:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
+            // InternalPerspectiveDsl.g:18960:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
             {
             pushFollow(FOLLOW_62);
             rule__XSynchronizedExpression__Group__2__Impl();
@@ -61916,17 +62101,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18919:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:18967:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18923:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:18924:1: ( ')' )
+            // InternalPerspectiveDsl.g:18971:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:18972:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:18924:1: ( ')' )
-            // InternalPerspectiveDsl.g:18925:2: ')'
+            // InternalPerspectiveDsl.g:18972:1: ( ')' )
+            // InternalPerspectiveDsl.g:18973:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
@@ -61957,14 +62142,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3"
-    // InternalPerspectiveDsl.g:18934:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:18982:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
     public final void rule__XSynchronizedExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18938:1: ( rule__XSynchronizedExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:18939:2: rule__XSynchronizedExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:18986:1: ( rule__XSynchronizedExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:18987:2: rule__XSynchronizedExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__3__Impl();
@@ -61990,23 +62175,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:18945:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:18993:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
     public final void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18949:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:18950:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:18997:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:18998:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:18950:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
-            // InternalPerspectiveDsl.g:18951:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:18998:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:18999:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:18952:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
-            // InternalPerspectiveDsl.g:18952:3: rule__XSynchronizedExpression__ExpressionAssignment_3
+            // InternalPerspectiveDsl.g:19000:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:19000:3: rule__XSynchronizedExpression__ExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ExpressionAssignment_3();
@@ -62041,14 +62226,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
-    // InternalPerspectiveDsl.g:18961:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:19009: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 {
-            // InternalPerspectiveDsl.g:18965:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:18966:2: rule__XSynchronizedExpression__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:19013:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:19014:2: rule__XSynchronizedExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0__Impl();
@@ -62074,23 +62259,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:18972:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:19020: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 {
-            // InternalPerspectiveDsl.g:18976:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:18977:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:19024:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:19025:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:18977:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:18978:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:19025:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:19026:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:18979:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:18979:3: rule__XSynchronizedExpression__Group_0_0__0
+            // InternalPerspectiveDsl.g:19027:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:19027:3: rule__XSynchronizedExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__0();
@@ -62125,14 +62310,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
-    // InternalPerspectiveDsl.g:18988:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:19036: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 {
-            // InternalPerspectiveDsl.g:18992:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:18993:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
+            // InternalPerspectiveDsl.g:19040:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:19041:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
             {
             pushFollow(FOLLOW_138);
             rule__XSynchronizedExpression__Group_0_0__0__Impl();
@@ -62163,23 +62348,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:19000:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:19048:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19004:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:19005:1: ( () )
+            // InternalPerspectiveDsl.g:19052:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:19053:1: ( () )
             {
-            // InternalPerspectiveDsl.g:19005:1: ( () )
-            // InternalPerspectiveDsl.g:19006:2: ()
+            // InternalPerspectiveDsl.g:19053:1: ( () )
+            // InternalPerspectiveDsl.g:19054:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:19007:2: ()
-            // InternalPerspectiveDsl.g:19007:3: 
+            // InternalPerspectiveDsl.g:19055:2: ()
+            // InternalPerspectiveDsl.g:19055:3: 
             {
             }
 
@@ -62204,14 +62389,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
-    // InternalPerspectiveDsl.g:19015:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
+    // InternalPerspectiveDsl.g:19063: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 {
-            // InternalPerspectiveDsl.g:19019:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
-            // InternalPerspectiveDsl.g:19020:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
+            // InternalPerspectiveDsl.g:19067:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
+            // InternalPerspectiveDsl.g:19068:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
             {
             pushFollow(FOLLOW_58);
             rule__XSynchronizedExpression__Group_0_0__1__Impl();
@@ -62242,17 +62427,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:19027:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
+    // InternalPerspectiveDsl.g:19075: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 {
-            // InternalPerspectiveDsl.g:19031:1: ( ( 'synchronized' ) )
-            // InternalPerspectiveDsl.g:19032:1: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:19079:1: ( ( 'synchronized' ) )
+            // InternalPerspectiveDsl.g:19080:1: ( 'synchronized' )
             {
-            // InternalPerspectiveDsl.g:19032:1: ( 'synchronized' )
-            // InternalPerspectiveDsl.g:19033:2: 'synchronized'
+            // InternalPerspectiveDsl.g:19080:1: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:19081:2: 'synchronized'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
@@ -62283,14 +62468,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
-    // InternalPerspectiveDsl.g:19042:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:19090: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 {
-            // InternalPerspectiveDsl.g:19046:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:19047:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
+            // InternalPerspectiveDsl.g:19094:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:19095:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__2__Impl();
@@ -62316,17 +62501,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:19053:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:19101:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19057:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:19058:1: ( '(' )
+            // InternalPerspectiveDsl.g:19105:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:19106:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:19058:1: ( '(' )
-            // InternalPerspectiveDsl.g:19059:2: '('
+            // InternalPerspectiveDsl.g:19106:1: ( '(' )
+            // InternalPerspectiveDsl.g:19107:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
@@ -62357,14 +62542,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0"
-    // InternalPerspectiveDsl.g:19069:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+    // InternalPerspectiveDsl.g:19117: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 {
-            // InternalPerspectiveDsl.g:19073:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
-            // InternalPerspectiveDsl.g:19074:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+            // InternalPerspectiveDsl.g:19121:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+            // InternalPerspectiveDsl.g:19122:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
             {
             pushFollow(FOLLOW_58);
             rule__XCatchClause__Group__0__Impl();
@@ -62395,23 +62580,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19081:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+    // InternalPerspectiveDsl.g:19129:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
     public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19085:1: ( ( ( 'catch' ) ) )
-            // InternalPerspectiveDsl.g:19086:1: ( ( 'catch' ) )
+            // InternalPerspectiveDsl.g:19133:1: ( ( ( 'catch' ) ) )
+            // InternalPerspectiveDsl.g:19134:1: ( ( 'catch' ) )
             {
-            // InternalPerspectiveDsl.g:19086:1: ( ( 'catch' ) )
-            // InternalPerspectiveDsl.g:19087:2: ( 'catch' )
+            // InternalPerspectiveDsl.g:19134:1: ( ( 'catch' ) )
+            // InternalPerspectiveDsl.g:19135:2: ( 'catch' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
             }
-            // InternalPerspectiveDsl.g:19088:2: ( 'catch' )
-            // InternalPerspectiveDsl.g:19088:3: 'catch'
+            // InternalPerspectiveDsl.g:19136:2: ( 'catch' )
+            // InternalPerspectiveDsl.g:19136:3: 'catch'
             {
             match(input,123,FOLLOW_2); if (state.failed) return ;
 
@@ -62442,14 +62627,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1"
-    // InternalPerspectiveDsl.g:19096:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+    // InternalPerspectiveDsl.g:19144: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 {
-            // InternalPerspectiveDsl.g:19100:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
-            // InternalPerspectiveDsl.g:19101:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+            // InternalPerspectiveDsl.g:19148:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+            // InternalPerspectiveDsl.g:19149:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
             {
             pushFollow(FOLLOW_79);
             rule__XCatchClause__Group__1__Impl();
@@ -62480,17 +62665,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19108:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:19156:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
     public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19112:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:19113:1: ( '(' )
+            // InternalPerspectiveDsl.g:19160:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:19161:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:19113:1: ( '(' )
-            // InternalPerspectiveDsl.g:19114:2: '('
+            // InternalPerspectiveDsl.g:19161:1: ( '(' )
+            // InternalPerspectiveDsl.g:19162:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
@@ -62521,14 +62706,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2"
-    // InternalPerspectiveDsl.g:19123:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+    // InternalPerspectiveDsl.g:19171: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 {
-            // InternalPerspectiveDsl.g:19127:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
-            // InternalPerspectiveDsl.g:19128:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+            // InternalPerspectiveDsl.g:19175:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+            // InternalPerspectiveDsl.g:19176:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
             {
             pushFollow(FOLLOW_107);
             rule__XCatchClause__Group__2__Impl();
@@ -62559,23 +62744,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2__Impl"
-    // InternalPerspectiveDsl.g:19135:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:19183:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
     public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19139:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:19140:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalPerspectiveDsl.g:19187:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:19188:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:19140:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
-            // InternalPerspectiveDsl.g:19141:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalPerspectiveDsl.g:19188:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalPerspectiveDsl.g:19189:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:19142:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
-            // InternalPerspectiveDsl.g:19142:3: rule__XCatchClause__DeclaredParamAssignment_2
+            // InternalPerspectiveDsl.g:19190:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalPerspectiveDsl.g:19190:3: rule__XCatchClause__DeclaredParamAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__DeclaredParamAssignment_2();
@@ -62610,14 +62795,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3"
-    // InternalPerspectiveDsl.g:19150:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+    // InternalPerspectiveDsl.g:19198: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 {
-            // InternalPerspectiveDsl.g:19154:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
-            // InternalPerspectiveDsl.g:19155:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+            // InternalPerspectiveDsl.g:19202:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+            // InternalPerspectiveDsl.g:19203:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
             {
             pushFollow(FOLLOW_62);
             rule__XCatchClause__Group__3__Impl();
@@ -62648,17 +62833,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3__Impl"
-    // InternalPerspectiveDsl.g:19162:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:19210:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
     public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19166:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:19167:1: ( ')' )
+            // InternalPerspectiveDsl.g:19214:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:19215:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:19167:1: ( ')' )
-            // InternalPerspectiveDsl.g:19168:2: ')'
+            // InternalPerspectiveDsl.g:19215:1: ( ')' )
+            // InternalPerspectiveDsl.g:19216:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
@@ -62689,14 +62874,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4"
-    // InternalPerspectiveDsl.g:19177:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:19225:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
     public final void rule__XCatchClause__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19181:1: ( rule__XCatchClause__Group__4__Impl )
-            // InternalPerspectiveDsl.g:19182:2: rule__XCatchClause__Group__4__Impl
+            // InternalPerspectiveDsl.g:19229:1: ( rule__XCatchClause__Group__4__Impl )
+            // InternalPerspectiveDsl.g:19230:2: rule__XCatchClause__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__4__Impl();
@@ -62722,23 +62907,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4__Impl"
-    // InternalPerspectiveDsl.g:19188:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+    // InternalPerspectiveDsl.g:19236:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
     public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19192:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
-            // InternalPerspectiveDsl.g:19193:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalPerspectiveDsl.g:19240:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+            // InternalPerspectiveDsl.g:19241:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
             {
-            // InternalPerspectiveDsl.g:19193:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
-            // InternalPerspectiveDsl.g:19194:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalPerspectiveDsl.g:19241:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalPerspectiveDsl.g:19242:2: ( rule__XCatchClause__ExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:19195:2: ( rule__XCatchClause__ExpressionAssignment_4 )
-            // InternalPerspectiveDsl.g:19195:3: rule__XCatchClause__ExpressionAssignment_4
+            // InternalPerspectiveDsl.g:19243:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalPerspectiveDsl.g:19243:3: rule__XCatchClause__ExpressionAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__ExpressionAssignment_4();
@@ -62773,14 +62958,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalPerspectiveDsl.g:19204:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalPerspectiveDsl.g:19252: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 {
-            // InternalPerspectiveDsl.g:19208:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalPerspectiveDsl.g:19209:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalPerspectiveDsl.g:19256:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalPerspectiveDsl.g:19257:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
             pushFollow(FOLLOW_139);
             rule__QualifiedName__Group__0__Impl();
@@ -62811,17 +62996,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19216:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:19264:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19220:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:19221:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:19268:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:19269:1: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:19221:1: ( ruleValidID )
-            // InternalPerspectiveDsl.g:19222:2: ruleValidID
+            // InternalPerspectiveDsl.g:19269:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:19270:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
@@ -62856,14 +63041,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalPerspectiveDsl.g:19231:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19279:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19235:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalPerspectiveDsl.g:19236:2: rule__QualifiedName__Group__1__Impl
+            // InternalPerspectiveDsl.g:19283:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19284:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -62889,35 +63074,35 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19242:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:19290: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 {
-            // InternalPerspectiveDsl.g:19246:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:19247:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:19294:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:19295:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:19247:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:19248:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalPerspectiveDsl.g:19295:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:19296:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:19249:2: ( rule__QualifiedName__Group_1__0 )*
-            loop132:
+            // InternalPerspectiveDsl.g:19297:2: ( rule__QualifiedName__Group_1__0 )*
+            loop133:
             do {
-                int alt132=2;
-                int LA132_0 = input.LA(1);
+                int alt133=2;
+                int LA133_0 = input.LA(1);
 
-                if ( (LA132_0==43) ) {
-                    int LA132_2 = input.LA(2);
+                if ( (LA133_0==43) ) {
+                    int LA133_2 = input.LA(2);
 
-                    if ( (LA132_2==RULE_ID) ) {
-                        int LA132_3 = input.LA(3);
+                    if ( (LA133_2==RULE_ID) ) {
+                        int LA133_3 = input.LA(3);
 
-                        if ( (synpred191_InternalPerspectiveDsl()) ) {
-                            alt132=1;
+                        if ( (synpred192_InternalPerspectiveDsl()) ) {
+                            alt133=1;
                         }
 
 
@@ -62927,9 +63112,9 @@
                 }
 
 
-                switch (alt132) {
+                switch (alt133) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19249:3: rule__QualifiedName__Group_1__0
+            	    // InternalPerspectiveDsl.g:19297:3: rule__QualifiedName__Group_1__0
             	    {
             	    pushFollow(FOLLOW_140);
             	    rule__QualifiedName__Group_1__0();
@@ -62941,7 +63126,7 @@
             	    break;
 
             	default :
-            	    break loop132;
+            	    break loop133;
                 }
             } while (true);
 
@@ -62970,14 +63155,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalPerspectiveDsl.g:19258:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalPerspectiveDsl.g:19306: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 {
-            // InternalPerspectiveDsl.g:19262:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalPerspectiveDsl.g:19263:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalPerspectiveDsl.g:19310:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalPerspectiveDsl.g:19311:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_7);
             rule__QualifiedName__Group_1__0__Impl();
@@ -63008,23 +63193,23 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:19270:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+    // InternalPerspectiveDsl.g:19318:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19274:1: ( ( ( '.' ) ) )
-            // InternalPerspectiveDsl.g:19275:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:19322:1: ( ( ( '.' ) ) )
+            // InternalPerspectiveDsl.g:19323:1: ( ( '.' ) )
             {
-            // InternalPerspectiveDsl.g:19275:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:19276:2: ( '.' )
+            // InternalPerspectiveDsl.g:19323:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:19324:2: ( '.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19277:2: ( '.' )
-            // InternalPerspectiveDsl.g:19277:3: '.'
+            // InternalPerspectiveDsl.g:19325:2: ( '.' )
+            // InternalPerspectiveDsl.g:19325:3: '.'
             {
             match(input,43,FOLLOW_2); if (state.failed) return ;
 
@@ -63055,14 +63240,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalPerspectiveDsl.g:19285:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:19333: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 {
-            // InternalPerspectiveDsl.g:19289:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:19290:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:19337:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:19338:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -63088,17 +63273,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:19296:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:19344:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19300:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:19301:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:19348:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:19349:1: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:19301:1: ( ruleValidID )
-            // InternalPerspectiveDsl.g:19302:2: ruleValidID
+            // InternalPerspectiveDsl.g:19349:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:19350:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
@@ -63133,14 +63318,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0"
-    // InternalPerspectiveDsl.g:19312:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+    // InternalPerspectiveDsl.g:19360: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 {
-            // InternalPerspectiveDsl.g:19316:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
-            // InternalPerspectiveDsl.g:19317:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+            // InternalPerspectiveDsl.g:19364:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+            // InternalPerspectiveDsl.g:19365:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
             {
             pushFollow(FOLLOW_139);
             rule__Number__Group_1__0__Impl();
@@ -63171,23 +63356,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:19324:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:19372: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 {
-            // InternalPerspectiveDsl.g:19328:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
-            // InternalPerspectiveDsl.g:19329:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalPerspectiveDsl.g:19376:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+            // InternalPerspectiveDsl.g:19377:1: ( ( rule__Number__Alternatives_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:19329:1: ( ( rule__Number__Alternatives_1_0 ) )
-            // InternalPerspectiveDsl.g:19330:2: ( rule__Number__Alternatives_1_0 )
+            // InternalPerspectiveDsl.g:19377:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalPerspectiveDsl.g:19378:2: ( rule__Number__Alternatives_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19331:2: ( rule__Number__Alternatives_1_0 )
-            // InternalPerspectiveDsl.g:19331:3: rule__Number__Alternatives_1_0
+            // InternalPerspectiveDsl.g:19379:2: ( rule__Number__Alternatives_1_0 )
+            // InternalPerspectiveDsl.g:19379:3: rule__Number__Alternatives_1_0
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_0();
@@ -63222,14 +63407,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1"
-    // InternalPerspectiveDsl.g:19339:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:19387: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 {
-            // InternalPerspectiveDsl.g:19343:1: ( rule__Number__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:19344:2: rule__Number__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:19391:1: ( rule__Number__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:19392:2: rule__Number__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1__1__Impl();
@@ -63255,35 +63440,35 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:19350:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:19398: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 {
-            // InternalPerspectiveDsl.g:19354:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:19355:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:19402:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:19403:1: ( ( rule__Number__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:19355:1: ( ( rule__Number__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:19356:2: ( rule__Number__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:19403:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:19404:2: ( rule__Number__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19357:2: ( rule__Number__Group_1_1__0 )?
-            int alt133=2;
-            int LA133_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:19405:2: ( rule__Number__Group_1_1__0 )?
+            int alt134=2;
+            int LA134_0 = input.LA(1);
 
-            if ( (LA133_0==43) ) {
-                int LA133_1 = input.LA(2);
+            if ( (LA134_0==43) ) {
+                int LA134_1 = input.LA(2);
 
-                if ( ((LA133_1>=RULE_INT && LA133_1<=RULE_DECIMAL)) ) {
-                    alt133=1;
+                if ( ((LA134_1>=RULE_INT && LA134_1<=RULE_DECIMAL)) ) {
+                    alt134=1;
                 }
             }
-            switch (alt133) {
+            switch (alt134) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:19357:3: rule__Number__Group_1_1__0
+                    // InternalPerspectiveDsl.g:19405:3: rule__Number__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1_1__0();
@@ -63321,14 +63506,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0"
-    // InternalPerspectiveDsl.g:19366:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:19414: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 {
-            // InternalPerspectiveDsl.g:19370:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:19371:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+            // InternalPerspectiveDsl.g:19418:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:19419:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
             {
             pushFollow(FOLLOW_141);
             rule__Number__Group_1_1__0__Impl();
@@ -63359,17 +63544,17 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:19378:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:19426:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
     public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19382:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:19383:1: ( '.' )
+            // InternalPerspectiveDsl.g:19430:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:19431:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:19383:1: ( '.' )
-            // InternalPerspectiveDsl.g:19384:2: '.'
+            // InternalPerspectiveDsl.g:19431:1: ( '.' )
+            // InternalPerspectiveDsl.g:19432:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
@@ -63400,14 +63585,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1"
-    // InternalPerspectiveDsl.g:19393:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:19441: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 {
-            // InternalPerspectiveDsl.g:19397:1: ( rule__Number__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:19398:2: rule__Number__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:19445:1: ( rule__Number__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:19446:2: rule__Number__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1_1__1__Impl();
@@ -63433,23 +63618,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:19404:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:19452: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 {
-            // InternalPerspectiveDsl.g:19408:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:19409:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalPerspectiveDsl.g:19456:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:19457:1: ( ( rule__Number__Alternatives_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:19409:1: ( ( rule__Number__Alternatives_1_1_1 ) )
-            // InternalPerspectiveDsl.g:19410:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalPerspectiveDsl.g:19457:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalPerspectiveDsl.g:19458:2: ( rule__Number__Alternatives_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19411:2: ( rule__Number__Alternatives_1_1_1 )
-            // InternalPerspectiveDsl.g:19411:3: rule__Number__Alternatives_1_1_1
+            // InternalPerspectiveDsl.g:19459:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalPerspectiveDsl.g:19459:3: rule__Number__Alternatives_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_1_1();
@@ -63484,14 +63669,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0"
-    // InternalPerspectiveDsl.g:19420:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+    // InternalPerspectiveDsl.g:19468: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 {
-            // InternalPerspectiveDsl.g:19424:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
-            // InternalPerspectiveDsl.g:19425:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+            // InternalPerspectiveDsl.g:19472:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+            // InternalPerspectiveDsl.g:19473:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
             {
             pushFollow(FOLLOW_66);
             rule__JvmTypeReference__Group_0__0__Impl();
@@ -63522,17 +63707,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:19432:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+    // InternalPerspectiveDsl.g:19480:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
     public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19436:1: ( ( ruleJvmParameterizedTypeReference ) )
-            // InternalPerspectiveDsl.g:19437:1: ( ruleJvmParameterizedTypeReference )
+            // InternalPerspectiveDsl.g:19484:1: ( ( ruleJvmParameterizedTypeReference ) )
+            // InternalPerspectiveDsl.g:19485:1: ( ruleJvmParameterizedTypeReference )
             {
-            // InternalPerspectiveDsl.g:19437:1: ( ruleJvmParameterizedTypeReference )
-            // InternalPerspectiveDsl.g:19438:2: ruleJvmParameterizedTypeReference
+            // InternalPerspectiveDsl.g:19485:1: ( ruleJvmParameterizedTypeReference )
+            // InternalPerspectiveDsl.g:19486:2: ruleJvmParameterizedTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
@@ -63567,14 +63752,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1"
-    // InternalPerspectiveDsl.g:19447:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+    // InternalPerspectiveDsl.g:19495: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 {
-            // InternalPerspectiveDsl.g:19451:1: ( rule__JvmTypeReference__Group_0__1__Impl )
-            // InternalPerspectiveDsl.g:19452:2: rule__JvmTypeReference__Group_0__1__Impl
+            // InternalPerspectiveDsl.g:19499:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+            // InternalPerspectiveDsl.g:19500:2: rule__JvmTypeReference__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0__1__Impl();
@@ -63600,35 +63785,35 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:19458:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:19506: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 {
-            // InternalPerspectiveDsl.g:19462:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
-            // InternalPerspectiveDsl.g:19463:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalPerspectiveDsl.g:19510:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+            // InternalPerspectiveDsl.g:19511:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:19463:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
-            // InternalPerspectiveDsl.g:19464:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            // InternalPerspectiveDsl.g:19511:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalPerspectiveDsl.g:19512:2: ( rule__JvmTypeReference__Group_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:19465:2: ( rule__JvmTypeReference__Group_0_1__0 )*
-            loop134:
+            // InternalPerspectiveDsl.g:19513:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            loop135:
             do {
-                int alt134=2;
-                int LA134_0 = input.LA(1);
+                int alt135=2;
+                int LA135_0 = input.LA(1);
 
-                if ( (LA134_0==103) ) {
-                    int LA134_2 = input.LA(2);
+                if ( (LA135_0==103) ) {
+                    int LA135_2 = input.LA(2);
 
-                    if ( (LA134_2==101) ) {
-                        int LA134_3 = input.LA(3);
+                    if ( (LA135_2==101) ) {
+                        int LA135_3 = input.LA(3);
 
-                        if ( (synpred193_InternalPerspectiveDsl()) ) {
-                            alt134=1;
+                        if ( (synpred194_InternalPerspectiveDsl()) ) {
+                            alt135=1;
                         }
 
 
@@ -63638,9 +63823,9 @@
                 }
 
 
-                switch (alt134) {
+                switch (alt135) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19465:3: rule__JvmTypeReference__Group_0_1__0
+            	    // InternalPerspectiveDsl.g:19513:3: rule__JvmTypeReference__Group_0_1__0
             	    {
             	    pushFollow(FOLLOW_131);
             	    rule__JvmTypeReference__Group_0_1__0();
@@ -63652,7 +63837,7 @@
             	    break;
 
             	default :
-            	    break loop134;
+            	    break loop135;
                 }
             } while (true);
 
@@ -63681,14 +63866,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
-    // InternalPerspectiveDsl.g:19474:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+    // InternalPerspectiveDsl.g:19522: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 {
-            // InternalPerspectiveDsl.g:19478:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
-            // InternalPerspectiveDsl.g:19479:2: rule__JvmTypeReference__Group_0_1__0__Impl
+            // InternalPerspectiveDsl.g:19526:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+            // InternalPerspectiveDsl.g:19527:2: rule__JvmTypeReference__Group_0_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1__0__Impl();
@@ -63714,23 +63899,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:19485:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:19533: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 {
-            // InternalPerspectiveDsl.g:19489:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:19490:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalPerspectiveDsl.g:19537:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:19538:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:19490:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
-            // InternalPerspectiveDsl.g:19491:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalPerspectiveDsl.g:19538:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalPerspectiveDsl.g:19539:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19492:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
-            // InternalPerspectiveDsl.g:19492:3: rule__JvmTypeReference__Group_0_1_0__0
+            // InternalPerspectiveDsl.g:19540:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalPerspectiveDsl.g:19540:3: rule__JvmTypeReference__Group_0_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__0();
@@ -63765,14 +63950,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
-    // InternalPerspectiveDsl.g:19501:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
+    // InternalPerspectiveDsl.g:19549: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 {
-            // InternalPerspectiveDsl.g:19505:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
-            // InternalPerspectiveDsl.g:19506:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+            // InternalPerspectiveDsl.g:19553:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+            // InternalPerspectiveDsl.g:19554:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
             {
             pushFollow(FOLLOW_66);
             rule__JvmTypeReference__Group_0_1_0__0__Impl();
@@ -63803,23 +63988,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:19513:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:19561: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 {
-            // InternalPerspectiveDsl.g:19517:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:19518:1: ( () )
+            // InternalPerspectiveDsl.g:19565:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:19566:1: ( () )
             {
-            // InternalPerspectiveDsl.g:19518:1: ( () )
-            // InternalPerspectiveDsl.g:19519:2: ()
+            // InternalPerspectiveDsl.g:19566:1: ( () )
+            // InternalPerspectiveDsl.g:19567:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:19520:2: ()
-            // InternalPerspectiveDsl.g:19520:3: 
+            // InternalPerspectiveDsl.g:19568:2: ()
+            // InternalPerspectiveDsl.g:19568:3: 
             {
             }
 
@@ -63844,14 +64029,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
-    // InternalPerspectiveDsl.g:19528:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:19576: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 {
-            // InternalPerspectiveDsl.g:19532:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:19533:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+            // InternalPerspectiveDsl.g:19580:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:19581:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__1__Impl();
@@ -63877,17 +64062,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:19539:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+    // InternalPerspectiveDsl.g:19587: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 {
-            // InternalPerspectiveDsl.g:19543:1: ( ( ruleArrayBrackets ) )
-            // InternalPerspectiveDsl.g:19544:1: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:19591:1: ( ( ruleArrayBrackets ) )
+            // InternalPerspectiveDsl.g:19592:1: ( ruleArrayBrackets )
             {
-            // InternalPerspectiveDsl.g:19544:1: ( ruleArrayBrackets )
-            // InternalPerspectiveDsl.g:19545:2: ruleArrayBrackets
+            // InternalPerspectiveDsl.g:19592:1: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:19593:2: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
@@ -63922,14 +64107,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0"
-    // InternalPerspectiveDsl.g:19555:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+    // InternalPerspectiveDsl.g:19603: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 {
-            // InternalPerspectiveDsl.g:19559:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
-            // InternalPerspectiveDsl.g:19560:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+            // InternalPerspectiveDsl.g:19607:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+            // InternalPerspectiveDsl.g:19608:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
             {
             pushFollow(FOLLOW_104);
             rule__ArrayBrackets__Group__0__Impl();
@@ -63960,17 +64145,17 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19567:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:19615:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
     public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19571:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:19572:1: ( '[' )
+            // InternalPerspectiveDsl.g:19619:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:19620:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:19572:1: ( '[' )
-            // InternalPerspectiveDsl.g:19573:2: '['
+            // InternalPerspectiveDsl.g:19620:1: ( '[' )
+            // InternalPerspectiveDsl.g:19621:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
@@ -64001,14 +64186,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1"
-    // InternalPerspectiveDsl.g:19582:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19630:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
     public final void rule__ArrayBrackets__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19586:1: ( rule__ArrayBrackets__Group__1__Impl )
-            // InternalPerspectiveDsl.g:19587:2: rule__ArrayBrackets__Group__1__Impl
+            // InternalPerspectiveDsl.g:19634:1: ( rule__ArrayBrackets__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19635:2: rule__ArrayBrackets__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__1__Impl();
@@ -64034,17 +64219,17 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19593:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:19641:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
     public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19597:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:19598:1: ( ']' )
+            // InternalPerspectiveDsl.g:19645:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:19646:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:19598:1: ( ']' )
-            // InternalPerspectiveDsl.g:19599:2: ']'
+            // InternalPerspectiveDsl.g:19646:1: ( ']' )
+            // InternalPerspectiveDsl.g:19647:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
@@ -64075,14 +64260,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0"
-    // InternalPerspectiveDsl.g:19609:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+    // InternalPerspectiveDsl.g:19657: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 {
-            // InternalPerspectiveDsl.g:19613:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
-            // InternalPerspectiveDsl.g:19614:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+            // InternalPerspectiveDsl.g:19661:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+            // InternalPerspectiveDsl.g:19662:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
             {
             pushFollow(FOLLOW_79);
             rule__XFunctionTypeRef__Group__0__Impl();
@@ -64113,31 +64298,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19621:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+    // InternalPerspectiveDsl.g:19669: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 {
-            // InternalPerspectiveDsl.g:19625:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
-            // InternalPerspectiveDsl.g:19626:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalPerspectiveDsl.g:19673:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+            // InternalPerspectiveDsl.g:19674:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
             {
-            // InternalPerspectiveDsl.g:19626:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
-            // InternalPerspectiveDsl.g:19627:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            // InternalPerspectiveDsl.g:19674:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalPerspectiveDsl.g:19675:2: ( rule__XFunctionTypeRef__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:19628:2: ( rule__XFunctionTypeRef__Group_0__0 )?
-            int alt135=2;
-            int LA135_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:19676:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            int alt136=2;
+            int LA136_0 = input.LA(1);
 
-            if ( (LA135_0==98) ) {
-                alt135=1;
+            if ( (LA136_0==98) ) {
+                alt136=1;
             }
-            switch (alt135) {
+            switch (alt136) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:19628:3: rule__XFunctionTypeRef__Group_0__0
+                    // InternalPerspectiveDsl.g:19676:3: rule__XFunctionTypeRef__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0__0();
@@ -64175,14 +64360,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1"
-    // InternalPerspectiveDsl.g:19636:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+    // InternalPerspectiveDsl.g:19684: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 {
-            // InternalPerspectiveDsl.g:19640:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
-            // InternalPerspectiveDsl.g:19641:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+            // InternalPerspectiveDsl.g:19688:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+            // InternalPerspectiveDsl.g:19689:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
             {
             pushFollow(FOLLOW_79);
             rule__XFunctionTypeRef__Group__1__Impl();
@@ -64213,17 +64398,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19648:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+    // InternalPerspectiveDsl.g:19696:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
     public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19652:1: ( ( '=>' ) )
-            // InternalPerspectiveDsl.g:19653:1: ( '=>' )
+            // InternalPerspectiveDsl.g:19700:1: ( ( '=>' ) )
+            // InternalPerspectiveDsl.g:19701:1: ( '=>' )
             {
-            // InternalPerspectiveDsl.g:19653:1: ( '=>' )
-            // InternalPerspectiveDsl.g:19654:2: '=>'
+            // InternalPerspectiveDsl.g:19701:1: ( '=>' )
+            // InternalPerspectiveDsl.g:19702:2: '=>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
@@ -64254,14 +64439,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2"
-    // InternalPerspectiveDsl.g:19663:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:19711:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
     public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19667:1: ( rule__XFunctionTypeRef__Group__2__Impl )
-            // InternalPerspectiveDsl.g:19668:2: rule__XFunctionTypeRef__Group__2__Impl
+            // InternalPerspectiveDsl.g:19715:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+            // InternalPerspectiveDsl.g:19716:2: rule__XFunctionTypeRef__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__2__Impl();
@@ -64287,23 +64472,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
-    // InternalPerspectiveDsl.g:19674:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:19722:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
     public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19678:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:19679:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:19726:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:19727:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:19679:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
-            // InternalPerspectiveDsl.g:19680:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:19727:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:19728:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:19681:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
-            // InternalPerspectiveDsl.g:19681:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+            // InternalPerspectiveDsl.g:19729:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:19729:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ReturnTypeAssignment_2();
@@ -64338,14 +64523,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
-    // InternalPerspectiveDsl.g:19690:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+    // InternalPerspectiveDsl.g:19738: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 {
-            // InternalPerspectiveDsl.g:19694:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
-            // InternalPerspectiveDsl.g:19695:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+            // InternalPerspectiveDsl.g:19742:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+            // InternalPerspectiveDsl.g:19743:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
             {
             pushFollow(FOLLOW_142);
             rule__XFunctionTypeRef__Group_0__0__Impl();
@@ -64376,17 +64561,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:19702:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:19750:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
     public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19706:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:19707:1: ( '(' )
+            // InternalPerspectiveDsl.g:19754:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:19755:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:19707:1: ( '(' )
-            // InternalPerspectiveDsl.g:19708:2: '('
+            // InternalPerspectiveDsl.g:19755:1: ( '(' )
+            // InternalPerspectiveDsl.g:19756:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
@@ -64417,14 +64602,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
-    // InternalPerspectiveDsl.g:19717:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+    // InternalPerspectiveDsl.g:19765: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 {
-            // InternalPerspectiveDsl.g:19721:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
-            // InternalPerspectiveDsl.g:19722:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+            // InternalPerspectiveDsl.g:19769:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+            // InternalPerspectiveDsl.g:19770:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
             {
             pushFollow(FOLLOW_142);
             rule__XFunctionTypeRef__Group_0__1__Impl();
@@ -64455,31 +64640,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:19729:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:19777: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 {
-            // InternalPerspectiveDsl.g:19733:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:19734:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:19781:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:19782:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:19734:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:19735:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:19782:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:19783:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:19736:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
-            int alt136=2;
-            int LA136_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:19784:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            int alt137=2;
+            int LA137_0 = input.LA(1);
 
-            if ( (LA136_0==RULE_ID||LA136_0==31||LA136_0==98) ) {
-                alt136=1;
+            if ( (LA137_0==RULE_ID||LA137_0==31||LA137_0==98) ) {
+                alt137=1;
             }
-            switch (alt136) {
+            switch (alt137) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:19736:3: rule__XFunctionTypeRef__Group_0_1__0
+                    // InternalPerspectiveDsl.g:19784:3: rule__XFunctionTypeRef__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0_1__0();
@@ -64517,14 +64702,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
-    // InternalPerspectiveDsl.g:19744:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:19792: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 {
-            // InternalPerspectiveDsl.g:19748:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:19749:2: rule__XFunctionTypeRef__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:19796:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:19797:2: rule__XFunctionTypeRef__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0__2__Impl();
@@ -64550,17 +64735,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:19755:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:19803:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
     public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19759:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:19760:1: ( ')' )
+            // InternalPerspectiveDsl.g:19807:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:19808:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:19760:1: ( ')' )
-            // InternalPerspectiveDsl.g:19761:2: ')'
+            // InternalPerspectiveDsl.g:19808:1: ( ')' )
+            // InternalPerspectiveDsl.g:19809:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
@@ -64591,14 +64776,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
-    // InternalPerspectiveDsl.g:19771:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:19819: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 {
-            // InternalPerspectiveDsl.g:19775:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:19776:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+            // InternalPerspectiveDsl.g:19823:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:19824:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XFunctionTypeRef__Group_0_1__0__Impl();
@@ -64629,23 +64814,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:19783:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:19831: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 {
-            // InternalPerspectiveDsl.g:19787:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:19788:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:19835:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:19836:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:19788:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:19789:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:19836:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:19837:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19790:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:19790:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+            // InternalPerspectiveDsl.g:19838:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:19838:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
@@ -64680,14 +64865,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
-    // InternalPerspectiveDsl.g:19798:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:19846: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 {
-            // InternalPerspectiveDsl.g:19802:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:19803:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:19850:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:19851:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1__1__Impl();
@@ -64713,35 +64898,35 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:19809:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:19857: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 {
-            // InternalPerspectiveDsl.g:19813:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:19814:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:19861:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:19862:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:19814:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:19815:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:19862:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:19863:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19816:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
-            loop137:
+            // InternalPerspectiveDsl.g:19864:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            loop138:
             do {
-                int alt137=2;
-                int LA137_0 = input.LA(1);
+                int alt138=2;
+                int LA138_0 = input.LA(1);
 
-                if ( (LA137_0==100) ) {
-                    alt137=1;
+                if ( (LA138_0==100) ) {
+                    alt138=1;
                 }
 
 
-                switch (alt137) {
+                switch (alt138) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19816:3: rule__XFunctionTypeRef__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:19864:3: rule__XFunctionTypeRef__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XFunctionTypeRef__Group_0_1_1__0();
@@ -64753,7 +64938,7 @@
             	    break;
 
             	default :
-            	    break loop137;
+            	    break loop138;
                 }
             } while (true);
 
@@ -64782,14 +64967,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:19825:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
+    // InternalPerspectiveDsl.g:19873: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 {
-            // InternalPerspectiveDsl.g:19829:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:19830:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:19877:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:19878:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
             {
             pushFollow(FOLLOW_79);
             rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
@@ -64820,17 +65005,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:19837:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:19885: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 {
-            // InternalPerspectiveDsl.g:19841:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:19842:1: ( ',' )
+            // InternalPerspectiveDsl.g:19889:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:19890:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:19842:1: ( ',' )
-            // InternalPerspectiveDsl.g:19843:2: ','
+            // InternalPerspectiveDsl.g:19890:1: ( ',' )
+            // InternalPerspectiveDsl.g:19891:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
@@ -64861,14 +65046,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:19852:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:19900: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 {
-            // InternalPerspectiveDsl.g:19856:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:19857:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:19904:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:19905:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
@@ -64894,23 +65079,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:19863:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:19911: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 {
-            // InternalPerspectiveDsl.g:19867:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:19868:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:19915:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:19916:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:19868:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:19869:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:19916:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:19917:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19870:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:19870:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:19918:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:19918:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
@@ -64945,14 +65130,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
-    // InternalPerspectiveDsl.g:19879:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+    // InternalPerspectiveDsl.g:19927: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 {
-            // InternalPerspectiveDsl.g:19883:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
-            // InternalPerspectiveDsl.g:19884:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+            // InternalPerspectiveDsl.g:19931:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+            // InternalPerspectiveDsl.g:19932:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
             {
             pushFollow(FOLLOW_69);
             rule__JvmParameterizedTypeReference__Group__0__Impl();
@@ -64983,23 +65168,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19891:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+    // InternalPerspectiveDsl.g:19939:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19895:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
-            // InternalPerspectiveDsl.g:19896:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:19943:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+            // InternalPerspectiveDsl.g:19944:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
             {
-            // InternalPerspectiveDsl.g:19896:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
-            // InternalPerspectiveDsl.g:19897:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalPerspectiveDsl.g:19944:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:19945:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:19898:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
-            // InternalPerspectiveDsl.g:19898:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
+            // InternalPerspectiveDsl.g:19946:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalPerspectiveDsl.g:19946:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_0();
@@ -65034,14 +65219,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
-    // InternalPerspectiveDsl.g:19906:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19954:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19910:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
-            // InternalPerspectiveDsl.g:19911:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+            // InternalPerspectiveDsl.g:19958:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19959:2: rule__JvmParameterizedTypeReference__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__1__Impl();
@@ -65067,27 +65252,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19917:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:19965: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 {
-            // InternalPerspectiveDsl.g:19921:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:19922:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:19969:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:19970:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:19922:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:19923:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            // InternalPerspectiveDsl.g:19970:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:19971:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:19924:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
-            int alt138=2;
-            alt138 = dfa138.predict(input);
-            switch (alt138) {
+            // InternalPerspectiveDsl.g:19972:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            int alt139=2;
+            alt139 = dfa139.predict(input);
+            switch (alt139) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:19924:3: rule__JvmParameterizedTypeReference__Group_1__0
+                    // InternalPerspectiveDsl.g:19972:3: rule__JvmParameterizedTypeReference__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1__0();
@@ -65125,14 +65310,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
-    // InternalPerspectiveDsl.g:19933:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+    // InternalPerspectiveDsl.g:19981: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 {
-            // InternalPerspectiveDsl.g:19937:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
-            // InternalPerspectiveDsl.g:19938:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+            // InternalPerspectiveDsl.g:19985:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+            // InternalPerspectiveDsl.g:19986:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
             {
             pushFollow(FOLLOW_99);
             rule__JvmParameterizedTypeReference__Group_1__0__Impl();
@@ -65163,23 +65348,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:19945:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+    // InternalPerspectiveDsl.g:19993:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19949:1: ( ( ( '<' ) ) )
-            // InternalPerspectiveDsl.g:19950:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:19997:1: ( ( ( '<' ) ) )
+            // InternalPerspectiveDsl.g:19998:1: ( ( '<' ) )
             {
-            // InternalPerspectiveDsl.g:19950:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:19951:2: ( '<' )
+            // InternalPerspectiveDsl.g:19998:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:19999:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19952:2: ( '<' )
-            // InternalPerspectiveDsl.g:19952:3: '<'
+            // InternalPerspectiveDsl.g:20000:2: ( '<' )
+            // InternalPerspectiveDsl.g:20000:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -65210,14 +65395,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
-    // InternalPerspectiveDsl.g:19960:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+    // InternalPerspectiveDsl.g:20008: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 {
-            // InternalPerspectiveDsl.g:19964:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
-            // InternalPerspectiveDsl.g:19965:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+            // InternalPerspectiveDsl.g:20012:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+            // InternalPerspectiveDsl.g:20013:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
             {
             pushFollow(FOLLOW_100);
             rule__JvmParameterizedTypeReference__Group_1__1__Impl();
@@ -65248,23 +65433,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:19972:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:20020: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 {
-            // InternalPerspectiveDsl.g:19976:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:19977:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:20024:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:20025:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:19977:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:19978:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:20025:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:20026:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19979:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
-            // InternalPerspectiveDsl.g:19979:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+            // InternalPerspectiveDsl.g:20027:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:20027:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
@@ -65299,14 +65484,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
-    // InternalPerspectiveDsl.g:19987:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+    // InternalPerspectiveDsl.g:20035: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 {
-            // InternalPerspectiveDsl.g:19991:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
-            // InternalPerspectiveDsl.g:19992:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+            // InternalPerspectiveDsl.g:20039:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+            // InternalPerspectiveDsl.g:20040:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
             {
             pushFollow(FOLLOW_100);
             rule__JvmParameterizedTypeReference__Group_1__2__Impl();
@@ -65337,35 +65522,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
-    // InternalPerspectiveDsl.g:19999:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:20047: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 {
-            // InternalPerspectiveDsl.g:20003:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
-            // InternalPerspectiveDsl.g:20004:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:20051:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+            // InternalPerspectiveDsl.g:20052:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:20004:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
-            // InternalPerspectiveDsl.g:20005:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            // InternalPerspectiveDsl.g:20052:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:20053:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
             }
-            // InternalPerspectiveDsl.g:20006:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
-            loop139:
+            // InternalPerspectiveDsl.g:20054:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            loop140:
             do {
-                int alt139=2;
-                int LA139_0 = input.LA(1);
+                int alt140=2;
+                int LA140_0 = input.LA(1);
 
-                if ( (LA139_0==100) ) {
-                    alt139=1;
+                if ( (LA140_0==100) ) {
+                    alt140=1;
                 }
 
 
-                switch (alt139) {
+                switch (alt140) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:20006:3: rule__JvmParameterizedTypeReference__Group_1_2__0
+            	    // InternalPerspectiveDsl.g:20054:3: rule__JvmParameterizedTypeReference__Group_1_2__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__JvmParameterizedTypeReference__Group_1_2__0();
@@ -65377,7 +65562,7 @@
             	    break;
 
             	default :
-            	    break loop139;
+            	    break loop140;
                 }
             } while (true);
 
@@ -65406,14 +65591,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
-    // InternalPerspectiveDsl.g:20014:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
+    // InternalPerspectiveDsl.g:20062: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 {
-            // InternalPerspectiveDsl.g:20018:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
-            // InternalPerspectiveDsl.g:20019:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
+            // InternalPerspectiveDsl.g:20066:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
+            // InternalPerspectiveDsl.g:20067:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
             {
             pushFollow(FOLLOW_139);
             rule__JvmParameterizedTypeReference__Group_1__3__Impl();
@@ -65444,17 +65629,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
-    // InternalPerspectiveDsl.g:20026:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:20074:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20030:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:20031:1: ( '>' )
+            // InternalPerspectiveDsl.g:20078:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:20079:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:20031:1: ( '>' )
-            // InternalPerspectiveDsl.g:20032:2: '>'
+            // InternalPerspectiveDsl.g:20079:1: ( '>' )
+            // InternalPerspectiveDsl.g:20080:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
@@ -65485,14 +65670,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
-    // InternalPerspectiveDsl.g:20041:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
+    // InternalPerspectiveDsl.g:20089: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 {
-            // InternalPerspectiveDsl.g:20045:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
-            // InternalPerspectiveDsl.g:20046:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
+            // InternalPerspectiveDsl.g:20093:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
+            // InternalPerspectiveDsl.g:20094:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1__4__Impl();
@@ -65518,35 +65703,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
-    // InternalPerspectiveDsl.g:20052:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
+    // InternalPerspectiveDsl.g:20100: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 {
-            // InternalPerspectiveDsl.g:20056:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
-            // InternalPerspectiveDsl.g:20057:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalPerspectiveDsl.g:20104:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
+            // InternalPerspectiveDsl.g:20105:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
             {
-            // InternalPerspectiveDsl.g:20057:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
-            // InternalPerspectiveDsl.g:20058:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            // InternalPerspectiveDsl.g:20105:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalPerspectiveDsl.g:20106:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
             }
-            // InternalPerspectiveDsl.g:20059:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
-            loop140:
+            // InternalPerspectiveDsl.g:20107:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            loop141:
             do {
-                int alt140=2;
-                int LA140_0 = input.LA(1);
+                int alt141=2;
+                int LA141_0 = input.LA(1);
 
-                if ( (LA140_0==43) ) {
-                    int LA140_2 = input.LA(2);
+                if ( (LA141_0==43) ) {
+                    int LA141_2 = input.LA(2);
 
-                    if ( (LA140_2==RULE_ID) ) {
-                        int LA140_3 = input.LA(3);
+                    if ( (LA141_2==RULE_ID) ) {
+                        int LA141_3 = input.LA(3);
 
-                        if ( (synpred199_InternalPerspectiveDsl()) ) {
-                            alt140=1;
+                        if ( (synpred200_InternalPerspectiveDsl()) ) {
+                            alt141=1;
                         }
 
 
@@ -65556,9 +65741,9 @@
                 }
 
 
-                switch (alt140) {
+                switch (alt141) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:20059:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+            	    // InternalPerspectiveDsl.g:20107:3: rule__JvmParameterizedTypeReference__Group_1_4__0
             	    {
             	    pushFollow(FOLLOW_140);
             	    rule__JvmParameterizedTypeReference__Group_1_4__0();
@@ -65570,7 +65755,7 @@
             	    break;
 
             	default :
-            	    break loop140;
+            	    break loop141;
                 }
             } while (true);
 
@@ -65599,14 +65784,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
-    // InternalPerspectiveDsl.g:20068:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+    // InternalPerspectiveDsl.g:20116: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 {
-            // InternalPerspectiveDsl.g:20072:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
-            // InternalPerspectiveDsl.g:20073:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+            // InternalPerspectiveDsl.g:20120:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+            // InternalPerspectiveDsl.g:20121:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
             {
             pushFollow(FOLLOW_99);
             rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
@@ -65637,17 +65822,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
-    // InternalPerspectiveDsl.g:20080:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:20128:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20084:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:20085:1: ( ',' )
+            // InternalPerspectiveDsl.g:20132:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:20133:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:20085:1: ( ',' )
-            // InternalPerspectiveDsl.g:20086:2: ','
+            // InternalPerspectiveDsl.g:20133:1: ( ',' )
+            // InternalPerspectiveDsl.g:20134:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
@@ -65678,14 +65863,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
-    // InternalPerspectiveDsl.g:20095:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+    // InternalPerspectiveDsl.g:20143: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 {
-            // InternalPerspectiveDsl.g:20099:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
-            // InternalPerspectiveDsl.g:20100:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+            // InternalPerspectiveDsl.g:20147:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+            // InternalPerspectiveDsl.g:20148:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
@@ -65711,23 +65896,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
-    // InternalPerspectiveDsl.g:20106:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:20154: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 {
-            // InternalPerspectiveDsl.g:20110:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
-            // InternalPerspectiveDsl.g:20111:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:20158:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+            // InternalPerspectiveDsl.g:20159:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:20111:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
-            // InternalPerspectiveDsl.g:20112:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:20159:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:20160:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
             }
-            // InternalPerspectiveDsl.g:20113:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
-            // InternalPerspectiveDsl.g:20113:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+            // InternalPerspectiveDsl.g:20161:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:20161:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
@@ -65762,14 +65947,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
-    // InternalPerspectiveDsl.g:20122:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
+    // InternalPerspectiveDsl.g:20170: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 {
-            // InternalPerspectiveDsl.g:20126:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
-            // InternalPerspectiveDsl.g:20127:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
+            // InternalPerspectiveDsl.g:20174:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
+            // InternalPerspectiveDsl.g:20175:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
             {
             pushFollow(FOLLOW_7);
             rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();
@@ -65800,23 +65985,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
-    // InternalPerspectiveDsl.g:20134:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:20182: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 {
-            // InternalPerspectiveDsl.g:20138:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
-            // InternalPerspectiveDsl.g:20139:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalPerspectiveDsl.g:20186:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
+            // InternalPerspectiveDsl.g:20187:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:20139:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
-            // InternalPerspectiveDsl.g:20140:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalPerspectiveDsl.g:20187:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalPerspectiveDsl.g:20188:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
             }
-            // InternalPerspectiveDsl.g:20141:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
-            // InternalPerspectiveDsl.g:20141:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
+            // InternalPerspectiveDsl.g:20189:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalPerspectiveDsl.g:20189:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0();
@@ -65851,14 +66036,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
-    // InternalPerspectiveDsl.g:20149:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
+    // InternalPerspectiveDsl.g:20197: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 {
-            // InternalPerspectiveDsl.g:20153:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
-            // InternalPerspectiveDsl.g:20154:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
+            // InternalPerspectiveDsl.g:20201:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
+            // InternalPerspectiveDsl.g:20202:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
             {
             pushFollow(FOLLOW_69);
             rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();
@@ -65889,23 +66074,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
-    // InternalPerspectiveDsl.g:20161:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
+    // InternalPerspectiveDsl.g:20209: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 {
-            // InternalPerspectiveDsl.g:20165:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
-            // InternalPerspectiveDsl.g:20166:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalPerspectiveDsl.g:20213:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
+            // InternalPerspectiveDsl.g:20214:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
             {
-            // InternalPerspectiveDsl.g:20166:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
-            // InternalPerspectiveDsl.g:20167:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalPerspectiveDsl.g:20214:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalPerspectiveDsl.g:20215:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
             }
-            // InternalPerspectiveDsl.g:20168:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
-            // InternalPerspectiveDsl.g:20168:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+            // InternalPerspectiveDsl.g:20216:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalPerspectiveDsl.g:20216:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();
@@ -65940,14 +66125,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
-    // InternalPerspectiveDsl.g:20176:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
+    // InternalPerspectiveDsl.g:20224: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 {
-            // InternalPerspectiveDsl.g:20180:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
-            // InternalPerspectiveDsl.g:20181:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+            // InternalPerspectiveDsl.g:20228:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
+            // InternalPerspectiveDsl.g:20229:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();
@@ -65973,27 +66158,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
-    // InternalPerspectiveDsl.g:20187:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
+    // InternalPerspectiveDsl.g:20235: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 {
-            // InternalPerspectiveDsl.g:20191:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
-            // InternalPerspectiveDsl.g:20192:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalPerspectiveDsl.g:20239:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
+            // InternalPerspectiveDsl.g:20240:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
             {
-            // InternalPerspectiveDsl.g:20192:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
-            // InternalPerspectiveDsl.g:20193:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            // InternalPerspectiveDsl.g:20240:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalPerspectiveDsl.g:20241:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
             }
-            // InternalPerspectiveDsl.g:20194:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
-            int alt141=2;
-            alt141 = dfa141.predict(input);
-            switch (alt141) {
+            // InternalPerspectiveDsl.g:20242:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            int alt142=2;
+            alt142 = dfa142.predict(input);
+            switch (alt142) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:20194:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+                    // InternalPerspectiveDsl.g:20242:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -66031,14 +66216,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
-    // InternalPerspectiveDsl.g:20203:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
+    // InternalPerspectiveDsl.g:20251: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 {
-            // InternalPerspectiveDsl.g:20207:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
-            // InternalPerspectiveDsl.g:20208:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+            // InternalPerspectiveDsl.g:20255:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
+            // InternalPerspectiveDsl.g:20256:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();
@@ -66064,23 +66249,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
-    // InternalPerspectiveDsl.g:20214:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:20262: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 {
-            // InternalPerspectiveDsl.g:20218:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:20219:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalPerspectiveDsl.g:20266:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:20267:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:20219:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
-            // InternalPerspectiveDsl.g:20220:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalPerspectiveDsl.g:20267:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalPerspectiveDsl.g:20268:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
             }
-            // InternalPerspectiveDsl.g:20221:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
-            // InternalPerspectiveDsl.g:20221:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+            // InternalPerspectiveDsl.g:20269:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalPerspectiveDsl.g:20269:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();
@@ -66115,14 +66300,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
-    // InternalPerspectiveDsl.g:20230: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 ;
+    // InternalPerspectiveDsl.g:20278: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 {
-            // InternalPerspectiveDsl.g:20234:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
-            // InternalPerspectiveDsl.g:20235:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+            // InternalPerspectiveDsl.g:20282:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
+            // InternalPerspectiveDsl.g:20283:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
             {
             pushFollow(FOLLOW_139);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();
@@ -66153,23 +66338,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:20242:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:20290: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 {
-            // InternalPerspectiveDsl.g:20246:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:20247:1: ( () )
+            // InternalPerspectiveDsl.g:20294:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:20295:1: ( () )
             {
-            // InternalPerspectiveDsl.g:20247:1: ( () )
-            // InternalPerspectiveDsl.g:20248:2: ()
+            // InternalPerspectiveDsl.g:20295:1: ( () )
+            // InternalPerspectiveDsl.g:20296:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:20249:2: ()
-            // InternalPerspectiveDsl.g:20249:3: 
+            // InternalPerspectiveDsl.g:20297:2: ()
+            // InternalPerspectiveDsl.g:20297:3: 
             {
             }
 
@@ -66194,14 +66379,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
-    // InternalPerspectiveDsl.g:20257:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:20305: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 {
-            // InternalPerspectiveDsl.g:20261:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:20262:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+            // InternalPerspectiveDsl.g:20309:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:20310:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();
@@ -66227,17 +66412,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:20268:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:20316: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 {
-            // InternalPerspectiveDsl.g:20272:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:20273:1: ( '.' )
+            // InternalPerspectiveDsl.g:20320:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:20321:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:20273:1: ( '.' )
-            // InternalPerspectiveDsl.g:20274:2: '.'
+            // InternalPerspectiveDsl.g:20321:1: ( '.' )
+            // InternalPerspectiveDsl.g:20322:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
@@ -66268,14 +66453,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
-    // InternalPerspectiveDsl.g:20284:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
+    // InternalPerspectiveDsl.g:20332: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 {
-            // InternalPerspectiveDsl.g:20288:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
-            // InternalPerspectiveDsl.g:20289:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
+            // InternalPerspectiveDsl.g:20336:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
+            // InternalPerspectiveDsl.g:20337:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
             {
             pushFollow(FOLLOW_99);
             rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();
@@ -66306,23 +66491,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
-    // InternalPerspectiveDsl.g:20296:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
+    // InternalPerspectiveDsl.g:20344: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 {
-            // InternalPerspectiveDsl.g:20300:1: ( ( ( '<' ) ) )
-            // InternalPerspectiveDsl.g:20301:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:20348:1: ( ( ( '<' ) ) )
+            // InternalPerspectiveDsl.g:20349:1: ( ( '<' ) )
             {
-            // InternalPerspectiveDsl.g:20301:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:20302:2: ( '<' )
+            // InternalPerspectiveDsl.g:20349:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:20350:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
             }
-            // InternalPerspectiveDsl.g:20303:2: ( '<' )
-            // InternalPerspectiveDsl.g:20303:3: '<'
+            // InternalPerspectiveDsl.g:20351:2: ( '<' )
+            // InternalPerspectiveDsl.g:20351:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -66353,14 +66538,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
-    // InternalPerspectiveDsl.g:20311:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
+    // InternalPerspectiveDsl.g:20359: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 {
-            // InternalPerspectiveDsl.g:20315:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
-            // InternalPerspectiveDsl.g:20316:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
+            // InternalPerspectiveDsl.g:20363:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
+            // InternalPerspectiveDsl.g:20364:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
             {
             pushFollow(FOLLOW_100);
             rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();
@@ -66391,23 +66576,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
-    // InternalPerspectiveDsl.g:20323:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:20371: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 {
-            // InternalPerspectiveDsl.g:20327:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
-            // InternalPerspectiveDsl.g:20328:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalPerspectiveDsl.g:20375:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
+            // InternalPerspectiveDsl.g:20376:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:20328:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
-            // InternalPerspectiveDsl.g:20329:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalPerspectiveDsl.g:20376:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalPerspectiveDsl.g:20377:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
             }
-            // InternalPerspectiveDsl.g:20330:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
-            // InternalPerspectiveDsl.g:20330:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+            // InternalPerspectiveDsl.g:20378:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalPerspectiveDsl.g:20378:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();
@@ -66442,14 +66627,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
-    // InternalPerspectiveDsl.g:20338:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
+    // InternalPerspectiveDsl.g:20386: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 {
-            // InternalPerspectiveDsl.g:20342:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
-            // InternalPerspectiveDsl.g:20343:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
+            // InternalPerspectiveDsl.g:20390:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
+            // InternalPerspectiveDsl.g:20391:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
             {
             pushFollow(FOLLOW_100);
             rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();
@@ -66480,35 +66665,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
-    // InternalPerspectiveDsl.g:20350:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:20398: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 {
-            // InternalPerspectiveDsl.g:20354:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
-            // InternalPerspectiveDsl.g:20355:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalPerspectiveDsl.g:20402:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
+            // InternalPerspectiveDsl.g:20403:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:20355:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
-            // InternalPerspectiveDsl.g:20356:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            // InternalPerspectiveDsl.g:20403:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalPerspectiveDsl.g:20404:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
             }
-            // InternalPerspectiveDsl.g:20357:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
-            loop142:
+            // InternalPerspectiveDsl.g:20405:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            loop143:
             do {
-                int alt142=2;
-                int LA142_0 = input.LA(1);
+                int alt143=2;
+                int LA143_0 = input.LA(1);
 
-                if ( (LA142_0==100) ) {
-                    alt142=1;
+                if ( (LA143_0==100) ) {
+                    alt143=1;
                 }
 
 
-                switch (alt142) {
+                switch (alt143) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:20357:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+            	    // InternalPerspectiveDsl.g:20405:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();
@@ -66520,7 +66705,7 @@
             	    break;
 
             	default :
-            	    break loop142;
+            	    break loop143;
                 }
             } while (true);
 
@@ -66549,14 +66734,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
-    // InternalPerspectiveDsl.g:20365:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
+    // InternalPerspectiveDsl.g:20413: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 {
-            // InternalPerspectiveDsl.g:20369:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
-            // InternalPerspectiveDsl.g:20370:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+            // InternalPerspectiveDsl.g:20417:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
+            // InternalPerspectiveDsl.g:20418:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();
@@ -66582,17 +66767,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
-    // InternalPerspectiveDsl.g:20376:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:20424: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 {
-            // InternalPerspectiveDsl.g:20380:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:20381:1: ( '>' )
+            // InternalPerspectiveDsl.g:20428:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:20429:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:20381:1: ( '>' )
-            // InternalPerspectiveDsl.g:20382:2: '>'
+            // InternalPerspectiveDsl.g:20429:1: ( '>' )
+            // InternalPerspectiveDsl.g:20430:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
@@ -66623,14 +66808,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
-    // InternalPerspectiveDsl.g:20392: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 ;
+    // InternalPerspectiveDsl.g:20440: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 {
-            // InternalPerspectiveDsl.g:20396:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
-            // InternalPerspectiveDsl.g:20397:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+            // InternalPerspectiveDsl.g:20444:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
+            // InternalPerspectiveDsl.g:20445:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
             {
             pushFollow(FOLLOW_99);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();
@@ -66661,17 +66846,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
-    // InternalPerspectiveDsl.g:20404:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:20452: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 {
-            // InternalPerspectiveDsl.g:20408:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:20409:1: ( ',' )
+            // InternalPerspectiveDsl.g:20456:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:20457:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:20409:1: ( ',' )
-            // InternalPerspectiveDsl.g:20410:2: ','
+            // InternalPerspectiveDsl.g:20457:1: ( ',' )
+            // InternalPerspectiveDsl.g:20458:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
@@ -66702,14 +66887,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
-    // InternalPerspectiveDsl.g:20419:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
+    // InternalPerspectiveDsl.g:20467: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 {
-            // InternalPerspectiveDsl.g:20423:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
-            // InternalPerspectiveDsl.g:20424:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+            // InternalPerspectiveDsl.g:20471:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
+            // InternalPerspectiveDsl.g:20472:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();
@@ -66735,23 +66920,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
-    // InternalPerspectiveDsl.g:20430:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:20478: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 {
-            // InternalPerspectiveDsl.g:20434:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
-            // InternalPerspectiveDsl.g:20435:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalPerspectiveDsl.g:20482:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
+            // InternalPerspectiveDsl.g:20483:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:20435:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
-            // InternalPerspectiveDsl.g:20436:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalPerspectiveDsl.g:20483:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalPerspectiveDsl.g:20484:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
             }
-            // InternalPerspectiveDsl.g:20437:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
-            // InternalPerspectiveDsl.g:20437:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+            // InternalPerspectiveDsl.g:20485:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalPerspectiveDsl.g:20485:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();
@@ -66786,14 +66971,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
-    // InternalPerspectiveDsl.g:20446:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+    // InternalPerspectiveDsl.g:20494: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 {
-            // InternalPerspectiveDsl.g:20450:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
-            // InternalPerspectiveDsl.g:20451:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+            // InternalPerspectiveDsl.g:20498:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+            // InternalPerspectiveDsl.g:20499:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
             {
             pushFollow(FOLLOW_99);
             rule__JvmWildcardTypeReference__Group__0__Impl();
@@ -66824,23 +67009,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20458:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:20506:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
     public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20462:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:20463:1: ( () )
+            // InternalPerspectiveDsl.g:20510:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:20511:1: ( () )
             {
-            // InternalPerspectiveDsl.g:20463:1: ( () )
-            // InternalPerspectiveDsl.g:20464:2: ()
+            // InternalPerspectiveDsl.g:20511:1: ( () )
+            // InternalPerspectiveDsl.g:20512:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
             }
-            // InternalPerspectiveDsl.g:20465:2: ()
-            // InternalPerspectiveDsl.g:20465:3: 
+            // InternalPerspectiveDsl.g:20513:2: ()
+            // InternalPerspectiveDsl.g:20513:3: 
             {
             }
 
@@ -66865,14 +67050,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
-    // InternalPerspectiveDsl.g:20473:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+    // InternalPerspectiveDsl.g:20521: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 {
-            // InternalPerspectiveDsl.g:20477:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
-            // InternalPerspectiveDsl.g:20478:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+            // InternalPerspectiveDsl.g:20525:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+            // InternalPerspectiveDsl.g:20526:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
             {
             pushFollow(FOLLOW_143);
             rule__JvmWildcardTypeReference__Group__1__Impl();
@@ -66903,17 +67088,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20485:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+    // InternalPerspectiveDsl.g:20533:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
     public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20489:1: ( ( '?' ) )
-            // InternalPerspectiveDsl.g:20490:1: ( '?' )
+            // InternalPerspectiveDsl.g:20537:1: ( ( '?' ) )
+            // InternalPerspectiveDsl.g:20538:1: ( '?' )
             {
-            // InternalPerspectiveDsl.g:20490:1: ( '?' )
-            // InternalPerspectiveDsl.g:20491:2: '?'
+            // InternalPerspectiveDsl.g:20538:1: ( '?' )
+            // InternalPerspectiveDsl.g:20539:2: '?'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
@@ -66944,14 +67129,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
-    // InternalPerspectiveDsl.g:20500:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:20548:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
     public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20504:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
-            // InternalPerspectiveDsl.g:20505:2: rule__JvmWildcardTypeReference__Group__2__Impl
+            // InternalPerspectiveDsl.g:20552:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+            // InternalPerspectiveDsl.g:20553:2: rule__JvmWildcardTypeReference__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__2__Impl();
@@ -66977,31 +67162,31 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
-    // InternalPerspectiveDsl.g:20511:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+    // InternalPerspectiveDsl.g:20559:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
     public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20515:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
-            // InternalPerspectiveDsl.g:20516:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalPerspectiveDsl.g:20563:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+            // InternalPerspectiveDsl.g:20564:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
             {
-            // InternalPerspectiveDsl.g:20516:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
-            // InternalPerspectiveDsl.g:20517:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            // InternalPerspectiveDsl.g:20564:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalPerspectiveDsl.g:20565:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:20518:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
-            int alt143=2;
-            int LA143_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:20566:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            int alt144=2;
+            int LA144_0 = input.LA(1);
 
-            if ( (LA143_0==45||LA143_0==49) ) {
-                alt143=1;
+            if ( (LA144_0==45||LA144_0==49) ) {
+                alt144=1;
             }
-            switch (alt143) {
+            switch (alt144) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:20518:3: rule__JvmWildcardTypeReference__Alternatives_2
+                    // InternalPerspectiveDsl.g:20566:3: rule__JvmWildcardTypeReference__Alternatives_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Alternatives_2();
@@ -67039,14 +67224,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
-    // InternalPerspectiveDsl.g:20527:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
+    // InternalPerspectiveDsl.g:20575: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 {
-            // InternalPerspectiveDsl.g:20531:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
-            // InternalPerspectiveDsl.g:20532:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
+            // InternalPerspectiveDsl.g:20579:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:20580:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
             {
             pushFollow(FOLLOW_144);
             rule__JvmWildcardTypeReference__Group_2_0__0__Impl();
@@ -67077,23 +67262,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:20539:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:20587: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 {
-            // InternalPerspectiveDsl.g:20543:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
-            // InternalPerspectiveDsl.g:20544:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:20591:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
+            // InternalPerspectiveDsl.g:20592:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:20544:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
-            // InternalPerspectiveDsl.g:20545:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:20592:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:20593:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:20546:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
-            // InternalPerspectiveDsl.g:20546:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+            // InternalPerspectiveDsl.g:20594:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:20594:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();
@@ -67128,14 +67313,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
-    // InternalPerspectiveDsl.g:20554:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
+    // InternalPerspectiveDsl.g:20602: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 {
-            // InternalPerspectiveDsl.g:20558:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
-            // InternalPerspectiveDsl.g:20559:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+            // InternalPerspectiveDsl.g:20606:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
+            // InternalPerspectiveDsl.g:20607:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_0__1__Impl();
@@ -67161,35 +67346,35 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
-    // InternalPerspectiveDsl.g:20565:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
+    // InternalPerspectiveDsl.g:20613: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 {
-            // InternalPerspectiveDsl.g:20569:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
-            // InternalPerspectiveDsl.g:20570:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalPerspectiveDsl.g:20617:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
+            // InternalPerspectiveDsl.g:20618:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
             {
-            // InternalPerspectiveDsl.g:20570:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
-            // InternalPerspectiveDsl.g:20571:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            // InternalPerspectiveDsl.g:20618:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalPerspectiveDsl.g:20619:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
             }
-            // InternalPerspectiveDsl.g:20572:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
-            loop144:
+            // InternalPerspectiveDsl.g:20620:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            loop145:
             do {
-                int alt144=2;
-                int LA144_0 = input.LA(1);
+                int alt145=2;
+                int LA145_0 = input.LA(1);
 
-                if ( (LA144_0==125) ) {
-                    alt144=1;
+                if ( (LA145_0==125) ) {
+                    alt145=1;
                 }
 
 
-                switch (alt144) {
+                switch (alt145) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:20572:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+            	    // InternalPerspectiveDsl.g:20620:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
             	    {
             	    pushFollow(FOLLOW_145);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();
@@ -67201,7 +67386,7 @@
             	    break;
 
             	default :
-            	    break loop144;
+            	    break loop145;
                 }
             } while (true);
 
@@ -67230,14 +67415,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
-    // InternalPerspectiveDsl.g:20581:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
+    // InternalPerspectiveDsl.g:20629: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 {
-            // InternalPerspectiveDsl.g:20585:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
-            // InternalPerspectiveDsl.g:20586:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
+            // InternalPerspectiveDsl.g:20633:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
+            // InternalPerspectiveDsl.g:20634:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
             {
             pushFollow(FOLLOW_144);
             rule__JvmWildcardTypeReference__Group_2_1__0__Impl();
@@ -67268,23 +67453,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
-    // InternalPerspectiveDsl.g:20593:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:20641: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 {
-            // InternalPerspectiveDsl.g:20597:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
-            // InternalPerspectiveDsl.g:20598:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalPerspectiveDsl.g:20645:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
+            // InternalPerspectiveDsl.g:20646:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:20598:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
-            // InternalPerspectiveDsl.g:20599:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalPerspectiveDsl.g:20646:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalPerspectiveDsl.g:20647:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:20600:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
-            // InternalPerspectiveDsl.g:20600:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+            // InternalPerspectiveDsl.g:20648:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalPerspectiveDsl.g:20648:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();
@@ -67319,14 +67504,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
-    // InternalPerspectiveDsl.g:20608:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
+    // InternalPerspectiveDsl.g:20656: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 {
-            // InternalPerspectiveDsl.g:20612:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
-            // InternalPerspectiveDsl.g:20613:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+            // InternalPerspectiveDsl.g:20660:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
+            // InternalPerspectiveDsl.g:20661:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_1__1__Impl();
@@ -67352,35 +67537,35 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
-    // InternalPerspectiveDsl.g:20619:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
+    // InternalPerspectiveDsl.g:20667: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 {
-            // InternalPerspectiveDsl.g:20623:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
-            // InternalPerspectiveDsl.g:20624:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalPerspectiveDsl.g:20671:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
+            // InternalPerspectiveDsl.g:20672:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
             {
-            // InternalPerspectiveDsl.g:20624:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
-            // InternalPerspectiveDsl.g:20625:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            // InternalPerspectiveDsl.g:20672:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalPerspectiveDsl.g:20673:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
             }
-            // InternalPerspectiveDsl.g:20626:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
-            loop145:
+            // InternalPerspectiveDsl.g:20674:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            loop146:
             do {
-                int alt145=2;
-                int LA145_0 = input.LA(1);
+                int alt146=2;
+                int LA146_0 = input.LA(1);
 
-                if ( (LA145_0==125) ) {
-                    alt145=1;
+                if ( (LA146_0==125) ) {
+                    alt146=1;
                 }
 
 
-                switch (alt145) {
+                switch (alt146) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:20626:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+            	    // InternalPerspectiveDsl.g:20674:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
             	    {
             	    pushFollow(FOLLOW_145);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();
@@ -67392,7 +67577,7 @@
             	    break;
 
             	default :
-            	    break loop145;
+            	    break loop146;
                 }
             } while (true);
 
@@ -67421,14 +67606,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0"
-    // InternalPerspectiveDsl.g:20635:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+    // InternalPerspectiveDsl.g:20683: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 {
-            // InternalPerspectiveDsl.g:20639:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
-            // InternalPerspectiveDsl.g:20640:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+            // InternalPerspectiveDsl.g:20687:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+            // InternalPerspectiveDsl.g:20688:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
             {
             pushFollow(FOLLOW_79);
             rule__JvmUpperBound__Group__0__Impl();
@@ -67459,17 +67644,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20647:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+    // InternalPerspectiveDsl.g:20695:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
     public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20651:1: ( ( 'extends' ) )
-            // InternalPerspectiveDsl.g:20652:1: ( 'extends' )
+            // InternalPerspectiveDsl.g:20699:1: ( ( 'extends' ) )
+            // InternalPerspectiveDsl.g:20700:1: ( 'extends' )
             {
-            // InternalPerspectiveDsl.g:20652:1: ( 'extends' )
-            // InternalPerspectiveDsl.g:20653:2: 'extends'
+            // InternalPerspectiveDsl.g:20700:1: ( 'extends' )
+            // InternalPerspectiveDsl.g:20701:2: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
@@ -67500,14 +67685,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1"
-    // InternalPerspectiveDsl.g:20662:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:20710:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
     public final void rule__JvmUpperBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20666:1: ( rule__JvmUpperBound__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20667:2: rule__JvmUpperBound__Group__1__Impl
+            // InternalPerspectiveDsl.g:20714:1: ( rule__JvmUpperBound__Group__1__Impl )
+            // InternalPerspectiveDsl.g:20715:2: rule__JvmUpperBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__1__Impl();
@@ -67533,23 +67718,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20673:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:20721:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20677:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:20678:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20725:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:20726:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:20678:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:20679:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20726:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20727:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:20680:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:20680:3: rule__JvmUpperBound__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:20728:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20728:3: rule__JvmUpperBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__TypeReferenceAssignment_1();
@@ -67584,14 +67769,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
-    // InternalPerspectiveDsl.g:20689:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+    // InternalPerspectiveDsl.g:20737: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 {
-            // InternalPerspectiveDsl.g:20693:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
-            // InternalPerspectiveDsl.g:20694:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+            // InternalPerspectiveDsl.g:20741:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+            // InternalPerspectiveDsl.g:20742:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
             {
             pushFollow(FOLLOW_79);
             rule__JvmUpperBoundAnded__Group__0__Impl();
@@ -67622,17 +67807,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20701:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalPerspectiveDsl.g:20749:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20705:1: ( ( '&' ) )
-            // InternalPerspectiveDsl.g:20706:1: ( '&' )
+            // InternalPerspectiveDsl.g:20753:1: ( ( '&' ) )
+            // InternalPerspectiveDsl.g:20754:1: ( '&' )
             {
-            // InternalPerspectiveDsl.g:20706:1: ( '&' )
-            // InternalPerspectiveDsl.g:20707:2: '&'
+            // InternalPerspectiveDsl.g:20754:1: ( '&' )
+            // InternalPerspectiveDsl.g:20755:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
@@ -67663,14 +67848,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
-    // InternalPerspectiveDsl.g:20716:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:20764:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
     public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20720:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20721:2: rule__JvmUpperBoundAnded__Group__1__Impl
+            // InternalPerspectiveDsl.g:20768:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+            // InternalPerspectiveDsl.g:20769:2: rule__JvmUpperBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__1__Impl();
@@ -67696,23 +67881,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20727:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:20775:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20731:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:20732:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20779:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:20780:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:20732:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:20733:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20780:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20781:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:20734:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:20734:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:20782:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20782:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
@@ -67747,14 +67932,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0"
-    // InternalPerspectiveDsl.g:20743:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+    // InternalPerspectiveDsl.g:20791: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 {
-            // InternalPerspectiveDsl.g:20747:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
-            // InternalPerspectiveDsl.g:20748:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+            // InternalPerspectiveDsl.g:20795:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+            // InternalPerspectiveDsl.g:20796:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
             {
             pushFollow(FOLLOW_79);
             rule__JvmLowerBound__Group__0__Impl();
@@ -67785,17 +67970,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20755:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+    // InternalPerspectiveDsl.g:20803:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
     public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20759:1: ( ( 'super' ) )
-            // InternalPerspectiveDsl.g:20760:1: ( 'super' )
+            // InternalPerspectiveDsl.g:20807:1: ( ( 'super' ) )
+            // InternalPerspectiveDsl.g:20808:1: ( 'super' )
             {
-            // InternalPerspectiveDsl.g:20760:1: ( 'super' )
-            // InternalPerspectiveDsl.g:20761:2: 'super'
+            // InternalPerspectiveDsl.g:20808:1: ( 'super' )
+            // InternalPerspectiveDsl.g:20809:2: 'super'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
@@ -67826,14 +68011,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1"
-    // InternalPerspectiveDsl.g:20770:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:20818:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
     public final void rule__JvmLowerBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20774:1: ( rule__JvmLowerBound__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20775:2: rule__JvmLowerBound__Group__1__Impl
+            // InternalPerspectiveDsl.g:20822:1: ( rule__JvmLowerBound__Group__1__Impl )
+            // InternalPerspectiveDsl.g:20823:2: rule__JvmLowerBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__1__Impl();
@@ -67859,23 +68044,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20781:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:20829:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20785:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:20786:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20833:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:20834:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:20786:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:20787:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20834:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20835:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:20788:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:20788:3: rule__JvmLowerBound__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:20836:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20836:3: rule__JvmLowerBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__TypeReferenceAssignment_1();
@@ -67910,14 +68095,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
-    // InternalPerspectiveDsl.g:20797:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
+    // InternalPerspectiveDsl.g:20845: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 {
-            // InternalPerspectiveDsl.g:20801:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
-            // InternalPerspectiveDsl.g:20802:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
+            // InternalPerspectiveDsl.g:20849:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
+            // InternalPerspectiveDsl.g:20850:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
             {
             pushFollow(FOLLOW_79);
             rule__JvmLowerBoundAnded__Group__0__Impl();
@@ -67948,17 +68133,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20809:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalPerspectiveDsl.g:20857:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20813:1: ( ( '&' ) )
-            // InternalPerspectiveDsl.g:20814:1: ( '&' )
+            // InternalPerspectiveDsl.g:20861:1: ( ( '&' ) )
+            // InternalPerspectiveDsl.g:20862:1: ( '&' )
             {
-            // InternalPerspectiveDsl.g:20814:1: ( '&' )
-            // InternalPerspectiveDsl.g:20815:2: '&'
+            // InternalPerspectiveDsl.g:20862:1: ( '&' )
+            // InternalPerspectiveDsl.g:20863:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
@@ -67989,14 +68174,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
-    // InternalPerspectiveDsl.g:20824:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:20872:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
     public final void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20828:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20829:2: rule__JvmLowerBoundAnded__Group__1__Impl
+            // InternalPerspectiveDsl.g:20876:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
+            // InternalPerspectiveDsl.g:20877:2: rule__JvmLowerBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__1__Impl();
@@ -68022,23 +68207,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20835:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:20883:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20839:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:20840:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20887:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:20888:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:20840:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:20841:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20888:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:20889:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:20842:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:20842:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:20890:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:20890:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();
@@ -68073,14 +68258,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
-    // InternalPerspectiveDsl.g:20851:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+    // InternalPerspectiveDsl.g:20899: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 {
-            // InternalPerspectiveDsl.g:20855:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
-            // InternalPerspectiveDsl.g:20856:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+            // InternalPerspectiveDsl.g:20903:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+            // InternalPerspectiveDsl.g:20904:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
             {
             pushFollow(FOLLOW_139);
             rule__QualifiedNameWithWildcard__Group__0__Impl();
@@ -68111,17 +68296,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20863:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+    // InternalPerspectiveDsl.g:20911:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
     public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20867:1: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:20868:1: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:20915:1: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:20916:1: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:20868:1: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:20869:2: ruleQualifiedName
+            // InternalPerspectiveDsl.g:20916:1: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:20917:2: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
@@ -68156,14 +68341,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
-    // InternalPerspectiveDsl.g:20878:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+    // InternalPerspectiveDsl.g:20926: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 {
-            // InternalPerspectiveDsl.g:20882:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
-            // InternalPerspectiveDsl.g:20883:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+            // InternalPerspectiveDsl.g:20930:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+            // InternalPerspectiveDsl.g:20931:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
             {
             pushFollow(FOLLOW_146);
             rule__QualifiedNameWithWildcard__Group__1__Impl();
@@ -68194,17 +68379,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20890:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:20938:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20894:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:20895:1: ( '.' )
+            // InternalPerspectiveDsl.g:20942:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:20943:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:20895:1: ( '.' )
-            // InternalPerspectiveDsl.g:20896:2: '.'
+            // InternalPerspectiveDsl.g:20943:1: ( '.' )
+            // InternalPerspectiveDsl.g:20944:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
@@ -68235,14 +68420,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
-    // InternalPerspectiveDsl.g:20905:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:20953:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
     public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20909:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
-            // InternalPerspectiveDsl.g:20910:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+            // InternalPerspectiveDsl.g:20957:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+            // InternalPerspectiveDsl.g:20958:2: rule__QualifiedNameWithWildcard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__2__Impl();
@@ -68268,17 +68453,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
-    // InternalPerspectiveDsl.g:20916:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+    // InternalPerspectiveDsl.g:20964:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20920:1: ( ( '*' ) )
-            // InternalPerspectiveDsl.g:20921:1: ( '*' )
+            // InternalPerspectiveDsl.g:20968:1: ( ( '*' ) )
+            // InternalPerspectiveDsl.g:20969:1: ( '*' )
             {
-            // InternalPerspectiveDsl.g:20921:1: ( '*' )
-            // InternalPerspectiveDsl.g:20922:2: '*'
+            // InternalPerspectiveDsl.g:20969:1: ( '*' )
+            // InternalPerspectiveDsl.g:20970:2: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
@@ -68309,14 +68494,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
-    // InternalPerspectiveDsl.g:20932:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
+    // InternalPerspectiveDsl.g:20980: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 {
-            // InternalPerspectiveDsl.g:20936:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
-            // InternalPerspectiveDsl.g:20937:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
+            // InternalPerspectiveDsl.g:20984:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
+            // InternalPerspectiveDsl.g:20985:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
             {
             pushFollow(FOLLOW_139);
             rule__QualifiedNameInStaticImport__Group__0__Impl();
@@ -68347,17 +68532,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20944:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:20992:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20948:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:20949:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:20996:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:20997:1: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:20949:1: ( ruleValidID )
-            // InternalPerspectiveDsl.g:20950:2: ruleValidID
+            // InternalPerspectiveDsl.g:20997:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:20998:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
@@ -68392,14 +68577,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
-    // InternalPerspectiveDsl.g:20959:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:21007:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
     public final void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20963:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20964:2: rule__QualifiedNameInStaticImport__Group__1__Impl
+            // InternalPerspectiveDsl.g:21011:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
+            // InternalPerspectiveDsl.g:21012:2: rule__QualifiedNameInStaticImport__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameInStaticImport__Group__1__Impl();
@@ -68425,17 +68610,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20970:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:21018:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20974:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:20975:1: ( '.' )
+            // InternalPerspectiveDsl.g:21022:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:21023:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:20975:1: ( '.' )
-            // InternalPerspectiveDsl.g:20976:2: '.'
+            // InternalPerspectiveDsl.g:21023:1: ( '.' )
+            // InternalPerspectiveDsl.g:21024:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
@@ -68466,30 +68651,30 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5"
-    // InternalPerspectiveDsl.g:20986:1: rule__Perspective__UnorderedGroup_5 : ( rule__Perspective__UnorderedGroup_5__0 )? ;
+    // InternalPerspectiveDsl.g:21034:1: rule__Perspective__UnorderedGroup_5 : ( rule__Perspective__UnorderedGroup_5__0 )? ;
     public final void rule__Perspective__UnorderedGroup_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5());
         	
         try {
-            // InternalPerspectiveDsl.g:20991:1: ( ( rule__Perspective__UnorderedGroup_5__0 )? )
-            // InternalPerspectiveDsl.g:20992:2: ( rule__Perspective__UnorderedGroup_5__0 )?
+            // InternalPerspectiveDsl.g:21039:1: ( ( rule__Perspective__UnorderedGroup_5__0 )? )
+            // InternalPerspectiveDsl.g:21040:2: ( rule__Perspective__UnorderedGroup_5__0 )?
             {
-            // InternalPerspectiveDsl.g:20992:2: ( rule__Perspective__UnorderedGroup_5__0 )?
-            int alt146=2;
-            int LA146_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21040:2: ( rule__Perspective__UnorderedGroup_5__0 )?
+            int alt147=2;
+            int LA147_0 = input.LA(1);
 
-            if ( LA146_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
-                alt146=1;
+            if ( LA147_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
+                alt147=1;
             }
-            else if ( LA146_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
-                alt146=1;
+            else if ( LA147_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
+                alt147=1;
             }
-            else if ( LA146_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
-                alt146=1;
+            else if ( LA147_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
+                alt147=1;
             }
-            switch (alt146) {
+            switch (alt147) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__Perspective__UnorderedGroup_5__0
                     {
@@ -68524,60 +68709,60 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__Impl"
-    // InternalPerspectiveDsl.g:21000:1: rule__Perspective__UnorderedGroup_5__Impl : ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:21048:1: rule__Perspective__UnorderedGroup_5__Impl : ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) ;
     public final void rule__Perspective__UnorderedGroup_5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:21005:1: ( ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:21006:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:21053:1: ( ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:21054:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:21006:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
-            int alt147=3;
-            int LA147_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21054:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
+            int alt148=3;
+            int LA148_0 = input.LA(1);
 
-            if ( LA147_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
-                alt147=1;
+            if ( LA148_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
+                alt148=1;
             }
-            else if ( LA147_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
-                alt147=2;
+            else if ( LA148_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
+                alt148=2;
             }
-            else if ( LA147_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
-                alt147=3;
+            else if ( LA148_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
+                alt148=3;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 147, 0, input);
+                    new NoViableAltException("", 148, 0, input);
 
                 throw nvae;
             }
-            switch (alt147) {
+            switch (alt148) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:21007:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21055:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21007:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21008:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21055:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21056:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Perspective__UnorderedGroup_5__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:21008:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:21009:5: ( ( rule__Perspective__Group_5_0__0 ) )
+                    // InternalPerspectiveDsl.g:21056:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21057:5: ( ( rule__Perspective__Group_5_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21015:5: ( ( rule__Perspective__Group_5_0__0 ) )
-                    // InternalPerspectiveDsl.g:21016:6: ( rule__Perspective__Group_5_0__0 )
+                    // InternalPerspectiveDsl.g:21063:5: ( ( rule__Perspective__Group_5_0__0 ) )
+                    // InternalPerspectiveDsl.g:21064:6: ( rule__Perspective__Group_5_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveAccess().getGroup_5_0()); 
                     }
-                    // InternalPerspectiveDsl.g:21017:6: ( rule__Perspective__Group_5_0__0 )
-                    // InternalPerspectiveDsl.g:21017:7: rule__Perspective__Group_5_0__0
+                    // InternalPerspectiveDsl.g:21065:6: ( rule__Perspective__Group_5_0__0 )
+                    // InternalPerspectiveDsl.g:21065:7: rule__Perspective__Group_5_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_5_0__0();
@@ -68603,28 +68788,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:21022:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21070:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21022:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21023:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21070:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21071:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Perspective__UnorderedGroup_5__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:21023:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:21024:5: ( ( rule__Perspective__Group_5_1__0 ) )
+                    // InternalPerspectiveDsl.g:21071:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21072:5: ( ( rule__Perspective__Group_5_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21030:5: ( ( rule__Perspective__Group_5_1__0 ) )
-                    // InternalPerspectiveDsl.g:21031:6: ( rule__Perspective__Group_5_1__0 )
+                    // InternalPerspectiveDsl.g:21078:5: ( ( rule__Perspective__Group_5_1__0 ) )
+                    // InternalPerspectiveDsl.g:21079:6: ( rule__Perspective__Group_5_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveAccess().getGroup_5_1()); 
                     }
-                    // InternalPerspectiveDsl.g:21032:6: ( rule__Perspective__Group_5_1__0 )
-                    // InternalPerspectiveDsl.g:21032:7: rule__Perspective__Group_5_1__0
+                    // InternalPerspectiveDsl.g:21080:6: ( rule__Perspective__Group_5_1__0 )
+                    // InternalPerspectiveDsl.g:21080:7: rule__Perspective__Group_5_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_5_1__0();
@@ -68650,28 +68835,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:21037:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21085:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21037:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21038:4: {...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21085:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21086:4: {...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Perspective__UnorderedGroup_5__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:21038:107: ( ( ( rule__Perspective__Group_5_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:21039:5: ( ( rule__Perspective__Group_5_2__0 ) )
+                    // InternalPerspectiveDsl.g:21086:107: ( ( ( rule__Perspective__Group_5_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21087:5: ( ( rule__Perspective__Group_5_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21045:5: ( ( rule__Perspective__Group_5_2__0 ) )
-                    // InternalPerspectiveDsl.g:21046:6: ( rule__Perspective__Group_5_2__0 )
+                    // InternalPerspectiveDsl.g:21093:5: ( ( rule__Perspective__Group_5_2__0 ) )
+                    // InternalPerspectiveDsl.g:21094:6: ( rule__Perspective__Group_5_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveAccess().getGroup_5_2()); 
                     }
-                    // InternalPerspectiveDsl.g:21047:6: ( rule__Perspective__Group_5_2__0 )
-                    // InternalPerspectiveDsl.g:21047:7: rule__Perspective__Group_5_2__0
+                    // InternalPerspectiveDsl.g:21095:6: ( rule__Perspective__Group_5_2__0 )
+                    // InternalPerspectiveDsl.g:21095:7: rule__Perspective__Group_5_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_5_2__0();
@@ -68720,34 +68905,34 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__0"
-    // InternalPerspectiveDsl.g:21060:1: rule__Perspective__UnorderedGroup_5__0 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? ;
+    // InternalPerspectiveDsl.g:21108:1: rule__Perspective__UnorderedGroup_5__0 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? ;
     public final void rule__Perspective__UnorderedGroup_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21064:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? )
-            // InternalPerspectiveDsl.g:21065:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )?
+            // InternalPerspectiveDsl.g:21112:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? )
+            // InternalPerspectiveDsl.g:21113:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )?
             {
             pushFollow(FOLLOW_147);
             rule__Perspective__UnorderedGroup_5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21066:2: ( rule__Perspective__UnorderedGroup_5__1 )?
-            int alt148=2;
-            int LA148_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21114:2: ( rule__Perspective__UnorderedGroup_5__1 )?
+            int alt149=2;
+            int LA149_0 = input.LA(1);
 
-            if ( LA148_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
-                alt148=1;
+            if ( LA149_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
+                alt149=1;
             }
-            else if ( LA148_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
-                alt148=1;
+            else if ( LA149_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
+                alt149=1;
             }
-            else if ( LA148_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
-                alt148=1;
+            else if ( LA149_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
+                alt149=1;
             }
-            switch (alt148) {
+            switch (alt149) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__Perspective__UnorderedGroup_5__1
                     {
@@ -68781,34 +68966,34 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__1"
-    // InternalPerspectiveDsl.g:21072:1: rule__Perspective__UnorderedGroup_5__1 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? ;
+    // InternalPerspectiveDsl.g:21120:1: rule__Perspective__UnorderedGroup_5__1 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? ;
     public final void rule__Perspective__UnorderedGroup_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21076:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? )
-            // InternalPerspectiveDsl.g:21077:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )?
+            // InternalPerspectiveDsl.g:21124:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? )
+            // InternalPerspectiveDsl.g:21125:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )?
             {
             pushFollow(FOLLOW_147);
             rule__Perspective__UnorderedGroup_5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21078:2: ( rule__Perspective__UnorderedGroup_5__2 )?
-            int alt149=2;
-            int LA149_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21126:2: ( rule__Perspective__UnorderedGroup_5__2 )?
+            int alt150=2;
+            int LA150_0 = input.LA(1);
 
-            if ( LA149_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
-                alt149=1;
+            if ( LA150_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
+                alt150=1;
             }
-            else if ( LA149_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
-                alt149=1;
+            else if ( LA150_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
+                alt150=1;
             }
-            else if ( LA149_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
-                alt149=1;
+            else if ( LA150_0 == 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
+                alt150=1;
             }
-            switch (alt149) {
+            switch (alt150) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__Perspective__UnorderedGroup_5__2
                     {
@@ -68842,14 +69027,14 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__2"
-    // InternalPerspectiveDsl.g:21084:1: rule__Perspective__UnorderedGroup_5__2 : rule__Perspective__UnorderedGroup_5__Impl ;
+    // InternalPerspectiveDsl.g:21132:1: rule__Perspective__UnorderedGroup_5__2 : rule__Perspective__UnorderedGroup_5__Impl ;
     public final void rule__Perspective__UnorderedGroup_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21088:1: ( rule__Perspective__UnorderedGroup_5__Impl )
-            // InternalPerspectiveDsl.g:21089:2: rule__Perspective__UnorderedGroup_5__Impl
+            // InternalPerspectiveDsl.g:21136:1: ( rule__Perspective__UnorderedGroup_5__Impl )
+            // InternalPerspectiveDsl.g:21137:2: rule__Perspective__UnorderedGroup_5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__UnorderedGroup_5__Impl();
@@ -68875,33 +69060,33 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3"
-    // InternalPerspectiveDsl.g:21096:1: rule__PerspectiveSashContainer__UnorderedGroup_3 : ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? ;
+    // InternalPerspectiveDsl.g:21144:1: rule__PerspectiveSashContainer__UnorderedGroup_3 : ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3());
         	
         try {
-            // InternalPerspectiveDsl.g:21101:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? )
-            // InternalPerspectiveDsl.g:21102:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:21149:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? )
+            // InternalPerspectiveDsl.g:21150:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
             {
-            // InternalPerspectiveDsl.g:21102:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
-            int alt150=2;
-            int LA150_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21150:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
+            int alt151=2;
+            int LA151_0 = input.LA(1);
 
-            if ( LA150_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
-                alt150=1;
+            if ( LA151_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
+                alt151=1;
             }
-            else if ( LA150_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
-                alt150=1;
+            else if ( LA151_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
+                alt151=1;
             }
-            else if ( LA150_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
-                alt150=1;
+            else if ( LA151_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
+                alt151=1;
             }
-            else if ( LA150_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
-                alt150=1;
+            else if ( LA151_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
+                alt151=1;
             }
-            switch (alt150) {
+            switch (alt151) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectiveSashContainer__UnorderedGroup_3__0
                     {
@@ -68936,63 +69121,63 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl"
-    // InternalPerspectiveDsl.g:21110:1: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:21158:1: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:21115:1: ( ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:21116:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:21163:1: ( ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:21164:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:21116:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
-            int alt151=4;
-            int LA151_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21164:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
+            int alt152=4;
+            int LA152_0 = input.LA(1);
 
-            if ( LA151_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
-                alt151=1;
+            if ( LA152_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
+                alt152=1;
             }
-            else if ( LA151_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
-                alt151=2;
+            else if ( LA152_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
+                alt152=2;
             }
-            else if ( LA151_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
-                alt151=3;
+            else if ( LA152_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
+                alt152=3;
             }
-            else if ( LA151_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
-                alt151=4;
+            else if ( LA152_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
+                alt152=4;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 151, 0, input);
+                    new NoViableAltException("", 152, 0, input);
 
                 throw nvae;
             }
-            switch (alt151) {
+            switch (alt152) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:21117:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21165:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21117:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21118:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21165:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21166:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:21118:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:21119:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:21166:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21167:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21125:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:21126:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:21173:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:21174:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:21127:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:21127:7: rule__PerspectiveSashContainer__Group_3_0__0
+                    // InternalPerspectiveDsl.g:21175:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:21175:7: rule__PerspectiveSashContainer__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_0__0();
@@ -69018,28 +69203,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:21132:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21180:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21132:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21133:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21180:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21181:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:21133:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:21134:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:21181:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21182:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21140:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:21141:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:21188:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:21189:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:21142:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:21142:7: rule__PerspectiveSashContainer__Group_3_1__0
+                    // InternalPerspectiveDsl.g:21190:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:21190:7: rule__PerspectiveSashContainer__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_1__0();
@@ -69065,28 +69250,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:21147:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21195:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21147:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21148:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21195:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21196:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:21148:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:21149:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:21196:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21197:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21155:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
-                    // InternalPerspectiveDsl.g:21156:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:21203:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:21204:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_2()); 
                     }
-                    // InternalPerspectiveDsl.g:21157:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
-                    // InternalPerspectiveDsl.g:21157:7: rule__PerspectiveSashContainer__Group_3_2__0
+                    // InternalPerspectiveDsl.g:21205:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:21205:7: rule__PerspectiveSashContainer__Group_3_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_2__0();
@@ -69112,28 +69297,28 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:21162:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21210:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21162:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21163:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:21210:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21211:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3)");
                     }
-                    // InternalPerspectiveDsl.g:21163:120: ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
-                    // InternalPerspectiveDsl.g:21164:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:21211:120: ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:21212:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21170:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
-                    // InternalPerspectiveDsl.g:21171:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:21218:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:21219:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_3()); 
                     }
-                    // InternalPerspectiveDsl.g:21172:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
-                    // InternalPerspectiveDsl.g:21172:7: rule__PerspectiveSashContainer__Group_3_3__0
+                    // InternalPerspectiveDsl.g:21220:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:21220:7: rule__PerspectiveSashContainer__Group_3_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_3__0();
@@ -69182,37 +69367,37 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__0"
-    // InternalPerspectiveDsl.g:21185:1: rule__PerspectiveSashContainer__UnorderedGroup_3__0 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? ;
+    // InternalPerspectiveDsl.g:21233:1: rule__PerspectiveSashContainer__UnorderedGroup_3__0 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21189:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? )
-            // InternalPerspectiveDsl.g:21190:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:21237:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? )
+            // InternalPerspectiveDsl.g:21238:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
             {
             pushFollow(FOLLOW_148);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21191:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
-            int alt152=2;
-            int LA152_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21239:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
+            int alt153=2;
+            int LA153_0 = input.LA(1);
 
-            if ( LA152_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
-                alt152=1;
+            if ( LA153_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
+                alt153=1;
             }
-            else if ( LA152_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
-                alt152=1;
+            else if ( LA153_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
+                alt153=1;
             }
-            else if ( LA152_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
-                alt152=1;
+            else if ( LA153_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
+                alt153=1;
             }
-            else if ( LA152_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
-                alt152=1;
+            else if ( LA153_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
+                alt153=1;
             }
-            switch (alt152) {
+            switch (alt153) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectiveSashContainer__UnorderedGroup_3__1
                     {
@@ -69246,37 +69431,37 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__1"
-    // InternalPerspectiveDsl.g:21197:1: rule__PerspectiveSashContainer__UnorderedGroup_3__1 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? ;
+    // InternalPerspectiveDsl.g:21245:1: rule__PerspectiveSashContainer__UnorderedGroup_3__1 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21201:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? )
-            // InternalPerspectiveDsl.g:21202:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:21249:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? )
+            // InternalPerspectiveDsl.g:21250:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
             {
             pushFollow(FOLLOW_148);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21203:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
-            int alt153=2;
-            int LA153_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21251:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
+            int alt154=2;
+            int LA154_0 = input.LA(1);
 
-            if ( LA153_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
-                alt153=1;
+            if ( LA154_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
+                alt154=1;
             }
-            else if ( LA153_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
-                alt153=1;
+            else if ( LA154_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
+                alt154=1;
             }
-            else if ( LA153_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
-                alt153=1;
+            else if ( LA154_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
+                alt154=1;
             }
-            else if ( LA153_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
-                alt153=1;
+            else if ( LA154_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
+                alt154=1;
             }
-            switch (alt153) {
+            switch (alt154) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectiveSashContainer__UnorderedGroup_3__2
                     {
@@ -69310,37 +69495,37 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__2"
-    // InternalPerspectiveDsl.g:21209:1: rule__PerspectiveSashContainer__UnorderedGroup_3__2 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? ;
+    // InternalPerspectiveDsl.g:21257:1: rule__PerspectiveSashContainer__UnorderedGroup_3__2 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21213:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? )
-            // InternalPerspectiveDsl.g:21214:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
+            // InternalPerspectiveDsl.g:21261:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? )
+            // InternalPerspectiveDsl.g:21262:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
             {
             pushFollow(FOLLOW_148);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21215:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
-            int alt154=2;
-            int LA154_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21263:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
+            int alt155=2;
+            int LA155_0 = input.LA(1);
 
-            if ( LA154_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
-                alt154=1;
+            if ( LA155_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
+                alt155=1;
             }
-            else if ( LA154_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
-                alt154=1;
+            else if ( LA155_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
+                alt155=1;
             }
-            else if ( LA154_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
-                alt154=1;
+            else if ( LA155_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
+                alt155=1;
             }
-            else if ( LA154_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
-                alt154=1;
+            else if ( LA155_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
+                alt155=1;
             }
-            switch (alt154) {
+            switch (alt155) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectiveSashContainer__UnorderedGroup_3__3
                     {
@@ -69374,14 +69559,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__3"
-    // InternalPerspectiveDsl.g:21221:1: rule__PerspectiveSashContainer__UnorderedGroup_3__3 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ;
+    // InternalPerspectiveDsl.g:21269:1: rule__PerspectiveSashContainer__UnorderedGroup_3__3 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21225:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl )
-            // InternalPerspectiveDsl.g:21226:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl
+            // InternalPerspectiveDsl.g:21273:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl )
+            // InternalPerspectiveDsl.g:21274:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
@@ -69407,33 +69592,33 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3"
-    // InternalPerspectiveDsl.g:21233:1: rule__PerspectivePartStack__UnorderedGroup_3 : ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? ;
+    // InternalPerspectiveDsl.g:21281:1: rule__PerspectivePartStack__UnorderedGroup_3 : ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3());
         	
         try {
-            // InternalPerspectiveDsl.g:21238:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? )
-            // InternalPerspectiveDsl.g:21239:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:21286:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? )
+            // InternalPerspectiveDsl.g:21287:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
             {
-            // InternalPerspectiveDsl.g:21239:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
-            int alt155=2;
-            int LA155_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21287:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
+            int alt156=2;
+            int LA156_0 = input.LA(1);
 
-            if ( LA155_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
-                alt155=1;
+            if ( LA156_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
+                alt156=1;
             }
-            else if ( LA155_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
-                alt155=1;
+            else if ( LA156_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
+                alt156=1;
             }
-            else if ( LA155_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
-                alt155=1;
+            else if ( LA156_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
+                alt156=1;
             }
-            else if ( LA155_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
-                alt155=1;
+            else if ( LA156_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
+                alt156=1;
             }
-            switch (alt155) {
+            switch (alt156) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePartStack__UnorderedGroup_3__0
                     {
@@ -69468,63 +69653,63 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__Impl"
-    // InternalPerspectiveDsl.g:21247:1: rule__PerspectivePartStack__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:21295:1: rule__PerspectivePartStack__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) ) ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:21252:1: ( ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:21253:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:21300:1: ( ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:21301:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:21253:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) )
-            int alt156=4;
-            int LA156_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21301:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) ) )
+            int alt157=4;
+            int LA157_0 = input.LA(1);
 
-            if ( LA156_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
-                alt156=1;
+            if ( LA157_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
+                alt157=1;
             }
-            else if ( LA156_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
-                alt156=2;
+            else if ( LA157_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
+                alt157=2;
             }
-            else if ( LA156_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
-                alt156=3;
+            else if ( LA157_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
+                alt157=3;
             }
-            else if ( LA156_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
-                alt156=4;
+            else if ( LA157_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
+                alt157=4;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 156, 0, input);
+                    new NoViableAltException("", 157, 0, input);
 
                 throw nvae;
             }
-            switch (alt156) {
+            switch (alt157) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:21254:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21302:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21254:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21255:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21302:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21303:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePartStack__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:21255:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:21256:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:21303:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21304:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21262:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:21263:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:21310:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:21311:6: ( rule__PerspectivePartStack__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:21264:6: ( rule__PerspectivePartStack__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:21264:7: rule__PerspectivePartStack__Group_3_0__0
+                    // InternalPerspectiveDsl.g:21312:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:21312:7: rule__PerspectivePartStack__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePartStack__Group_3_0__0();
@@ -69550,28 +69735,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:21269:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21317:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21269:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21270:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21317:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21318:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePartStack__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:21270:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:21271:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:21318:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21319:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21277:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:21278:6: ( rule__PerspectivePartStack__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:21325:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:21326:6: ( rule__PerspectivePartStack__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:21279:6: ( rule__PerspectivePartStack__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:21279:7: rule__PerspectivePartStack__Group_3_1__0
+                    // InternalPerspectiveDsl.g:21327:6: ( rule__PerspectivePartStack__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:21327:7: rule__PerspectivePartStack__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePartStack__Group_3_1__0();
@@ -69597,28 +69782,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:21284:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21332:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21284:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21285:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21332:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21333:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePartStack__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:21285:116: ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:21286:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:21333:116: ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21334:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21292:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
-                    // InternalPerspectiveDsl.g:21293:6: ( rule__PerspectivePartStack__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:21340:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:21341:6: ( rule__PerspectivePartStack__Group_3_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_2()); 
                     }
-                    // InternalPerspectiveDsl.g:21294:6: ( rule__PerspectivePartStack__Group_3_2__0 )
-                    // InternalPerspectiveDsl.g:21294:7: rule__PerspectivePartStack__Group_3_2__0
+                    // InternalPerspectiveDsl.g:21342:6: ( rule__PerspectivePartStack__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:21342:7: rule__PerspectivePartStack__Group_3_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePartStack__Group_3_2__0();
@@ -69644,28 +69829,28 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:21299:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21347:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21299:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21300:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:21347:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21348:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePartStack__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3)");
                     }
-                    // InternalPerspectiveDsl.g:21300:116: ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) )
-                    // InternalPerspectiveDsl.g:21301:5: ( ( rule__PerspectivePartStack__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:21348:116: ( ( ( rule__PerspectivePartStack__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:21349:5: ( ( rule__PerspectivePartStack__Group_3_3__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21307:5: ( ( rule__PerspectivePartStack__Group_3_3__0 ) )
-                    // InternalPerspectiveDsl.g:21308:6: ( rule__PerspectivePartStack__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:21355:5: ( ( rule__PerspectivePartStack__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:21356:6: ( rule__PerspectivePartStack__Group_3_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_3()); 
                     }
-                    // InternalPerspectiveDsl.g:21309:6: ( rule__PerspectivePartStack__Group_3_3__0 )
-                    // InternalPerspectiveDsl.g:21309:7: rule__PerspectivePartStack__Group_3_3__0
+                    // InternalPerspectiveDsl.g:21357:6: ( rule__PerspectivePartStack__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:21357:7: rule__PerspectivePartStack__Group_3_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePartStack__Group_3_3__0();
@@ -69714,37 +69899,37 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__0"
-    // InternalPerspectiveDsl.g:21322:1: rule__PerspectivePartStack__UnorderedGroup_3__0 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? ;
+    // InternalPerspectiveDsl.g:21370:1: rule__PerspectivePartStack__UnorderedGroup_3__0 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21326:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? )
-            // InternalPerspectiveDsl.g:21327:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:21374:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? )
+            // InternalPerspectiveDsl.g:21375:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
             {
             pushFollow(FOLLOW_149);
             rule__PerspectivePartStack__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21328:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
-            int alt157=2;
-            int LA157_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21376:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
+            int alt158=2;
+            int LA158_0 = input.LA(1);
 
-            if ( LA157_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
-                alt157=1;
+            if ( LA158_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
+                alt158=1;
             }
-            else if ( LA157_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
-                alt157=1;
+            else if ( LA158_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
+                alt158=1;
             }
-            else if ( LA157_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
-                alt157=1;
+            else if ( LA158_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
+                alt158=1;
             }
-            else if ( LA157_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
-                alt157=1;
+            else if ( LA158_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
+                alt158=1;
             }
-            switch (alt157) {
+            switch (alt158) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePartStack__UnorderedGroup_3__1
                     {
@@ -69778,37 +69963,37 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__1"
-    // InternalPerspectiveDsl.g:21334:1: rule__PerspectivePartStack__UnorderedGroup_3__1 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? ;
+    // InternalPerspectiveDsl.g:21382:1: rule__PerspectivePartStack__UnorderedGroup_3__1 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21338:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? )
-            // InternalPerspectiveDsl.g:21339:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:21386:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? )
+            // InternalPerspectiveDsl.g:21387:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
             {
             pushFollow(FOLLOW_149);
             rule__PerspectivePartStack__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21340:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
-            int alt158=2;
-            int LA158_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21388:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
+            int alt159=2;
+            int LA159_0 = input.LA(1);
 
-            if ( LA158_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
-                alt158=1;
+            if ( LA159_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
+                alt159=1;
             }
-            else if ( LA158_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
-                alt158=1;
+            else if ( LA159_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
+                alt159=1;
             }
-            else if ( LA158_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
-                alt158=1;
+            else if ( LA159_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
+                alt159=1;
             }
-            else if ( LA158_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
-                alt158=1;
+            else if ( LA159_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
+                alt159=1;
             }
-            switch (alt158) {
+            switch (alt159) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePartStack__UnorderedGroup_3__2
                     {
@@ -69842,37 +70027,37 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__2"
-    // InternalPerspectiveDsl.g:21346:1: rule__PerspectivePartStack__UnorderedGroup_3__2 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__3 )? ;
+    // InternalPerspectiveDsl.g:21394:1: rule__PerspectivePartStack__UnorderedGroup_3__2 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__3 )? ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21350:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__3 )? )
-            // InternalPerspectiveDsl.g:21351:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__3 )?
+            // InternalPerspectiveDsl.g:21398:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__3 )? )
+            // InternalPerspectiveDsl.g:21399:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__3 )?
             {
             pushFollow(FOLLOW_149);
             rule__PerspectivePartStack__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21352:2: ( rule__PerspectivePartStack__UnorderedGroup_3__3 )?
-            int alt159=2;
-            int LA159_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21400:2: ( rule__PerspectivePartStack__UnorderedGroup_3__3 )?
+            int alt160=2;
+            int LA160_0 = input.LA(1);
 
-            if ( LA159_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
-                alt159=1;
+            if ( LA160_0 == 65 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
+                alt160=1;
             }
-            else if ( LA159_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
-                alt159=1;
+            else if ( LA160_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
+                alt160=1;
             }
-            else if ( LA159_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
-                alt159=1;
+            else if ( LA160_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
+                alt160=1;
             }
-            else if ( LA159_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
-                alt159=1;
+            else if ( LA160_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3) ) {
+                alt160=1;
             }
-            switch (alt159) {
+            switch (alt160) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePartStack__UnorderedGroup_3__3
                     {
@@ -69906,14 +70091,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__3"
-    // InternalPerspectiveDsl.g:21358:1: rule__PerspectivePartStack__UnorderedGroup_3__3 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ;
+    // InternalPerspectiveDsl.g:21406:1: rule__PerspectivePartStack__UnorderedGroup_3__3 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21362:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl )
-            // InternalPerspectiveDsl.g:21363:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl
+            // InternalPerspectiveDsl.g:21410:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl )
+            // InternalPerspectiveDsl.g:21411:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__UnorderedGroup_3__Impl();
@@ -69939,36 +70124,36 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3"
-    // InternalPerspectiveDsl.g:21370:1: rule__PerspectivePart__UnorderedGroup_3 : ( rule__PerspectivePart__UnorderedGroup_3__0 )? ;
+    // InternalPerspectiveDsl.g:21418:1: rule__PerspectivePart__UnorderedGroup_3 : ( rule__PerspectivePart__UnorderedGroup_3__0 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3());
         	
         try {
-            // InternalPerspectiveDsl.g:21375:1: ( ( rule__PerspectivePart__UnorderedGroup_3__0 )? )
-            // InternalPerspectiveDsl.g:21376:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:21423:1: ( ( rule__PerspectivePart__UnorderedGroup_3__0 )? )
+            // InternalPerspectiveDsl.g:21424:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
             {
-            // InternalPerspectiveDsl.g:21376:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
-            int alt160=2;
-            int LA160_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21424:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
+            int alt161=2;
+            int LA161_0 = input.LA(1);
 
-            if ( LA160_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
-                alt160=1;
+            if ( LA161_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+                alt161=1;
             }
-            else if ( LA160_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
-                alt160=1;
+            else if ( LA161_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+                alt161=1;
             }
-            else if ( LA160_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
-                alt160=1;
+            else if ( LA161_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+                alt161=1;
             }
-            else if ( LA160_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
-                alt160=1;
+            else if ( LA161_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+                alt161=1;
             }
-            else if ( LA160_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
-                alt160=1;
+            else if ( LA161_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+                alt161=1;
             }
-            switch (alt160) {
+            switch (alt161) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePart__UnorderedGroup_3__0
                     {
@@ -70003,66 +70188,66 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__Impl"
-    // InternalPerspectiveDsl.g:21384:1: rule__PerspectivePart__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:21432:1: rule__PerspectivePart__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) ;
     public final void rule__PerspectivePart__UnorderedGroup_3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:21389:1: ( ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:21390:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
+            // InternalPerspectiveDsl.g:21437:1: ( ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:21438:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:21390:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
-            int alt161=5;
-            int LA161_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21438:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
+            int alt162=5;
+            int LA162_0 = input.LA(1);
 
-            if ( LA161_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
-                alt161=1;
+            if ( LA162_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+                alt162=1;
             }
-            else if ( LA161_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
-                alt161=2;
+            else if ( LA162_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+                alt162=2;
             }
-            else if ( LA161_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
-                alt161=3;
+            else if ( LA162_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+                alt162=3;
             }
-            else if ( LA161_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
-                alt161=4;
+            else if ( LA162_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+                alt162=4;
             }
-            else if ( LA161_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
-                alt161=5;
+            else if ( LA162_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+                alt162=5;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 161, 0, input);
+                    new NoViableAltException("", 162, 0, input);
 
                 throw nvae;
             }
-            switch (alt161) {
+            switch (alt162) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:21391:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21439:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21391:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21392:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21439:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21440:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:21392:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:21393:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:21440:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21441:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21399:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:21400:6: ( rule__PerspectivePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:21447:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:21448:6: ( rule__PerspectivePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:21401:6: ( rule__PerspectivePart__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:21401:7: rule__PerspectivePart__Group_3_0__0
+                    // InternalPerspectiveDsl.g:21449:6: ( rule__PerspectivePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:21449:7: rule__PerspectivePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_0__0();
@@ -70088,28 +70273,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:21406:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21454:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21406:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21407:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21454:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21455:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:21407:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:21408:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:21455:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21456:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21414:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:21415:6: ( rule__PerspectivePart__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:21462:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:21463:6: ( rule__PerspectivePart__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:21416:6: ( rule__PerspectivePart__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:21416:7: rule__PerspectivePart__Group_3_1__0
+                    // InternalPerspectiveDsl.g:21464:6: ( rule__PerspectivePart__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:21464:7: rule__PerspectivePart__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_1__0();
@@ -70135,28 +70320,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:21421:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21469:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21421:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21422:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21469:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21470:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:21422:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:21423:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:21470:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:21471:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21429:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
-                    // InternalPerspectiveDsl.g:21430:6: ( rule__PerspectivePart__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:21477:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:21478:6: ( rule__PerspectivePart__Group_3_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_2()); 
                     }
-                    // InternalPerspectiveDsl.g:21431:6: ( rule__PerspectivePart__Group_3_2__0 )
-                    // InternalPerspectiveDsl.g:21431:7: rule__PerspectivePart__Group_3_2__0
+                    // InternalPerspectiveDsl.g:21479:6: ( rule__PerspectivePart__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:21479:7: rule__PerspectivePart__Group_3_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_2__0();
@@ -70182,28 +70367,28 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:21436:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21484:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21436:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21437:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:21484:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21485:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3)");
                     }
-                    // InternalPerspectiveDsl.g:21437:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
-                    // InternalPerspectiveDsl.g:21438:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:21485:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:21486:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21444:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
-                    // InternalPerspectiveDsl.g:21445:6: ( rule__PerspectivePart__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:21492:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:21493:6: ( rule__PerspectivePart__Group_3_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_3()); 
                     }
-                    // InternalPerspectiveDsl.g:21446:6: ( rule__PerspectivePart__Group_3_3__0 )
-                    // InternalPerspectiveDsl.g:21446:7: rule__PerspectivePart__Group_3_3__0
+                    // InternalPerspectiveDsl.g:21494:6: ( rule__PerspectivePart__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:21494:7: rule__PerspectivePart__Group_3_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_3__0();
@@ -70229,28 +70414,28 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:21451:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
+                    // InternalPerspectiveDsl.g:21499:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21451:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
-                    // InternalPerspectiveDsl.g:21452:4: {...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
+                    // InternalPerspectiveDsl.g:21499:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
+                    // InternalPerspectiveDsl.g:21500:4: {...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4)");
                     }
-                    // InternalPerspectiveDsl.g:21452:111: ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
-                    // InternalPerspectiveDsl.g:21453:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
+                    // InternalPerspectiveDsl.g:21500:111: ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
+                    // InternalPerspectiveDsl.g:21501:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21459:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
-                    // InternalPerspectiveDsl.g:21460:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
+                    // InternalPerspectiveDsl.g:21507:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
+                    // InternalPerspectiveDsl.g:21508:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getIsClosableAssignment_3_4()); 
                     }
-                    // InternalPerspectiveDsl.g:21461:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
-                    // InternalPerspectiveDsl.g:21461:7: rule__PerspectivePart__IsClosableAssignment_3_4
+                    // InternalPerspectiveDsl.g:21509:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
+                    // InternalPerspectiveDsl.g:21509:7: rule__PerspectivePart__IsClosableAssignment_3_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__IsClosableAssignment_3_4();
@@ -70299,40 +70484,40 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__0"
-    // InternalPerspectiveDsl.g:21474:1: rule__PerspectivePart__UnorderedGroup_3__0 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? ;
+    // InternalPerspectiveDsl.g:21522:1: rule__PerspectivePart__UnorderedGroup_3__0 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21478:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? )
-            // InternalPerspectiveDsl.g:21479:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:21526:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? )
+            // InternalPerspectiveDsl.g:21527:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )?
             {
             pushFollow(FOLLOW_150);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21480:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )?
-            int alt162=2;
-            int LA162_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21528:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )?
+            int alt163=2;
+            int LA163_0 = input.LA(1);
 
-            if ( LA162_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
-                alt162=1;
+            if ( LA163_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+                alt163=1;
             }
-            else if ( LA162_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
-                alt162=1;
+            else if ( LA163_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+                alt163=1;
             }
-            else if ( LA162_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
-                alt162=1;
+            else if ( LA163_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+                alt163=1;
             }
-            else if ( LA162_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
-                alt162=1;
+            else if ( LA163_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+                alt163=1;
             }
-            else if ( LA162_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
-                alt162=1;
+            else if ( LA163_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+                alt163=1;
             }
-            switch (alt162) {
+            switch (alt163) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePart__UnorderedGroup_3__1
                     {
@@ -70366,40 +70551,40 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__1"
-    // InternalPerspectiveDsl.g:21486:1: rule__PerspectivePart__UnorderedGroup_3__1 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? ;
+    // InternalPerspectiveDsl.g:21534:1: rule__PerspectivePart__UnorderedGroup_3__1 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21490:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? )
-            // InternalPerspectiveDsl.g:21491:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:21538:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? )
+            // InternalPerspectiveDsl.g:21539:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )?
             {
             pushFollow(FOLLOW_150);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21492:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )?
-            int alt163=2;
-            int LA163_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21540:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )?
+            int alt164=2;
+            int LA164_0 = input.LA(1);
 
-            if ( LA163_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
-                alt163=1;
+            if ( LA164_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+                alt164=1;
             }
-            else if ( LA163_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
-                alt163=1;
+            else if ( LA164_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+                alt164=1;
             }
-            else if ( LA163_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
-                alt163=1;
+            else if ( LA164_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+                alt164=1;
             }
-            else if ( LA163_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
-                alt163=1;
+            else if ( LA164_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+                alt164=1;
             }
-            else if ( LA163_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
-                alt163=1;
+            else if ( LA164_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+                alt164=1;
             }
-            switch (alt163) {
+            switch (alt164) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePart__UnorderedGroup_3__2
                     {
@@ -70433,40 +70618,40 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__2"
-    // InternalPerspectiveDsl.g:21498:1: rule__PerspectivePart__UnorderedGroup_3__2 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? ;
+    // InternalPerspectiveDsl.g:21546:1: rule__PerspectivePart__UnorderedGroup_3__2 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21502:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? )
-            // InternalPerspectiveDsl.g:21503:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )?
+            // InternalPerspectiveDsl.g:21550:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? )
+            // InternalPerspectiveDsl.g:21551:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )?
             {
             pushFollow(FOLLOW_150);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21504:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )?
-            int alt164=2;
-            int LA164_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21552:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )?
+            int alt165=2;
+            int LA165_0 = input.LA(1);
 
-            if ( LA164_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
-                alt164=1;
+            if ( LA165_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+                alt165=1;
             }
-            else if ( LA164_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
-                alt164=1;
+            else if ( LA165_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+                alt165=1;
             }
-            else if ( LA164_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
-                alt164=1;
+            else if ( LA165_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+                alt165=1;
             }
-            else if ( LA164_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
-                alt164=1;
+            else if ( LA165_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+                alt165=1;
             }
-            else if ( LA164_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
-                alt164=1;
+            else if ( LA165_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+                alt165=1;
             }
-            switch (alt164) {
+            switch (alt165) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePart__UnorderedGroup_3__3
                     {
@@ -70500,40 +70685,40 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__3"
-    // InternalPerspectiveDsl.g:21510:1: rule__PerspectivePart__UnorderedGroup_3__3 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? ;
+    // InternalPerspectiveDsl.g:21558:1: rule__PerspectivePart__UnorderedGroup_3__3 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21514:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? )
-            // InternalPerspectiveDsl.g:21515:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )?
+            // InternalPerspectiveDsl.g:21562:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? )
+            // InternalPerspectiveDsl.g:21563:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )?
             {
             pushFollow(FOLLOW_150);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21516:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )?
-            int alt165=2;
-            int LA165_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21564:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )?
+            int alt166=2;
+            int LA166_0 = input.LA(1);
 
-            if ( LA165_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
-                alt165=1;
+            if ( LA166_0 == 66 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+                alt166=1;
             }
-            else if ( LA165_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
-                alt165=1;
+            else if ( LA166_0 == 60 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+                alt166=1;
             }
-            else if ( LA165_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
-                alt165=1;
+            else if ( LA166_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+                alt166=1;
             }
-            else if ( LA165_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
-                alt165=1;
+            else if ( LA166_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+                alt166=1;
             }
-            else if ( LA165_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
-                alt165=1;
+            else if ( LA166_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+                alt166=1;
             }
-            switch (alt165) {
+            switch (alt166) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectivePart__UnorderedGroup_3__4
                     {
@@ -70567,14 +70752,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__4"
-    // InternalPerspectiveDsl.g:21522:1: rule__PerspectivePart__UnorderedGroup_3__4 : rule__PerspectivePart__UnorderedGroup_3__Impl ;
+    // InternalPerspectiveDsl.g:21570:1: rule__PerspectivePart__UnorderedGroup_3__4 : rule__PerspectivePart__UnorderedGroup_3__Impl ;
     public final void rule__PerspectivePart__UnorderedGroup_3__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21526:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl )
-            // InternalPerspectiveDsl.g:21527:2: rule__PerspectivePart__UnorderedGroup_3__Impl
+            // InternalPerspectiveDsl.g:21574:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl )
+            // InternalPerspectiveDsl.g:21575:2: rule__PerspectivePart__UnorderedGroup_3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
@@ -70600,27 +70785,27 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4"
-    // InternalPerspectiveDsl.g:21534:1: rule__PerspectiveSearch__UnorderedGroup_4 : ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? ;
+    // InternalPerspectiveDsl.g:21582:1: rule__PerspectiveSearch__UnorderedGroup_4 : ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4());
         	
         try {
-            // InternalPerspectiveDsl.g:21539:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? )
-            // InternalPerspectiveDsl.g:21540:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
+            // InternalPerspectiveDsl.g:21587:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? )
+            // InternalPerspectiveDsl.g:21588:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
             {
-            // InternalPerspectiveDsl.g:21540:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
-            int alt166=2;
-            int LA166_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21588:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
+            int alt167=2;
+            int LA167_0 = input.LA(1);
 
-            if ( LA166_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
-                alt166=1;
+            if ( LA167_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
+                alt167=1;
             }
-            else if ( LA166_0 == 90 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
-                alt166=1;
+            else if ( LA167_0 == 90 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
+                alt167=1;
             }
-            switch (alt166) {
+            switch (alt167) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectiveSearch__UnorderedGroup_4__0
                     {
@@ -70655,57 +70840,57 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4__Impl"
-    // InternalPerspectiveDsl.g:21548:1: rule__PerspectiveSearch__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:21596:1: rule__PerspectiveSearch__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:21553:1: ( ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:21554:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:21601:1: ( ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:21602:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:21554:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
-            int alt167=2;
-            int LA167_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21602:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
+            int alt168=2;
+            int LA168_0 = input.LA(1);
 
-            if ( LA167_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
-                alt167=1;
+            if ( LA168_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
+                alt168=1;
             }
-            else if ( LA167_0 == 90 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
-                alt167=2;
+            else if ( LA168_0 == 90 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
+                alt168=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 167, 0, input);
+                    new NoViableAltException("", 168, 0, input);
 
                 throw nvae;
             }
-            switch (alt167) {
+            switch (alt168) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:21555:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21603:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21555:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21556:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21603:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21604:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSearch__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:21556:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:21557:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+                    // InternalPerspectiveDsl.g:21604:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:21605:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21563:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
-                    // InternalPerspectiveDsl.g:21564:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+                    // InternalPerspectiveDsl.g:21611:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+                    // InternalPerspectiveDsl.g:21612:6: ( rule__PerspectiveSearch__Group_4_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSearchAccess().getGroup_4_0()); 
                     }
-                    // InternalPerspectiveDsl.g:21565:6: ( rule__PerspectiveSearch__Group_4_0__0 )
-                    // InternalPerspectiveDsl.g:21565:7: rule__PerspectiveSearch__Group_4_0__0
+                    // InternalPerspectiveDsl.g:21613:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+                    // InternalPerspectiveDsl.g:21613:7: rule__PerspectiveSearch__Group_4_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSearch__Group_4_0__0();
@@ -70731,28 +70916,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:21570:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21618:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:21570:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:21571:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21618:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:21619:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSearch__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:21571:113: ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:21572:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
+                    // InternalPerspectiveDsl.g:21619:113: ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:21620:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:21578:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
-                    // InternalPerspectiveDsl.g:21579:6: ( rule__PerspectiveSearch__Group_4_1__0 )
+                    // InternalPerspectiveDsl.g:21626:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
+                    // InternalPerspectiveDsl.g:21627:6: ( rule__PerspectiveSearch__Group_4_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSearchAccess().getGroup_4_1()); 
                     }
-                    // InternalPerspectiveDsl.g:21580:6: ( rule__PerspectiveSearch__Group_4_1__0 )
-                    // InternalPerspectiveDsl.g:21580:7: rule__PerspectiveSearch__Group_4_1__0
+                    // InternalPerspectiveDsl.g:21628:6: ( rule__PerspectiveSearch__Group_4_1__0 )
+                    // InternalPerspectiveDsl.g:21628:7: rule__PerspectiveSearch__Group_4_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSearch__Group_4_1__0();
@@ -70801,31 +70986,31 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4__0"
-    // InternalPerspectiveDsl.g:21593:1: rule__PerspectiveSearch__UnorderedGroup_4__0 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? ;
+    // InternalPerspectiveDsl.g:21641:1: rule__PerspectiveSearch__UnorderedGroup_4__0 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21597:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? )
-            // InternalPerspectiveDsl.g:21598:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
+            // InternalPerspectiveDsl.g:21645:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? )
+            // InternalPerspectiveDsl.g:21646:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
             {
             pushFollow(FOLLOW_151);
             rule__PerspectiveSearch__UnorderedGroup_4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:21599:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
-            int alt168=2;
-            int LA168_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:21647:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
+            int alt169=2;
+            int LA169_0 = input.LA(1);
 
-            if ( LA168_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
-                alt168=1;
+            if ( LA169_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
+                alt169=1;
             }
-            else if ( LA168_0 == 90 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
-                alt168=1;
+            else if ( LA169_0 == 90 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
+                alt169=1;
             }
-            switch (alt168) {
+            switch (alt169) {
                 case 1 :
                     // InternalPerspectiveDsl.g:0:0: rule__PerspectiveSearch__UnorderedGroup_4__1
                     {
@@ -70859,14 +71044,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4__1"
-    // InternalPerspectiveDsl.g:21605:1: rule__PerspectiveSearch__UnorderedGroup_4__1 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ;
+    // InternalPerspectiveDsl.g:21653:1: rule__PerspectiveSearch__UnorderedGroup_4__1 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21609:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl )
-            // InternalPerspectiveDsl.g:21610:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl
+            // InternalPerspectiveDsl.g:21657:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl )
+            // InternalPerspectiveDsl.g:21658:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__UnorderedGroup_4__Impl();
@@ -70892,17 +71077,17 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__ImportSectionAssignment_0"
-    // InternalPerspectiveDsl.g:21617:1: rule__PerspectiveModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
+    // InternalPerspectiveDsl.g:21665:1: rule__PerspectiveModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
     public final void rule__PerspectiveModel__ImportSectionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21621:1: ( ( ruleXImportSection ) )
-            // InternalPerspectiveDsl.g:21622:2: ( ruleXImportSection )
+            // InternalPerspectiveDsl.g:21669:1: ( ( ruleXImportSection ) )
+            // InternalPerspectiveDsl.g:21670:2: ( ruleXImportSection )
             {
-            // InternalPerspectiveDsl.g:21622:2: ( ruleXImportSection )
-            // InternalPerspectiveDsl.g:21623:3: ruleXImportSection
+            // InternalPerspectiveDsl.g:21670:2: ( ruleXImportSection )
+            // InternalPerspectiveDsl.g:21671:3: ruleXImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); 
@@ -70937,17 +71122,17 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__PackagesAssignment_1"
-    // InternalPerspectiveDsl.g:21632:1: rule__PerspectiveModel__PackagesAssignment_1 : ( rulePerspectivePackage ) ;
+    // InternalPerspectiveDsl.g:21680:1: rule__PerspectiveModel__PackagesAssignment_1 : ( rulePerspectivePackage ) ;
     public final void rule__PerspectiveModel__PackagesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21636:1: ( ( rulePerspectivePackage ) )
-            // InternalPerspectiveDsl.g:21637:2: ( rulePerspectivePackage )
+            // InternalPerspectiveDsl.g:21684:1: ( ( rulePerspectivePackage ) )
+            // InternalPerspectiveDsl.g:21685:2: ( rulePerspectivePackage )
             {
-            // InternalPerspectiveDsl.g:21637:2: ( rulePerspectivePackage )
-            // InternalPerspectiveDsl.g:21638:3: rulePerspectivePackage
+            // InternalPerspectiveDsl.g:21685:2: ( rulePerspectivePackage )
+            // InternalPerspectiveDsl.g:21686:3: rulePerspectivePackage
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getPackagesPerspectivePackageParserRuleCall_1_0()); 
@@ -70982,17 +71167,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__NameAssignment_2"
-    // InternalPerspectiveDsl.g:21647:1: rule__PerspectivePackage__NameAssignment_2 : ( ruleQualifiedName ) ;
+    // InternalPerspectiveDsl.g:21695:1: rule__PerspectivePackage__NameAssignment_2 : ( ruleQualifiedName ) ;
     public final void rule__PerspectivePackage__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21651:1: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:21652:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21699:1: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:21700:2: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:21652:2: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:21653:3: ruleQualifiedName
+            // InternalPerspectiveDsl.g:21700:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21701:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
@@ -71027,17 +71212,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__PerspectivesAssignment_3_1"
-    // InternalPerspectiveDsl.g:21662:1: rule__PerspectivePackage__PerspectivesAssignment_3_1 : ( rulePerspective ) ;
+    // InternalPerspectiveDsl.g:21710:1: rule__PerspectivePackage__PerspectivesAssignment_3_1 : ( rulePerspective ) ;
     public final void rule__PerspectivePackage__PerspectivesAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21666:1: ( ( rulePerspective ) )
-            // InternalPerspectiveDsl.g:21667:2: ( rulePerspective )
+            // InternalPerspectiveDsl.g:21714:1: ( ( rulePerspective ) )
+            // InternalPerspectiveDsl.g:21715:2: ( rulePerspective )
             {
-            // InternalPerspectiveDsl.g:21667:2: ( rulePerspective )
-            // InternalPerspectiveDsl.g:21668:3: rulePerspective
+            // InternalPerspectiveDsl.g:21715:2: ( rulePerspective )
+            // InternalPerspectiveDsl.g:21716:3: rulePerspective
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPerspectivesPerspectiveParserRuleCall_3_1_0()); 
@@ -71072,17 +71257,17 @@
 
 
     // $ANTLR start "rule__Perspective__NameAssignment_2"
-    // InternalPerspectiveDsl.g:21677:1: rule__Perspective__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalPerspectiveDsl.g:21725:1: rule__Perspective__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__Perspective__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21681:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalPerspectiveDsl.g:21682:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:21729:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalPerspectiveDsl.g:21730:2: ( ruleTRANSLATABLEID )
             {
-            // InternalPerspectiveDsl.g:21682:2: ( ruleTRANSLATABLEID )
-            // InternalPerspectiveDsl.g:21683:3: ruleTRANSLATABLEID
+            // InternalPerspectiveDsl.g:21730:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:21731:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -71117,23 +71302,23 @@
 
 
     // $ANTLR start "rule__Perspective__DescriptionAssignment_3_0"
-    // InternalPerspectiveDsl.g:21692:1: rule__Perspective__DescriptionAssignment_3_0 : ( ( 'describedBy' ) ) ;
+    // InternalPerspectiveDsl.g:21740:1: rule__Perspective__DescriptionAssignment_3_0 : ( ( 'describedBy' ) ) ;
     public final void rule__Perspective__DescriptionAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21696:1: ( ( ( 'describedBy' ) ) )
-            // InternalPerspectiveDsl.g:21697:2: ( ( 'describedBy' ) )
+            // InternalPerspectiveDsl.g:21744:1: ( ( ( 'describedBy' ) ) )
+            // InternalPerspectiveDsl.g:21745:2: ( ( 'describedBy' ) )
             {
-            // InternalPerspectiveDsl.g:21697:2: ( ( 'describedBy' ) )
-            // InternalPerspectiveDsl.g:21698:3: ( 'describedBy' )
+            // InternalPerspectiveDsl.g:21745:2: ( ( 'describedBy' ) )
+            // InternalPerspectiveDsl.g:21746:3: ( 'describedBy' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionDescribedByKeyword_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:21699:3: ( 'describedBy' )
-            // InternalPerspectiveDsl.g:21700:4: 'describedBy'
+            // InternalPerspectiveDsl.g:21747:3: ( 'describedBy' )
+            // InternalPerspectiveDsl.g:21748:4: 'describedBy'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionDescribedByKeyword_3_0_0()); 
@@ -71170,17 +71355,17 @@
 
 
     // $ANTLR start "rule__Perspective__DescriptionValueAssignment_3_1"
-    // InternalPerspectiveDsl.g:21711:1: rule__Perspective__DescriptionValueAssignment_3_1 : ( ruleTRANSLATABLESTRING ) ;
+    // InternalPerspectiveDsl.g:21759:1: rule__Perspective__DescriptionValueAssignment_3_1 : ( ruleTRANSLATABLESTRING ) ;
     public final void rule__Perspective__DescriptionValueAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21715:1: ( ( ruleTRANSLATABLESTRING ) )
-            // InternalPerspectiveDsl.g:21716:2: ( ruleTRANSLATABLESTRING )
+            // InternalPerspectiveDsl.g:21763:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalPerspectiveDsl.g:21764:2: ( ruleTRANSLATABLESTRING )
             {
-            // InternalPerspectiveDsl.g:21716:2: ( ruleTRANSLATABLESTRING )
-            // InternalPerspectiveDsl.g:21717:3: ruleTRANSLATABLESTRING
+            // InternalPerspectiveDsl.g:21764:2: ( ruleTRANSLATABLESTRING )
+            // InternalPerspectiveDsl.g:21765:3: ruleTRANSLATABLESTRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
@@ -71215,23 +71400,23 @@
 
 
     // $ANTLR start "rule__Perspective__ProcessAssignment_4_1"
-    // InternalPerspectiveDsl.g:21726:1: rule__Perspective__ProcessAssignment_4_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21774:1: rule__Perspective__ProcessAssignment_4_1 : ( ( RULE_ID ) ) ;
     public final void rule__Perspective__ProcessAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21730:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21731:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21778:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21779:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21731:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21732:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21779:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21780:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessBlipCrossReference_4_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21733:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21734:4: RULE_ID
+            // InternalPerspectiveDsl.g:21781:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21782:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessBlipIDTerminalRuleCall_4_1_0_1()); 
@@ -71268,23 +71453,23 @@
 
 
     // $ANTLR start "rule__Perspective__UserTaskAssignment_4_3"
-    // InternalPerspectiveDsl.g:21745:1: rule__Perspective__UserTaskAssignment_4_3 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21793:1: rule__Perspective__UserTaskAssignment_4_3 : ( ( RULE_ID ) ) ;
     public final void rule__Perspective__UserTaskAssignment_4_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21749:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21750:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21797:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21798:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21750:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21751:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21798:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21799:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUserTaskBlipUserTaskCrossReference_4_3_0()); 
             }
-            // InternalPerspectiveDsl.g:21752:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21753:4: RULE_ID
+            // InternalPerspectiveDsl.g:21800:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21801:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUserTaskBlipUserTaskIDTerminalRuleCall_4_3_0_1()); 
@@ -71321,17 +71506,17 @@
 
 
     // $ANTLR start "rule__Perspective__IconURIAssignment_5_0_1"
-    // InternalPerspectiveDsl.g:21764:1: rule__Perspective__IconURIAssignment_5_0_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21812:1: rule__Perspective__IconURIAssignment_5_0_1 : ( RULE_STRING ) ;
     public final void rule__Perspective__IconURIAssignment_5_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21768:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21769:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21816:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21817:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21769:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21770:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21817:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21818:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getIconURISTRINGTerminalRuleCall_5_0_1_0()); 
@@ -71362,17 +71547,17 @@
 
 
     // $ANTLR start "rule__Perspective__AccessibilityPhraseAssignment_5_1_1"
-    // InternalPerspectiveDsl.g:21779:1: rule__Perspective__AccessibilityPhraseAssignment_5_1_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21827:1: rule__Perspective__AccessibilityPhraseAssignment_5_1_1 : ( RULE_STRING ) ;
     public final void rule__Perspective__AccessibilityPhraseAssignment_5_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21783:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21784:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21831:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21832:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21784:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21785:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21832:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21833:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_5_1_1_0()); 
@@ -71403,23 +71588,23 @@
 
 
     // $ANTLR start "rule__Perspective__ToolbarAssignment_5_2_1"
-    // InternalPerspectiveDsl.g:21794:1: rule__Perspective__ToolbarAssignment_5_2_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21842:1: rule__Perspective__ToolbarAssignment_5_2_1 : ( ( RULE_ID ) ) ;
     public final void rule__Perspective__ToolbarAssignment_5_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21798:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21799:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21846:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21847:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21799:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21800:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21847:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21848:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarActionToolbarCrossReference_5_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21801:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21802:4: RULE_ID
+            // InternalPerspectiveDsl.g:21849:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21850:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarActionToolbarIDTerminalRuleCall_5_2_1_0_1()); 
@@ -71456,17 +71641,17 @@
 
 
     // $ANTLR start "rule__Perspective__ElementsAssignment_7"
-    // InternalPerspectiveDsl.g:21813:1: rule__Perspective__ElementsAssignment_7 : ( rulePerspectiveElement ) ;
+    // InternalPerspectiveDsl.g:21861:1: rule__Perspective__ElementsAssignment_7 : ( rulePerspectiveElement ) ;
     public final void rule__Perspective__ElementsAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21817:1: ( ( rulePerspectiveElement ) )
-            // InternalPerspectiveDsl.g:21818:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21865:1: ( ( rulePerspectiveElement ) )
+            // InternalPerspectiveDsl.g:21866:2: ( rulePerspectiveElement )
             {
-            // InternalPerspectiveDsl.g:21818:2: ( rulePerspectiveElement )
-            // InternalPerspectiveDsl.g:21819:3: rulePerspectiveElement
+            // InternalPerspectiveDsl.g:21866:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21867:3: rulePerspectiveElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getElementsPerspectiveElementParserRuleCall_7_0()); 
@@ -71501,17 +71686,17 @@
 
 
     // $ANTLR start "rule__Perspective__EventmanagerAssignment_8_1"
-    // InternalPerspectiveDsl.g:21828:1: rule__Perspective__EventmanagerAssignment_8_1 : ( rulePerspectiveEventManager ) ;
+    // InternalPerspectiveDsl.g:21876:1: rule__Perspective__EventmanagerAssignment_8_1 : ( rulePerspectiveEventManager ) ;
     public final void rule__Perspective__EventmanagerAssignment_8_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21832:1: ( ( rulePerspectiveEventManager ) )
-            // InternalPerspectiveDsl.g:21833:2: ( rulePerspectiveEventManager )
+            // InternalPerspectiveDsl.g:21880:1: ( ( rulePerspectiveEventManager ) )
+            // InternalPerspectiveDsl.g:21881:2: ( rulePerspectiveEventManager )
             {
-            // InternalPerspectiveDsl.g:21833:2: ( rulePerspectiveEventManager )
-            // InternalPerspectiveDsl.g:21834:3: rulePerspectiveEventManager
+            // InternalPerspectiveDsl.g:21881:2: ( rulePerspectiveEventManager )
+            // InternalPerspectiveDsl.g:21882:3: rulePerspectiveEventManager
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getEventmanagerPerspectiveEventManagerParserRuleCall_8_1_0()); 
@@ -71546,17 +71731,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__ElementIdAssignment_2"
-    // InternalPerspectiveDsl.g:21843:1: rule__PerspectiveSashContainer__ElementIdAssignment_2 : ( RULE_ID ) ;
+    // InternalPerspectiveDsl.g:21891:1: rule__PerspectiveSashContainer__ElementIdAssignment_2 : ( RULE_ID ) ;
     public final void rule__PerspectiveSashContainer__ElementIdAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21847:1: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21848:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21895:1: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21896:2: ( RULE_ID )
             {
-            // InternalPerspectiveDsl.g:21848:2: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21849:3: RULE_ID
+            // InternalPerspectiveDsl.g:21896:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21897:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementIdIDTerminalRuleCall_2_0()); 
@@ -71587,17 +71772,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__OrientationAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:21858:1: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 : ( ruleSashOrientation ) ;
+    // InternalPerspectiveDsl.g:21906:1: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 : ( ruleSashOrientation ) ;
     public final void rule__PerspectiveSashContainer__OrientationAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21862:1: ( ( ruleSashOrientation ) )
-            // InternalPerspectiveDsl.g:21863:2: ( ruleSashOrientation )
+            // InternalPerspectiveDsl.g:21910:1: ( ( ruleSashOrientation ) )
+            // InternalPerspectiveDsl.g:21911:2: ( ruleSashOrientation )
             {
-            // InternalPerspectiveDsl.g:21863:2: ( ruleSashOrientation )
-            // InternalPerspectiveDsl.g:21864:3: ruleSashOrientation
+            // InternalPerspectiveDsl.g:21911:2: ( ruleSashOrientation )
+            // InternalPerspectiveDsl.g:21912:3: ruleSashOrientation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationSashOrientationEnumRuleCall_3_0_1_0()); 
@@ -71632,23 +71817,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:21873:1: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21921:1: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21877:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21878:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21925:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21926:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21878:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21879:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21926:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21927:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementPerspectiveElementCrossReference_3_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21880:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21881:4: RULE_ID
+            // InternalPerspectiveDsl.g:21928:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21929:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementPerspectiveElementIDTerminalRuleCall_3_1_1_0_1()); 
@@ -71685,17 +71870,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:21892:1: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21940:1: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 : ( RULE_STRING ) ;
     public final void rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21896:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21897:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21944:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21945:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21897:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21898:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21945:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21946:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getContainerDataSTRINGTerminalRuleCall_3_2_1_0()); 
@@ -71726,17 +71911,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1"
-    // InternalPerspectiveDsl.g:21907:1: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21955:1: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 : ( RULE_STRING ) ;
     public final void rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21911:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21912:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21959:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21960:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21912:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21913:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21960:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21961:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_3_1_0()); 
@@ -71767,17 +71952,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__ElementsAssignment_5"
-    // InternalPerspectiveDsl.g:21922:1: rule__PerspectiveSashContainer__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
+    // InternalPerspectiveDsl.g:21970:1: rule__PerspectiveSashContainer__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
     public final void rule__PerspectiveSashContainer__ElementsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21926:1: ( ( rulePerspectiveElement ) )
-            // InternalPerspectiveDsl.g:21927:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21974:1: ( ( rulePerspectiveElement ) )
+            // InternalPerspectiveDsl.g:21975:2: ( rulePerspectiveElement )
             {
-            // InternalPerspectiveDsl.g:21927:2: ( rulePerspectiveElement )
-            // InternalPerspectiveDsl.g:21928:3: rulePerspectiveElement
+            // InternalPerspectiveDsl.g:21975:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21976:3: rulePerspectiveElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementsPerspectiveElementParserRuleCall_5_0()); 
@@ -71812,17 +71997,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__ElementIdAssignment_2"
-    // InternalPerspectiveDsl.g:21937:1: rule__PerspectivePartStack__ElementIdAssignment_2 : ( RULE_ID ) ;
+    // InternalPerspectiveDsl.g:21985:1: rule__PerspectivePartStack__ElementIdAssignment_2 : ( RULE_ID ) ;
     public final void rule__PerspectivePartStack__ElementIdAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21941:1: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21942:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21989:1: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21990:2: ( RULE_ID )
             {
-            // InternalPerspectiveDsl.g:21942:2: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21943:3: RULE_ID
+            // InternalPerspectiveDsl.g:21990:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21991:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementIdIDTerminalRuleCall_2_0()); 
@@ -71853,23 +72038,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__SelectedElementAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:21952:1: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22000:1: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectivePartStack__SelectedElementAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21956:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21957:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22004:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22005:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21957:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21958:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22005:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22006:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementPerspectivePartCrossReference_3_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21959:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21960:4: RULE_ID
+            // InternalPerspectiveDsl.g:22007:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22008:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementPerspectivePartIDTerminalRuleCall_3_0_1_0_1()); 
@@ -71906,23 +72091,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__SynchronizeAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:21971:1: rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22019:1: rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectivePartStack__SynchronizeAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21975:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21976:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22023:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22024:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21976:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21977:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22024:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22025:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSynchronizePerspectivePartStackCrossReference_3_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21978:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21979:4: RULE_ID
+            // InternalPerspectiveDsl.g:22026:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22027:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSynchronizePerspectivePartStackIDTerminalRuleCall_3_1_1_0_1()); 
@@ -71959,17 +72144,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__ContainerDataAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:21990:1: rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:22038:1: rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePartStack__ContainerDataAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21994:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21995:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22042:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22043:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21995:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21996:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22043:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22044:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getContainerDataSTRINGTerminalRuleCall_3_2_1_0()); 
@@ -72000,17 +72185,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1"
-    // InternalPerspectiveDsl.g:22005:1: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:22053:1: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22009:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:22010:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22057:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22058:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:22010:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:22011:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22058:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22059:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_3_1_0()); 
@@ -72041,17 +72226,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__ElementsAssignment_5"
-    // InternalPerspectiveDsl.g:22020:1: rule__PerspectivePartStack__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
+    // InternalPerspectiveDsl.g:22068:1: rule__PerspectivePartStack__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
     public final void rule__PerspectivePartStack__ElementsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22024:1: ( ( rulePerspectiveElement ) )
-            // InternalPerspectiveDsl.g:22025:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:22072:1: ( ( rulePerspectiveElement ) )
+            // InternalPerspectiveDsl.g:22073:2: ( rulePerspectiveElement )
             {
-            // InternalPerspectiveDsl.g:22025:2: ( rulePerspectiveElement )
-            // InternalPerspectiveDsl.g:22026:3: rulePerspectiveElement
+            // InternalPerspectiveDsl.g:22073:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:22074:3: rulePerspectiveElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementsPerspectiveElementParserRuleCall_5_0()); 
@@ -72086,17 +72271,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__ElementIdAssignment_2"
-    // InternalPerspectiveDsl.g:22035:1: rule__PerspectivePart__ElementIdAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalPerspectiveDsl.g:22083:1: rule__PerspectivePart__ElementIdAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__PerspectivePart__ElementIdAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22039:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalPerspectiveDsl.g:22040:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:22087:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalPerspectiveDsl.g:22088:2: ( ruleTRANSLATABLEID )
             {
-            // InternalPerspectiveDsl.g:22040:2: ( ruleTRANSLATABLEID )
-            // InternalPerspectiveDsl.g:22041:3: ruleTRANSLATABLEID
+            // InternalPerspectiveDsl.g:22088:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:22089:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getElementIdTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -72131,17 +72316,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__ContainerDataAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:22050:1: rule__PerspectivePart__ContainerDataAssignment_3_0_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:22098:1: rule__PerspectivePart__ContainerDataAssignment_3_0_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePart__ContainerDataAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22054:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:22055:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22102:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22103:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:22055:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:22056:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22103:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22104:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getContainerDataSTRINGTerminalRuleCall_3_0_1_0()); 
@@ -72172,17 +72357,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:22065:1: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:22113:1: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22069:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:22070:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22117:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22118:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:22070:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:22071:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22118:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22119:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_1_1_0()); 
@@ -72213,17 +72398,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__IconURIAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:22080:1: rule__PerspectivePart__IconURIAssignment_3_2_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:22128:1: rule__PerspectivePart__IconURIAssignment_3_2_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePart__IconURIAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22084:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:22085:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22132:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22133:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:22085:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:22086:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22133:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22134:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURISTRINGTerminalRuleCall_3_2_1_0()); 
@@ -72254,17 +72439,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__ViewAssignment_3_3_1"
-    // InternalPerspectiveDsl.g:22095:1: rule__PerspectivePart__ViewAssignment_3_3_1 : ( rulePerspectiveView ) ;
+    // InternalPerspectiveDsl.g:22143:1: rule__PerspectivePart__ViewAssignment_3_3_1 : ( rulePerspectiveView ) ;
     public final void rule__PerspectivePart__ViewAssignment_3_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22099:1: ( ( rulePerspectiveView ) )
-            // InternalPerspectiveDsl.g:22100:2: ( rulePerspectiveView )
+            // InternalPerspectiveDsl.g:22147:1: ( ( rulePerspectiveView ) )
+            // InternalPerspectiveDsl.g:22148:2: ( rulePerspectiveView )
             {
-            // InternalPerspectiveDsl.g:22100:2: ( rulePerspectiveView )
-            // InternalPerspectiveDsl.g:22101:3: rulePerspectiveView
+            // InternalPerspectiveDsl.g:22148:2: ( rulePerspectiveView )
+            // InternalPerspectiveDsl.g:22149:3: rulePerspectiveView
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewPerspectiveViewParserRuleCall_3_3_1_0()); 
@@ -72299,23 +72484,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__IsClosableAssignment_3_4"
-    // InternalPerspectiveDsl.g:22110:1: rule__PerspectivePart__IsClosableAssignment_3_4 : ( ( 'isClosable' ) ) ;
+    // InternalPerspectiveDsl.g:22158:1: rule__PerspectivePart__IsClosableAssignment_3_4 : ( ( 'isClosable' ) ) ;
     public final void rule__PerspectivePart__IsClosableAssignment_3_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22114:1: ( ( ( 'isClosable' ) ) )
-            // InternalPerspectiveDsl.g:22115:2: ( ( 'isClosable' ) )
+            // InternalPerspectiveDsl.g:22162:1: ( ( ( 'isClosable' ) ) )
+            // InternalPerspectiveDsl.g:22163:2: ( ( 'isClosable' ) )
             {
-            // InternalPerspectiveDsl.g:22115:2: ( ( 'isClosable' ) )
-            // InternalPerspectiveDsl.g:22116:3: ( 'isClosable' )
+            // InternalPerspectiveDsl.g:22163:2: ( ( 'isClosable' ) )
+            // InternalPerspectiveDsl.g:22164:3: ( 'isClosable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIsClosableIsClosableKeyword_3_4_0()); 
             }
-            // InternalPerspectiveDsl.g:22117:3: ( 'isClosable' )
-            // InternalPerspectiveDsl.g:22118:4: 'isClosable'
+            // InternalPerspectiveDsl.g:22165:3: ( 'isClosable' )
+            // InternalPerspectiveDsl.g:22166:4: 'isClosable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIsClosableIsClosableKeyword_3_4_0()); 
@@ -72352,17 +72537,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__NameAssignment_1"
-    // InternalPerspectiveDsl.g:22129:1: rule__PerspectiveEventManager__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalPerspectiveDsl.g:22177:1: rule__PerspectiveEventManager__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__PerspectiveEventManager__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22133:1: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22134:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22181:1: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22182:2: ( RULE_ID )
             {
-            // InternalPerspectiveDsl.g:22134:2: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22135:3: RULE_ID
+            // InternalPerspectiveDsl.g:22182:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22183:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getNameIDTerminalRuleCall_1_0()); 
@@ -72393,17 +72578,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__EventsAssignment_3"
-    // InternalPerspectiveDsl.g:22144:1: rule__PerspectiveEventManager__EventsAssignment_3 : ( rulePerspectiveEvent ) ;
+    // InternalPerspectiveDsl.g:22192:1: rule__PerspectiveEventManager__EventsAssignment_3 : ( rulePerspectiveEvent ) ;
     public final void rule__PerspectiveEventManager__EventsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22148:1: ( ( rulePerspectiveEvent ) )
-            // InternalPerspectiveDsl.g:22149:2: ( rulePerspectiveEvent )
+            // InternalPerspectiveDsl.g:22196:1: ( ( rulePerspectiveEvent ) )
+            // InternalPerspectiveDsl.g:22197:2: ( rulePerspectiveEvent )
             {
-            // InternalPerspectiveDsl.g:22149:2: ( rulePerspectiveEvent )
-            // InternalPerspectiveDsl.g:22150:3: rulePerspectiveEvent
+            // InternalPerspectiveDsl.g:22197:2: ( rulePerspectiveEvent )
+            // InternalPerspectiveDsl.g:22198:3: rulePerspectiveEvent
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getEventsPerspectiveEventParserRuleCall_3_0()); 
@@ -72438,23 +72623,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__TargetAssignment_2"
-    // InternalPerspectiveDsl.g:22159:1: rule__PerspectiveEvent__TargetAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22207:1: rule__PerspectiveEvent__TargetAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveEvent__TargetAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22163:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22164:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22211:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22212:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22164:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22165:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22212:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22213:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getTargetPerspectivePartCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22166:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22167:4: RULE_ID
+            // InternalPerspectiveDsl.g:22214:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22215:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getTargetPerspectivePartIDTerminalRuleCall_2_0_1()); 
@@ -72491,23 +72676,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__AllowedsourcesAssignment_5"
-    // InternalPerspectiveDsl.g:22178:1: rule__PerspectiveEvent__AllowedsourcesAssignment_5 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22226:1: rule__PerspectiveEvent__AllowedsourcesAssignment_5 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveEvent__AllowedsourcesAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22182:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22183:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22230:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22231:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22183:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22184:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22231:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22232:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getAllowedsourcesPerspectivePartCrossReference_5_0()); 
             }
-            // InternalPerspectiveDsl.g:22185:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22186:4: RULE_ID
+            // InternalPerspectiveDsl.g:22233:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22234:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getAllowedsourcesPerspectivePartIDTerminalRuleCall_5_0_1()); 
@@ -72544,23 +72729,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22197:1: rule__PerspectiveSelection__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22245:1: rule__PerspectiveSelection__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveSelection__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22201:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22202:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22249:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22250:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22202:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22203:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22250:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22251:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getRefTableCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22204:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22205:4: RULE_ID
+            // InternalPerspectiveDsl.g:22252:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22253:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getRefTableIDTerminalRuleCall_2_0_1()); 
@@ -72597,23 +72782,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22216:1: rule__PerspectiveTable__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22264:1: rule__PerspectiveTable__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveTable__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22220:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22221:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22268:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22269:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22221:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22222:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22269:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22270:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getRefTableCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22223:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22224:4: RULE_ID
+            // InternalPerspectiveDsl.g:22271:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22272:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getRefTableIDTerminalRuleCall_2_0_1()); 
@@ -72650,23 +72835,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22235:1: rule__PerspectiveGrid__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22283:1: rule__PerspectiveGrid__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveGrid__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22239:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22240:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22287:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22288:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22240:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22241:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22288:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22289:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getRefTableCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22242:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22243:4: RULE_ID
+            // InternalPerspectiveDsl.g:22290:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22291:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getRefTableIDTerminalRuleCall_2_0_1()); 
@@ -72703,23 +72888,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22254:1: rule__PerspectiveChart__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22302:1: rule__PerspectiveChart__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveChart__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22258:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22259:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22306:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22307:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22259:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22260:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22307:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22308:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getRefChartCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22261:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22262:4: RULE_ID
+            // InternalPerspectiveDsl.g:22309:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22310:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getRefChartIDTerminalRuleCall_2_0_1()); 
@@ -72756,23 +72941,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22273:1: rule__PerspectiveReport__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22321:1: rule__PerspectiveReport__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveReport__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22277:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22278:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22325:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22326:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22278:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22279:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22326:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22327:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getRefReportCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22280:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22281:4: RULE_ID
+            // InternalPerspectiveDsl.g:22328:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22329:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getRefReportIDTerminalRuleCall_2_0_1()); 
@@ -72809,23 +72994,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22292:1: rule__PerspectiveOrganization__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22340:1: rule__PerspectiveOrganization__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveOrganization__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22296:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22297:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22344:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22345:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22297:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22298:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22345:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22346:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getRefOrganizationCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22299:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22300:4: RULE_ID
+            // InternalPerspectiveDsl.g:22347:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22348:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getRefOrganizationIDTerminalRuleCall_2_0_1()); 
@@ -72862,23 +73047,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22311:1: rule__PerspectiveTopology__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22359:1: rule__PerspectiveTopology__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveTopology__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22315:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22316:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22363:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22364:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22316:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22317:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22364:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22365:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getRefTopologyCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22318:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22319:4: RULE_ID
+            // InternalPerspectiveDsl.g:22366:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22367:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getRefTopologyIDTerminalRuleCall_2_0_1()); 
@@ -72915,23 +73100,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22330:1: rule__PerspectiveDialog__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22378:1: rule__PerspectiveDialog__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveDialog__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22334:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22335:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22382:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22383:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22335:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22336:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22383:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22384:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getRefDialogCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22337:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22338:4: RULE_ID
+            // InternalPerspectiveDsl.g:22385:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22386:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getRefDialogIDTerminalRuleCall_2_0_1()); 
@@ -72968,23 +73153,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__DtoRefAssignment_3"
-    // InternalPerspectiveDsl.g:22349:1: rule__PerspectiveKanban__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22397:1: rule__PerspectiveKanban__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveKanban__DtoRefAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22353:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22354:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22401:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22402:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22354:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22355:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22402:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22403:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDtoRefLDtoCrossReference_3_0()); 
             }
-            // InternalPerspectiveDsl.g:22356:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22357:4: RULE_ID
+            // InternalPerspectiveDsl.g:22404:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22405:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDtoRefLDtoIDTerminalRuleCall_3_0_1()); 
@@ -73021,23 +73206,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__CardRefAssignment_5"
-    // InternalPerspectiveDsl.g:22368:1: rule__PerspectiveKanban__CardRefAssignment_5 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22416:1: rule__PerspectiveKanban__CardRefAssignment_5 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveKanban__CardRefAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22372:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22373:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22420:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22421:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22373:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22374:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22421:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22422:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardRefDialogCrossReference_5_0()); 
             }
-            // InternalPerspectiveDsl.g:22375:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22376:4: RULE_ID
+            // InternalPerspectiveDsl.g:22423:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22424:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardRefDialogIDTerminalRuleCall_5_0_1()); 
@@ -73074,23 +73259,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__DialogRefAssignment_7"
-    // InternalPerspectiveDsl.g:22387:1: rule__PerspectiveKanban__DialogRefAssignment_7 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22435:1: rule__PerspectiveKanban__DialogRefAssignment_7 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveKanban__DialogRefAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22391:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22392:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22439:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22440:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22392:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22393:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22440:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22441:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogRefDialogCrossReference_7_0()); 
             }
-            // InternalPerspectiveDsl.g:22394:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22395:4: RULE_ID
+            // InternalPerspectiveDsl.g:22442:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22443:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogRefDialogIDTerminalRuleCall_7_0_1()); 
@@ -73127,23 +73312,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__DtoRefAssignment_3"
-    // InternalPerspectiveDsl.g:22406:1: rule__PerspectiveSearch__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22454:1: rule__PerspectiveSearch__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveSearch__DtoRefAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22410:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22411:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22458:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22459:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22411:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22412:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22459:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22460:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDtoRefLDtoCrossReference_3_0()); 
             }
-            // InternalPerspectiveDsl.g:22413:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22414:4: RULE_ID
+            // InternalPerspectiveDsl.g:22461:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22462:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDtoRefLDtoIDTerminalRuleCall_3_0_1()); 
@@ -73180,17 +73365,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__DepthAssignment_4_0_1"
-    // InternalPerspectiveDsl.g:22425:1: rule__PerspectiveSearch__DepthAssignment_4_0_1 : ( RULE_INT ) ;
+    // InternalPerspectiveDsl.g:22473:1: rule__PerspectiveSearch__DepthAssignment_4_0_1 : ( RULE_INT ) ;
     public final void rule__PerspectiveSearch__DepthAssignment_4_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22429:1: ( ( RULE_INT ) )
-            // InternalPerspectiveDsl.g:22430:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:22477:1: ( ( RULE_INT ) )
+            // InternalPerspectiveDsl.g:22478:2: ( RULE_INT )
             {
-            // InternalPerspectiveDsl.g:22430:2: ( RULE_INT )
-            // InternalPerspectiveDsl.g:22431:3: RULE_INT
+            // InternalPerspectiveDsl.g:22478:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:22479:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthINTTerminalRuleCall_4_0_1_0()); 
@@ -73221,17 +73406,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__FilterColsAssignment_4_1_1"
-    // InternalPerspectiveDsl.g:22440:1: rule__PerspectiveSearch__FilterColsAssignment_4_1_1 : ( RULE_INT ) ;
+    // InternalPerspectiveDsl.g:22488:1: rule__PerspectiveSearch__FilterColsAssignment_4_1_1 : ( RULE_INT ) ;
     public final void rule__PerspectiveSearch__FilterColsAssignment_4_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22444:1: ( ( RULE_INT ) )
-            // InternalPerspectiveDsl.g:22445:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:22492:1: ( ( RULE_INT ) )
+            // InternalPerspectiveDsl.g:22493:2: ( RULE_INT )
             {
-            // InternalPerspectiveDsl.g:22445:2: ( RULE_INT )
-            // InternalPerspectiveDsl.g:22446:3: RULE_INT
+            // InternalPerspectiveDsl.g:22493:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:22494:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColsINTTerminalRuleCall_4_1_1_0()); 
@@ -73262,23 +73447,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__RefAssignment_2"
-    // InternalPerspectiveDsl.g:22455:1: rule__PerspectiveDataInterchange__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:22503:1: rule__PerspectiveDataInterchange__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveDataInterchange__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22459:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:22460:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22507:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:22508:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:22460:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:22461:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22508:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:22509:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getRefDataInterchangeGroupCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22462:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:22463:4: RULE_ID
+            // InternalPerspectiveDsl.g:22510:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:22511:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getRefDataInterchangeGroupIDTerminalRuleCall_2_0_1()); 
@@ -73315,17 +73500,17 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__HtmlNameAssignment_2"
-    // InternalPerspectiveDsl.g:22474:1: rule__PerspectiveTitle__HtmlNameAssignment_2 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:22522:1: rule__PerspectiveTitle__HtmlNameAssignment_2 : ( RULE_STRING ) ;
     public final void rule__PerspectiveTitle__HtmlNameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22478:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:22479:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22526:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22527:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:22479:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:22480:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22527:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22528:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTitleAccess().getHtmlNameSTRINGTerminalRuleCall_2_0()); 
@@ -73356,17 +73541,17 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__NameAssignment_2"
-    // InternalPerspectiveDsl.g:22489:1: rule__PerspectiveDashboard__NameAssignment_2 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:22537:1: rule__PerspectiveDashboard__NameAssignment_2 : ( RULE_STRING ) ;
     public final void rule__PerspectiveDashboard__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22493:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:22494:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22541:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22542:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:22494:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:22495:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22542:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22543:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDashboardAccess().getNameSTRINGTerminalRuleCall_2_0()); 
@@ -73396,25 +73581,25 @@
     // $ANTLR end "rule__PerspectiveDashboard__NameAssignment_2"
 
 
-    // $ANTLR start "rule__PerspectiveBrowser__UrlAssignment_3"
-    // InternalPerspectiveDsl.g:22504:1: rule__PerspectiveBrowser__UrlAssignment_3 : ( RULE_STRING ) ;
-    public final void rule__PerspectiveBrowser__UrlAssignment_3() throws RecognitionException {
+    // $ANTLR start "rule__PerspectiveBrowser__UrlAssignment_2_0_1"
+    // InternalPerspectiveDsl.g:22552:1: rule__PerspectiveBrowser__UrlAssignment_2_0_1 : ( RULE_STRING ) ;
+    public final void rule__PerspectiveBrowser__UrlAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22508:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:22509:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22556:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:22557:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:22509:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:22510:3: RULE_STRING
+            // InternalPerspectiveDsl.g:22557:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:22558:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_3_0()); 
+               before(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_2_0_1_0()); 
             }
             match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_3_0()); 
+               after(grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_2_0_1_0()); 
             }
 
             }
@@ -73434,27 +73619,80 @@
         }
         return ;
     }
-    // $ANTLR end "rule__PerspectiveBrowser__UrlAssignment_3"
+    // $ANTLR end "rule__PerspectiveBrowser__UrlAssignment_2_0_1"
+
+
+    // $ANTLR start "rule__PerspectiveBrowser__CubeViewAssignment_2_1"
+    // InternalPerspectiveDsl.g:22567:1: rule__PerspectiveBrowser__CubeViewAssignment_2_1 : ( ( 'cubeView' ) ) ;
+    public final void rule__PerspectiveBrowser__CubeViewAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:22571:1: ( ( ( 'cubeView' ) ) )
+            // InternalPerspectiveDsl.g:22572:2: ( ( 'cubeView' ) )
+            {
+            // InternalPerspectiveDsl.g:22572:2: ( ( 'cubeView' ) )
+            // InternalPerspectiveDsl.g:22573:3: ( 'cubeView' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); 
+            }
+            // InternalPerspectiveDsl.g:22574:3: ( 'cubeView' )
+            // InternalPerspectiveDsl.g:22575:4: 'cubeView'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); 
+            }
+            match(input,128,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectiveBrowser__CubeViewAssignment_2_1"
 
 
     // $ANTLR start "rule__XImportDeclaration__StaticAssignment_2_0_0"
-    // InternalPerspectiveDsl.g:22519:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
+    // InternalPerspectiveDsl.g:22586:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
     public final void rule__XImportDeclaration__StaticAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22523:1: ( ( ( 'static' ) ) )
-            // InternalPerspectiveDsl.g:22524:2: ( ( 'static' ) )
+            // InternalPerspectiveDsl.g:22590:1: ( ( ( 'static' ) ) )
+            // InternalPerspectiveDsl.g:22591:2: ( ( 'static' ) )
             {
-            // InternalPerspectiveDsl.g:22524:2: ( ( 'static' ) )
-            // InternalPerspectiveDsl.g:22525:3: ( 'static' )
+            // InternalPerspectiveDsl.g:22591:2: ( ( 'static' ) )
+            // InternalPerspectiveDsl.g:22592:3: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:22526:3: ( 'static' )
-            // InternalPerspectiveDsl.g:22527:4: 'static'
+            // InternalPerspectiveDsl.g:22593:3: ( 'static' )
+            // InternalPerspectiveDsl.g:22594:4: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
@@ -73491,23 +73729,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
-    // InternalPerspectiveDsl.g:22538:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
+    // InternalPerspectiveDsl.g:22605:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
     public final void rule__XImportDeclaration__ExtensionAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22542:1: ( ( ( 'extension' ) ) )
-            // InternalPerspectiveDsl.g:22543:2: ( ( 'extension' ) )
+            // InternalPerspectiveDsl.g:22609:1: ( ( ( 'extension' ) ) )
+            // InternalPerspectiveDsl.g:22610:2: ( ( 'extension' ) )
             {
-            // InternalPerspectiveDsl.g:22543:2: ( ( 'extension' ) )
-            // InternalPerspectiveDsl.g:22544:3: ( 'extension' )
+            // InternalPerspectiveDsl.g:22610:2: ( ( 'extension' ) )
+            // InternalPerspectiveDsl.g:22611:3: ( 'extension' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22545:3: ( 'extension' )
-            // InternalPerspectiveDsl.g:22546:4: 'extension'
+            // InternalPerspectiveDsl.g:22612:3: ( 'extension' )
+            // InternalPerspectiveDsl.g:22613:4: 'extension'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
@@ -73544,23 +73782,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
-    // InternalPerspectiveDsl.g:22557:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
+    // InternalPerspectiveDsl.g:22624:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22561:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
-            // InternalPerspectiveDsl.g:22562:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalPerspectiveDsl.g:22628:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
+            // InternalPerspectiveDsl.g:22629:2: ( ( ruleQualifiedNameInStaticImport ) )
             {
-            // InternalPerspectiveDsl.g:22562:2: ( ( ruleQualifiedNameInStaticImport ) )
-            // InternalPerspectiveDsl.g:22563:3: ( ruleQualifiedNameInStaticImport )
+            // InternalPerspectiveDsl.g:22629:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalPerspectiveDsl.g:22630:3: ( ruleQualifiedNameInStaticImport )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22564:3: ( ruleQualifiedNameInStaticImport )
-            // InternalPerspectiveDsl.g:22565:4: ruleQualifiedNameInStaticImport
+            // InternalPerspectiveDsl.g:22631:3: ( ruleQualifiedNameInStaticImport )
+            // InternalPerspectiveDsl.g:22632:4: ruleQualifiedNameInStaticImport
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
@@ -73601,23 +73839,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
-    // InternalPerspectiveDsl.g:22576:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
+    // InternalPerspectiveDsl.g:22643:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
     public final void rule__XImportDeclaration__WildcardAssignment_2_0_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22580:1: ( ( ( '*' ) ) )
-            // InternalPerspectiveDsl.g:22581:2: ( ( '*' ) )
+            // InternalPerspectiveDsl.g:22647:1: ( ( ( '*' ) ) )
+            // InternalPerspectiveDsl.g:22648:2: ( ( '*' ) )
             {
-            // InternalPerspectiveDsl.g:22581:2: ( ( '*' ) )
-            // InternalPerspectiveDsl.g:22582:3: ( '*' )
+            // InternalPerspectiveDsl.g:22648:2: ( ( '*' ) )
+            // InternalPerspectiveDsl.g:22649:3: ( '*' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:22583:3: ( '*' )
-            // InternalPerspectiveDsl.g:22584:4: '*'
+            // InternalPerspectiveDsl.g:22650:3: ( '*' )
+            // InternalPerspectiveDsl.g:22651:4: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
@@ -73654,17 +73892,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
-    // InternalPerspectiveDsl.g:22595:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:22662: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 {
-            // InternalPerspectiveDsl.g:22599:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:22600:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:22666:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:22667:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:22600:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:22601:3: ruleValidID
+            // InternalPerspectiveDsl.g:22667:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:22668:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
@@ -73699,23 +73937,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
-    // InternalPerspectiveDsl.g:22610:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:22677:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22614:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:22615:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:22681:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:22682:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:22615:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:22616:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:22682:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:22683:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22617:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:22618:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:22684:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:22685:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
@@ -73756,17 +73994,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
-    // InternalPerspectiveDsl.g:22629:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
+    // InternalPerspectiveDsl.g:22696:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
     public final void rule__XImportDeclaration__ImportedNamespaceAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22633:1: ( ( ruleQualifiedNameWithWildcard ) )
-            // InternalPerspectiveDsl.g:22634:2: ( ruleQualifiedNameWithWildcard )
+            // InternalPerspectiveDsl.g:22700:1: ( ( ruleQualifiedNameWithWildcard ) )
+            // InternalPerspectiveDsl.g:22701:2: ( ruleQualifiedNameWithWildcard )
             {
-            // InternalPerspectiveDsl.g:22634:2: ( ruleQualifiedNameWithWildcard )
-            // InternalPerspectiveDsl.g:22635:3: ruleQualifiedNameWithWildcard
+            // InternalPerspectiveDsl.g:22701:2: ( ruleQualifiedNameWithWildcard )
+            // InternalPerspectiveDsl.g:22702:3: ruleQualifiedNameWithWildcard
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
@@ -73801,28 +74039,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
-    // InternalPerspectiveDsl.g:22644:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
+    // InternalPerspectiveDsl.g:22711:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
     public final void rule__XImportDeclaration__FqnImportAssignment_2_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22648:1: ( ( ( 'ns' ) ) )
-            // InternalPerspectiveDsl.g:22649:2: ( ( 'ns' ) )
+            // InternalPerspectiveDsl.g:22715:1: ( ( ( 'ns' ) ) )
+            // InternalPerspectiveDsl.g:22716:2: ( ( 'ns' ) )
             {
-            // InternalPerspectiveDsl.g:22649:2: ( ( 'ns' ) )
-            // InternalPerspectiveDsl.g:22650:3: ( 'ns' )
+            // InternalPerspectiveDsl.g:22716:2: ( ( 'ns' ) )
+            // InternalPerspectiveDsl.g:22717:3: ( 'ns' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:22651:3: ( 'ns' )
-            // InternalPerspectiveDsl.g:22652:4: 'ns'
+            // InternalPerspectiveDsl.g:22718:3: ( 'ns' )
+            // InternalPerspectiveDsl.g:22719:4: 'ns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            match(input,128,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()); 
             }
@@ -73854,17 +74092,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
-    // InternalPerspectiveDsl.g:22663:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
+    // InternalPerspectiveDsl.g:22730:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
     public final void rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22667:1: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:22668:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:22734:1: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:22735:2: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:22668:2: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:22669:3: ruleQualifiedName
+            // InternalPerspectiveDsl.g:22735:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:22736:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
@@ -73899,23 +74137,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__AnnotationTypeAssignment_2"
-    // InternalPerspectiveDsl.g:22678:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:22745:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22682:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:22683:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:22749:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:22750:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:22683:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:22684:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:22750:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:22751:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22685:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:22686:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:22752:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:22753:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
@@ -73956,17 +74194,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
-    // InternalPerspectiveDsl.g:22697:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalPerspectiveDsl.g:22764: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 {
-            // InternalPerspectiveDsl.g:22701:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalPerspectiveDsl.g:22702:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:22768:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalPerspectiveDsl.g:22769:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalPerspectiveDsl.g:22702:2: ( ruleXAnnotationElementValuePair )
-            // InternalPerspectiveDsl.g:22703:3: ruleXAnnotationElementValuePair
+            // InternalPerspectiveDsl.g:22769:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:22770:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
@@ -74001,17 +74239,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
-    // InternalPerspectiveDsl.g:22712:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalPerspectiveDsl.g:22779: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 {
-            // InternalPerspectiveDsl.g:22716:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalPerspectiveDsl.g:22717:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:22783:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalPerspectiveDsl.g:22784:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalPerspectiveDsl.g:22717:2: ( ruleXAnnotationElementValuePair )
-            // InternalPerspectiveDsl.g:22718:3: ruleXAnnotationElementValuePair
+            // InternalPerspectiveDsl.g:22784:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:22785:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
@@ -74046,17 +74284,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ValueAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:22727:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
+    // InternalPerspectiveDsl.g:22794:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
     public final void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22731:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
-            // InternalPerspectiveDsl.g:22732:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalPerspectiveDsl.g:22798:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
+            // InternalPerspectiveDsl.g:22799:2: ( ruleXAnnotationElementValueOrCommaList )
             {
-            // InternalPerspectiveDsl.g:22732:2: ( ruleXAnnotationElementValueOrCommaList )
-            // InternalPerspectiveDsl.g:22733:3: ruleXAnnotationElementValueOrCommaList
+            // InternalPerspectiveDsl.g:22799:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalPerspectiveDsl.g:22800:3: ruleXAnnotationElementValueOrCommaList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
@@ -74091,23 +74329,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
-    // InternalPerspectiveDsl.g:22742:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
+    // InternalPerspectiveDsl.g:22809:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
     public final void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22746:1: ( ( ( ruleValidID ) ) )
-            // InternalPerspectiveDsl.g:22747:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:22813:1: ( ( ( ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:22814:2: ( ( ruleValidID ) )
             {
-            // InternalPerspectiveDsl.g:22747:2: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:22748:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:22814:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:22815:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:22749:3: ( ruleValidID )
-            // InternalPerspectiveDsl.g:22750:4: ruleValidID
+            // InternalPerspectiveDsl.g:22816:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:22817:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
@@ -74148,17 +74386,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ValueAssignment_1"
-    // InternalPerspectiveDsl.g:22761:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
+    // InternalPerspectiveDsl.g:22828:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
     public final void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22765:1: ( ( ruleXAnnotationElementValue ) )
-            // InternalPerspectiveDsl.g:22766:2: ( ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:22832:1: ( ( ruleXAnnotationElementValue ) )
+            // InternalPerspectiveDsl.g:22833:2: ( ruleXAnnotationElementValue )
             {
-            // InternalPerspectiveDsl.g:22766:2: ( ruleXAnnotationElementValue )
-            // InternalPerspectiveDsl.g:22767:3: ruleXAnnotationElementValue
+            // InternalPerspectiveDsl.g:22833:2: ( ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:22834:3: ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
@@ -74193,17 +74431,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
-    // InternalPerspectiveDsl.g:22776:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:22843:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22780:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:22781:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22847:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:22848:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:22781:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:22782:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:22848:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22849:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -74238,17 +74476,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
-    // InternalPerspectiveDsl.g:22791:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:22858: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 {
-            // InternalPerspectiveDsl.g:22795:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:22796:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22862:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:22863:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:22796:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:22797:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:22863:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22864:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -74283,17 +74521,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
-    // InternalPerspectiveDsl.g:22806:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:22873: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 {
-            // InternalPerspectiveDsl.g:22810:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:22811:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22877:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:22878:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:22811:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:22812:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:22878:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22879:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
@@ -74328,17 +74566,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
-    // InternalPerspectiveDsl.g:22821:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:22888:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22825:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:22826:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22892:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:22893:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:22826:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:22827:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:22893:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22894:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -74373,17 +74611,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
-    // InternalPerspectiveDsl.g:22836:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:22903: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 {
-            // InternalPerspectiveDsl.g:22840:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:22841:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22907:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:22908:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:22841:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:22842:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:22908:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:22909:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -74418,23 +74656,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
-    // InternalPerspectiveDsl.g:22851:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+    // InternalPerspectiveDsl.g:22918:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22855:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalPerspectiveDsl.g:22856:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:22922:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalPerspectiveDsl.g:22923:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalPerspectiveDsl.g:22856:2: ( ( ruleFeatureCallID ) )
-            // InternalPerspectiveDsl.g:22857:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:22923:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:22924:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22858:3: ( ruleFeatureCallID )
-            // InternalPerspectiveDsl.g:22859:4: ruleFeatureCallID
+            // InternalPerspectiveDsl.g:22925:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:22926:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
@@ -74475,17 +74713,17 @@
 
 
     // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
-    // InternalPerspectiveDsl.g:22870:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+    // InternalPerspectiveDsl.g:22937:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22874:1: ( ( ruleXAssignment ) )
-            // InternalPerspectiveDsl.g:22875:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:22941:1: ( ( ruleXAssignment ) )
+            // InternalPerspectiveDsl.g:22942:2: ( ruleXAssignment )
             {
-            // InternalPerspectiveDsl.g:22875:2: ( ruleXAssignment )
-            // InternalPerspectiveDsl.g:22876:3: ruleXAssignment
+            // InternalPerspectiveDsl.g:22942:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:22943:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
@@ -74520,23 +74758,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
-    // InternalPerspectiveDsl.g:22885:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+    // InternalPerspectiveDsl.g:22952: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 {
-            // InternalPerspectiveDsl.g:22889:1: ( ( ( ruleOpMultiAssign ) ) )
-            // InternalPerspectiveDsl.g:22890:2: ( ( ruleOpMultiAssign ) )
+            // InternalPerspectiveDsl.g:22956:1: ( ( ( ruleOpMultiAssign ) ) )
+            // InternalPerspectiveDsl.g:22957:2: ( ( ruleOpMultiAssign ) )
             {
-            // InternalPerspectiveDsl.g:22890:2: ( ( ruleOpMultiAssign ) )
-            // InternalPerspectiveDsl.g:22891:3: ( ruleOpMultiAssign )
+            // InternalPerspectiveDsl.g:22957:2: ( ( ruleOpMultiAssign ) )
+            // InternalPerspectiveDsl.g:22958:3: ( ruleOpMultiAssign )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22892:3: ( ruleOpMultiAssign )
-            // InternalPerspectiveDsl.g:22893:4: ruleOpMultiAssign
+            // InternalPerspectiveDsl.g:22959:3: ( ruleOpMultiAssign )
+            // InternalPerspectiveDsl.g:22960:4: ruleOpMultiAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
@@ -74577,17 +74815,17 @@
 
 
     // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
-    // InternalPerspectiveDsl.g:22904:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+    // InternalPerspectiveDsl.g:22971:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22908:1: ( ( ruleXAssignment ) )
-            // InternalPerspectiveDsl.g:22909:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:22975:1: ( ( ruleXAssignment ) )
+            // InternalPerspectiveDsl.g:22976:2: ( ruleXAssignment )
             {
-            // InternalPerspectiveDsl.g:22909:2: ( ruleXAssignment )
-            // InternalPerspectiveDsl.g:22910:3: ruleXAssignment
+            // InternalPerspectiveDsl.g:22976:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:22977:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
@@ -74622,23 +74860,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22919:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+    // InternalPerspectiveDsl.g:22986: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 {
-            // InternalPerspectiveDsl.g:22923:1: ( ( ( ruleOpOr ) ) )
-            // InternalPerspectiveDsl.g:22924:2: ( ( ruleOpOr ) )
+            // InternalPerspectiveDsl.g:22990:1: ( ( ( ruleOpOr ) ) )
+            // InternalPerspectiveDsl.g:22991:2: ( ( ruleOpOr ) )
             {
-            // InternalPerspectiveDsl.g:22924:2: ( ( ruleOpOr ) )
-            // InternalPerspectiveDsl.g:22925:3: ( ruleOpOr )
+            // InternalPerspectiveDsl.g:22991:2: ( ( ruleOpOr ) )
+            // InternalPerspectiveDsl.g:22992:3: ( ruleOpOr )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22926:3: ( ruleOpOr )
-            // InternalPerspectiveDsl.g:22927:4: ruleOpOr
+            // InternalPerspectiveDsl.g:22993:3: ( ruleOpOr )
+            // InternalPerspectiveDsl.g:22994:4: ruleOpOr
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
@@ -74679,17 +74917,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22938:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+    // InternalPerspectiveDsl.g:23005:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22942:1: ( ( ruleXAndExpression ) )
-            // InternalPerspectiveDsl.g:22943:2: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:23009:1: ( ( ruleXAndExpression ) )
+            // InternalPerspectiveDsl.g:23010:2: ( ruleXAndExpression )
             {
-            // InternalPerspectiveDsl.g:22943:2: ( ruleXAndExpression )
-            // InternalPerspectiveDsl.g:22944:3: ruleXAndExpression
+            // InternalPerspectiveDsl.g:23010:2: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:23011:3: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
@@ -74724,23 +74962,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22953:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+    // InternalPerspectiveDsl.g:23020: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 {
-            // InternalPerspectiveDsl.g:22957:1: ( ( ( ruleOpAnd ) ) )
-            // InternalPerspectiveDsl.g:22958:2: ( ( ruleOpAnd ) )
+            // InternalPerspectiveDsl.g:23024:1: ( ( ( ruleOpAnd ) ) )
+            // InternalPerspectiveDsl.g:23025:2: ( ( ruleOpAnd ) )
             {
-            // InternalPerspectiveDsl.g:22958:2: ( ( ruleOpAnd ) )
-            // InternalPerspectiveDsl.g:22959:3: ( ruleOpAnd )
+            // InternalPerspectiveDsl.g:23025:2: ( ( ruleOpAnd ) )
+            // InternalPerspectiveDsl.g:23026:3: ( ruleOpAnd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22960:3: ( ruleOpAnd )
-            // InternalPerspectiveDsl.g:22961:4: ruleOpAnd
+            // InternalPerspectiveDsl.g:23027:3: ( ruleOpAnd )
+            // InternalPerspectiveDsl.g:23028:4: ruleOpAnd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
@@ -74781,17 +75019,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22972:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+    // InternalPerspectiveDsl.g:23039:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22976:1: ( ( ruleXEqualityExpression ) )
-            // InternalPerspectiveDsl.g:22977:2: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:23043:1: ( ( ruleXEqualityExpression ) )
+            // InternalPerspectiveDsl.g:23044:2: ( ruleXEqualityExpression )
             {
-            // InternalPerspectiveDsl.g:22977:2: ( ruleXEqualityExpression )
-            // InternalPerspectiveDsl.g:22978:3: ruleXEqualityExpression
+            // InternalPerspectiveDsl.g:23044:2: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:23045:3: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
@@ -74826,23 +75064,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22987:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+    // InternalPerspectiveDsl.g:23054: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 {
-            // InternalPerspectiveDsl.g:22991:1: ( ( ( ruleOpEquality ) ) )
-            // InternalPerspectiveDsl.g:22992:2: ( ( ruleOpEquality ) )
+            // InternalPerspectiveDsl.g:23058:1: ( ( ( ruleOpEquality ) ) )
+            // InternalPerspectiveDsl.g:23059:2: ( ( ruleOpEquality ) )
             {
-            // InternalPerspectiveDsl.g:22992:2: ( ( ruleOpEquality ) )
-            // InternalPerspectiveDsl.g:22993:3: ( ruleOpEquality )
+            // InternalPerspectiveDsl.g:23059:2: ( ( ruleOpEquality ) )
+            // InternalPerspectiveDsl.g:23060:3: ( ruleOpEquality )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22994:3: ( ruleOpEquality )
-            // InternalPerspectiveDsl.g:22995:4: ruleOpEquality
+            // InternalPerspectiveDsl.g:23061:3: ( ruleOpEquality )
+            // InternalPerspectiveDsl.g:23062:4: ruleOpEquality
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
@@ -74883,17 +75121,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:23006:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+    // InternalPerspectiveDsl.g:23073:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23010:1: ( ( ruleXRelationalExpression ) )
-            // InternalPerspectiveDsl.g:23011:2: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:23077:1: ( ( ruleXRelationalExpression ) )
+            // InternalPerspectiveDsl.g:23078:2: ( ruleXRelationalExpression )
             {
-            // InternalPerspectiveDsl.g:23011:2: ( ruleXRelationalExpression )
-            // InternalPerspectiveDsl.g:23012:3: ruleXRelationalExpression
+            // InternalPerspectiveDsl.g:23078:2: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:23079:3: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
@@ -74928,17 +75166,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:23021:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23088:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23025:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23026:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23092:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23093:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23026:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23027:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23093:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23094:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
@@ -74973,23 +75211,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
-    // InternalPerspectiveDsl.g:23036:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+    // InternalPerspectiveDsl.g:23103: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 {
-            // InternalPerspectiveDsl.g:23040:1: ( ( ( ruleOpCompare ) ) )
-            // InternalPerspectiveDsl.g:23041:2: ( ( ruleOpCompare ) )
+            // InternalPerspectiveDsl.g:23107:1: ( ( ( ruleOpCompare ) ) )
+            // InternalPerspectiveDsl.g:23108:2: ( ( ruleOpCompare ) )
             {
-            // InternalPerspectiveDsl.g:23041:2: ( ( ruleOpCompare ) )
-            // InternalPerspectiveDsl.g:23042:3: ( ruleOpCompare )
+            // InternalPerspectiveDsl.g:23108:2: ( ( ruleOpCompare ) )
+            // InternalPerspectiveDsl.g:23109:3: ( ruleOpCompare )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23043:3: ( ruleOpCompare )
-            // InternalPerspectiveDsl.g:23044:4: ruleOpCompare
+            // InternalPerspectiveDsl.g:23110:3: ( ruleOpCompare )
+            // InternalPerspectiveDsl.g:23111:4: ruleOpCompare
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
@@ -75030,17 +75268,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
-    // InternalPerspectiveDsl.g:23055:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+    // InternalPerspectiveDsl.g:23122:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23059:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalPerspectiveDsl.g:23060:2: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:23126:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalPerspectiveDsl.g:23127:2: ( ruleXOtherOperatorExpression )
             {
-            // InternalPerspectiveDsl.g:23060:2: ( ruleXOtherOperatorExpression )
-            // InternalPerspectiveDsl.g:23061:3: ruleXOtherOperatorExpression
+            // InternalPerspectiveDsl.g:23127:2: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:23128:3: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
@@ -75075,23 +75313,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:23070:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+    // InternalPerspectiveDsl.g:23137: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 {
-            // InternalPerspectiveDsl.g:23074:1: ( ( ( ruleOpOther ) ) )
-            // InternalPerspectiveDsl.g:23075:2: ( ( ruleOpOther ) )
+            // InternalPerspectiveDsl.g:23141:1: ( ( ( ruleOpOther ) ) )
+            // InternalPerspectiveDsl.g:23142:2: ( ( ruleOpOther ) )
             {
-            // InternalPerspectiveDsl.g:23075:2: ( ( ruleOpOther ) )
-            // InternalPerspectiveDsl.g:23076:3: ( ruleOpOther )
+            // InternalPerspectiveDsl.g:23142:2: ( ( ruleOpOther ) )
+            // InternalPerspectiveDsl.g:23143:3: ( ruleOpOther )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23077:3: ( ruleOpOther )
-            // InternalPerspectiveDsl.g:23078:4: ruleOpOther
+            // InternalPerspectiveDsl.g:23144:3: ( ruleOpOther )
+            // InternalPerspectiveDsl.g:23145:4: ruleOpOther
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
@@ -75132,17 +75370,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:23089:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+    // InternalPerspectiveDsl.g:23156:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23093:1: ( ( ruleXAdditiveExpression ) )
-            // InternalPerspectiveDsl.g:23094:2: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:23160:1: ( ( ruleXAdditiveExpression ) )
+            // InternalPerspectiveDsl.g:23161:2: ( ruleXAdditiveExpression )
             {
-            // InternalPerspectiveDsl.g:23094:2: ( ruleXAdditiveExpression )
-            // InternalPerspectiveDsl.g:23095:3: ruleXAdditiveExpression
+            // InternalPerspectiveDsl.g:23161:2: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:23162:3: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
@@ -75177,23 +75415,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:23104:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+    // InternalPerspectiveDsl.g:23171: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 {
-            // InternalPerspectiveDsl.g:23108:1: ( ( ( ruleOpAdd ) ) )
-            // InternalPerspectiveDsl.g:23109:2: ( ( ruleOpAdd ) )
+            // InternalPerspectiveDsl.g:23175:1: ( ( ( ruleOpAdd ) ) )
+            // InternalPerspectiveDsl.g:23176:2: ( ( ruleOpAdd ) )
             {
-            // InternalPerspectiveDsl.g:23109:2: ( ( ruleOpAdd ) )
-            // InternalPerspectiveDsl.g:23110:3: ( ruleOpAdd )
+            // InternalPerspectiveDsl.g:23176:2: ( ( ruleOpAdd ) )
+            // InternalPerspectiveDsl.g:23177:3: ( ruleOpAdd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23111:3: ( ruleOpAdd )
-            // InternalPerspectiveDsl.g:23112:4: ruleOpAdd
+            // InternalPerspectiveDsl.g:23178:3: ( ruleOpAdd )
+            // InternalPerspectiveDsl.g:23179:4: ruleOpAdd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
@@ -75234,17 +75472,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:23123:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+    // InternalPerspectiveDsl.g:23190:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23127:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalPerspectiveDsl.g:23128:2: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:23194:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalPerspectiveDsl.g:23195:2: ( ruleXMultiplicativeExpression )
             {
-            // InternalPerspectiveDsl.g:23128:2: ( ruleXMultiplicativeExpression )
-            // InternalPerspectiveDsl.g:23129:3: ruleXMultiplicativeExpression
+            // InternalPerspectiveDsl.g:23195:2: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:23196:3: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
@@ -75279,23 +75517,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:23138:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+    // InternalPerspectiveDsl.g:23205: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 {
-            // InternalPerspectiveDsl.g:23142:1: ( ( ( ruleOpMulti ) ) )
-            // InternalPerspectiveDsl.g:23143:2: ( ( ruleOpMulti ) )
+            // InternalPerspectiveDsl.g:23209:1: ( ( ( ruleOpMulti ) ) )
+            // InternalPerspectiveDsl.g:23210:2: ( ( ruleOpMulti ) )
             {
-            // InternalPerspectiveDsl.g:23143:2: ( ( ruleOpMulti ) )
-            // InternalPerspectiveDsl.g:23144:3: ( ruleOpMulti )
+            // InternalPerspectiveDsl.g:23210:2: ( ( ruleOpMulti ) )
+            // InternalPerspectiveDsl.g:23211:3: ( ruleOpMulti )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23145:3: ( ruleOpMulti )
-            // InternalPerspectiveDsl.g:23146:4: ruleOpMulti
+            // InternalPerspectiveDsl.g:23212:3: ( ruleOpMulti )
+            // InternalPerspectiveDsl.g:23213:4: ruleOpMulti
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
@@ -75336,17 +75574,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:23157:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+    // InternalPerspectiveDsl.g:23224:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23161:1: ( ( ruleXUnaryOperation ) )
-            // InternalPerspectiveDsl.g:23162:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:23228:1: ( ( ruleXUnaryOperation ) )
+            // InternalPerspectiveDsl.g:23229:2: ( ruleXUnaryOperation )
             {
-            // InternalPerspectiveDsl.g:23162:2: ( ruleXUnaryOperation )
-            // InternalPerspectiveDsl.g:23163:3: ruleXUnaryOperation
+            // InternalPerspectiveDsl.g:23229:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:23230:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
@@ -75381,23 +75619,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
-    // InternalPerspectiveDsl.g:23172:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+    // InternalPerspectiveDsl.g:23239:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
     public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23176:1: ( ( ( ruleOpUnary ) ) )
-            // InternalPerspectiveDsl.g:23177:2: ( ( ruleOpUnary ) )
+            // InternalPerspectiveDsl.g:23243:1: ( ( ( ruleOpUnary ) ) )
+            // InternalPerspectiveDsl.g:23244:2: ( ( ruleOpUnary ) )
             {
-            // InternalPerspectiveDsl.g:23177:2: ( ( ruleOpUnary ) )
-            // InternalPerspectiveDsl.g:23178:3: ( ruleOpUnary )
+            // InternalPerspectiveDsl.g:23244:2: ( ( ruleOpUnary ) )
+            // InternalPerspectiveDsl.g:23245:3: ( ruleOpUnary )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23179:3: ( ruleOpUnary )
-            // InternalPerspectiveDsl.g:23180:4: ruleOpUnary
+            // InternalPerspectiveDsl.g:23246:3: ( ruleOpUnary )
+            // InternalPerspectiveDsl.g:23247:4: ruleOpUnary
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
@@ -75438,17 +75676,17 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
-    // InternalPerspectiveDsl.g:23191:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+    // InternalPerspectiveDsl.g:23258:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
     public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23195:1: ( ( ruleXUnaryOperation ) )
-            // InternalPerspectiveDsl.g:23196:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:23262:1: ( ( ruleXUnaryOperation ) )
+            // InternalPerspectiveDsl.g:23263:2: ( ruleXUnaryOperation )
             {
-            // InternalPerspectiveDsl.g:23196:2: ( ruleXUnaryOperation )
-            // InternalPerspectiveDsl.g:23197:3: ruleXUnaryOperation
+            // InternalPerspectiveDsl.g:23263:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:23264:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
@@ -75483,17 +75721,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
-    // InternalPerspectiveDsl.g:23206:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23273:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23210:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23211:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23277:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23278:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23211:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23212:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23278:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23279:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
@@ -75528,23 +75766,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:23221:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
+    // InternalPerspectiveDsl.g:23288:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
     public final void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23225:1: ( ( ( ruleOpPostfix ) ) )
-            // InternalPerspectiveDsl.g:23226:2: ( ( ruleOpPostfix ) )
+            // InternalPerspectiveDsl.g:23292:1: ( ( ( ruleOpPostfix ) ) )
+            // InternalPerspectiveDsl.g:23293:2: ( ( ruleOpPostfix ) )
             {
-            // InternalPerspectiveDsl.g:23226:2: ( ( ruleOpPostfix ) )
-            // InternalPerspectiveDsl.g:23227:3: ( ruleOpPostfix )
+            // InternalPerspectiveDsl.g:23293:2: ( ( ruleOpPostfix ) )
+            // InternalPerspectiveDsl.g:23294:3: ( ruleOpPostfix )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23228:3: ( ruleOpPostfix )
-            // InternalPerspectiveDsl.g:23229:4: ruleOpPostfix
+            // InternalPerspectiveDsl.g:23295:3: ( ruleOpPostfix )
+            // InternalPerspectiveDsl.g:23296:4: ruleOpPostfix
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
@@ -75585,28 +75823,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
-    // InternalPerspectiveDsl.g:23240:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+    // InternalPerspectiveDsl.g:23307: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 {
-            // InternalPerspectiveDsl.g:23244:1: ( ( ( '::' ) ) )
-            // InternalPerspectiveDsl.g:23245:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:23311:1: ( ( ( '::' ) ) )
+            // InternalPerspectiveDsl.g:23312:2: ( ( '::' ) )
             {
-            // InternalPerspectiveDsl.g:23245:2: ( ( '::' ) )
-            // InternalPerspectiveDsl.g:23246:3: ( '::' )
+            // InternalPerspectiveDsl.g:23312:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:23313:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23247:3: ( '::' )
-            // InternalPerspectiveDsl.g:23248:4: '::'
+            // InternalPerspectiveDsl.g:23314:3: ( '::' )
+            // InternalPerspectiveDsl.g:23315:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            match(input,129,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()); 
             }
@@ -75638,23 +75876,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
-    // InternalPerspectiveDsl.g:23259:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+    // InternalPerspectiveDsl.g:23326: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 {
-            // InternalPerspectiveDsl.g:23263:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalPerspectiveDsl.g:23264:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:23330:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalPerspectiveDsl.g:23331:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalPerspectiveDsl.g:23264:2: ( ( ruleFeatureCallID ) )
-            // InternalPerspectiveDsl.g:23265:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:23331:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:23332:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
             }
-            // InternalPerspectiveDsl.g:23266:3: ( ruleFeatureCallID )
-            // InternalPerspectiveDsl.g:23267:4: ruleFeatureCallID
+            // InternalPerspectiveDsl.g:23333:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:23334:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
@@ -75695,17 +75933,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:23278:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+    // InternalPerspectiveDsl.g:23345:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
     public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23282:1: ( ( ruleXAssignment ) )
-            // InternalPerspectiveDsl.g:23283:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:23349:1: ( ( ruleXAssignment ) )
+            // InternalPerspectiveDsl.g:23350:2: ( ruleXAssignment )
             {
-            // InternalPerspectiveDsl.g:23283:2: ( ruleXAssignment )
-            // InternalPerspectiveDsl.g:23284:3: ruleXAssignment
+            // InternalPerspectiveDsl.g:23350:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:23351:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
@@ -75740,28 +75978,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
-    // InternalPerspectiveDsl.g:23293:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+    // InternalPerspectiveDsl.g:23360: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 {
-            // InternalPerspectiveDsl.g:23297:1: ( ( ( '?.' ) ) )
-            // InternalPerspectiveDsl.g:23298:2: ( ( '?.' ) )
+            // InternalPerspectiveDsl.g:23364:1: ( ( ( '?.' ) ) )
+            // InternalPerspectiveDsl.g:23365:2: ( ( '?.' ) )
             {
-            // InternalPerspectiveDsl.g:23298:2: ( ( '?.' ) )
-            // InternalPerspectiveDsl.g:23299:3: ( '?.' )
+            // InternalPerspectiveDsl.g:23365:2: ( ( '?.' ) )
+            // InternalPerspectiveDsl.g:23366:3: ( '?.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23300:3: ( '?.' )
-            // InternalPerspectiveDsl.g:23301:4: '?.'
+            // InternalPerspectiveDsl.g:23367:3: ( '?.' )
+            // InternalPerspectiveDsl.g:23368:4: '?.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            match(input,130,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()); 
             }
@@ -75793,28 +76031,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
-    // InternalPerspectiveDsl.g:23312:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+    // InternalPerspectiveDsl.g:23379: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 {
-            // InternalPerspectiveDsl.g:23316:1: ( ( ( '::' ) ) )
-            // InternalPerspectiveDsl.g:23317:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:23383:1: ( ( ( '::' ) ) )
+            // InternalPerspectiveDsl.g:23384:2: ( ( '::' ) )
             {
-            // InternalPerspectiveDsl.g:23317:2: ( ( '::' ) )
-            // InternalPerspectiveDsl.g:23318:3: ( '::' )
+            // InternalPerspectiveDsl.g:23384:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:23385:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            // InternalPerspectiveDsl.g:23319:3: ( '::' )
-            // InternalPerspectiveDsl.g:23320:4: '::'
+            // InternalPerspectiveDsl.g:23386:3: ( '::' )
+            // InternalPerspectiveDsl.g:23387:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            match(input,129,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()); 
             }
@@ -75846,17 +76084,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
-    // InternalPerspectiveDsl.g:23331:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23398: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 {
-            // InternalPerspectiveDsl.g:23335:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23336:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23402:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23403:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23336:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23337:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23403:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23404:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
@@ -75891,17 +76129,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
-    // InternalPerspectiveDsl.g:23346:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23413: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 {
-            // InternalPerspectiveDsl.g:23350:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23351:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23417:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23418:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23351:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23352:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23418:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23419:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
@@ -75936,23 +76174,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
-    // InternalPerspectiveDsl.g:23361:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalPerspectiveDsl.g:23428:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23365:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalPerspectiveDsl.g:23366:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:23432:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalPerspectiveDsl.g:23433:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalPerspectiveDsl.g:23366:2: ( ( ruleIdOrSuper ) )
-            // InternalPerspectiveDsl.g:23367:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:23433:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:23434:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
             }
-            // InternalPerspectiveDsl.g:23368:3: ( ruleIdOrSuper )
-            // InternalPerspectiveDsl.g:23369:4: ruleIdOrSuper
+            // InternalPerspectiveDsl.g:23435:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:23436:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
@@ -75993,23 +76231,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
-    // InternalPerspectiveDsl.g:23380:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:23447:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23384:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:23385:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:23451:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:23452:2: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:23385:2: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:23386:3: ( '(' )
+            // InternalPerspectiveDsl.g:23452:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:23453:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:23387:3: ( '(' )
-            // InternalPerspectiveDsl.g:23388:4: '('
+            // InternalPerspectiveDsl.g:23454:3: ( '(' )
+            // InternalPerspectiveDsl.g:23455:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
@@ -76046,17 +76284,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
-    // InternalPerspectiveDsl.g:23399:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalPerspectiveDsl.g:23466: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 {
-            // InternalPerspectiveDsl.g:23403:1: ( ( ruleXShortClosure ) )
-            // InternalPerspectiveDsl.g:23404:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:23470:1: ( ( ruleXShortClosure ) )
+            // InternalPerspectiveDsl.g:23471:2: ( ruleXShortClosure )
             {
-            // InternalPerspectiveDsl.g:23404:2: ( ruleXShortClosure )
-            // InternalPerspectiveDsl.g:23405:3: ruleXShortClosure
+            // InternalPerspectiveDsl.g:23471:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:23472:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
@@ -76091,17 +76329,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
-    // InternalPerspectiveDsl.g:23414:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23481: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 {
-            // InternalPerspectiveDsl.g:23418:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23419:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23485:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23486:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23419:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23420:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23486:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23487:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
@@ -76136,17 +76374,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
-    // InternalPerspectiveDsl.g:23429:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23496: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 {
-            // InternalPerspectiveDsl.g:23433:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23434:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23500:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23501:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23434:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23435:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23501:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23502:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
@@ -76181,17 +76419,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
-    // InternalPerspectiveDsl.g:23444:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+    // InternalPerspectiveDsl.g:23511:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23448:1: ( ( ruleXClosure ) )
-            // InternalPerspectiveDsl.g:23449:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:23515:1: ( ( ruleXClosure ) )
+            // InternalPerspectiveDsl.g:23516:2: ( ruleXClosure )
             {
-            // InternalPerspectiveDsl.g:23449:2: ( ruleXClosure )
-            // InternalPerspectiveDsl.g:23450:3: ruleXClosure
+            // InternalPerspectiveDsl.g:23516:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:23517:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
@@ -76226,17 +76464,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
-    // InternalPerspectiveDsl.g:23459:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23526:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23463:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23464:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23530:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23531:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23464:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23465:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23531:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23532:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -76271,17 +76509,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:23474:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23541:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23478:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23479:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23545:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23546:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23479:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23480:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23546:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23547:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -76316,17 +76554,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
-    // InternalPerspectiveDsl.g:23489:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23556:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23493:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23494:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23560:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23561:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23494:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23495:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23561:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23562:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -76361,17 +76599,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:23504:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23571:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23508:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23509:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23575:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23576:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23509:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23510:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23576:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23577:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -76406,17 +76644,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
-    // InternalPerspectiveDsl.g:23519:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23586: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 {
-            // InternalPerspectiveDsl.g:23523:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23524:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23590:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23591:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23524:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23525:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:23591:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23592:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
@@ -76451,17 +76689,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
-    // InternalPerspectiveDsl.g:23534:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23601: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 {
-            // InternalPerspectiveDsl.g:23538:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23539:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23605:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23606:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23539:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23540:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:23606:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23607:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
@@ -76496,28 +76734,28 @@
 
 
     // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:23549:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+    // InternalPerspectiveDsl.g:23616:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
     public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23553:1: ( ( ( '|' ) ) )
-            // InternalPerspectiveDsl.g:23554:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:23620:1: ( ( ( '|' ) ) )
+            // InternalPerspectiveDsl.g:23621:2: ( ( '|' ) )
             {
-            // InternalPerspectiveDsl.g:23554:2: ( ( '|' ) )
-            // InternalPerspectiveDsl.g:23555:3: ( '|' )
+            // InternalPerspectiveDsl.g:23621:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:23622:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23556:3: ( '|' )
-            // InternalPerspectiveDsl.g:23557:4: '|'
+            // InternalPerspectiveDsl.g:23623:3: ( '|' )
+            // InternalPerspectiveDsl.g:23624:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            match(input,131,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()); 
             }
@@ -76549,17 +76787,17 @@
 
 
     // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:23568:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+    // InternalPerspectiveDsl.g:23635:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
     public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23572:1: ( ( ruleXExpressionInClosure ) )
-            // InternalPerspectiveDsl.g:23573:2: ( ruleXExpressionInClosure )
+            // InternalPerspectiveDsl.g:23639:1: ( ( ruleXExpressionInClosure ) )
+            // InternalPerspectiveDsl.g:23640:2: ( ruleXExpressionInClosure )
             {
-            // InternalPerspectiveDsl.g:23573:2: ( ruleXExpressionInClosure )
-            // InternalPerspectiveDsl.g:23574:3: ruleXExpressionInClosure
+            // InternalPerspectiveDsl.g:23640:2: ( ruleXExpressionInClosure )
+            // InternalPerspectiveDsl.g:23641:3: ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
@@ -76594,17 +76832,17 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
-    // InternalPerspectiveDsl.g:23583:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:23650:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23587:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:23588:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23654:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:23655:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:23588:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:23589:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:23655:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23656:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
@@ -76639,17 +76877,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
-    // InternalPerspectiveDsl.g:23598:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23665: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 {
-            // InternalPerspectiveDsl.g:23602:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23603:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23669:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23670:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23603:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23604:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:23670:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23671:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
@@ -76684,17 +76922,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
-    // InternalPerspectiveDsl.g:23613:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23680: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 {
-            // InternalPerspectiveDsl.g:23617:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23618:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23684:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23685:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23618:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23619:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:23685:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23686:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
@@ -76729,28 +76967,28 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
-    // InternalPerspectiveDsl.g:23628:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+    // InternalPerspectiveDsl.g:23695:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
     public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23632:1: ( ( ( '|' ) ) )
-            // InternalPerspectiveDsl.g:23633:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:23699:1: ( ( ( '|' ) ) )
+            // InternalPerspectiveDsl.g:23700:2: ( ( '|' ) )
             {
-            // InternalPerspectiveDsl.g:23633:2: ( ( '|' ) )
-            // InternalPerspectiveDsl.g:23634:3: ( '|' )
+            // InternalPerspectiveDsl.g:23700:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:23701:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            // InternalPerspectiveDsl.g:23635:3: ( '|' )
-            // InternalPerspectiveDsl.g:23636:4: '|'
+            // InternalPerspectiveDsl.g:23702:3: ( '|' )
+            // InternalPerspectiveDsl.g:23703:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            match(input,131,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()); 
             }
@@ -76782,17 +77020,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
-    // InternalPerspectiveDsl.g:23647:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23714:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23651:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23652:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23718:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23719:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23652:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23653:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23719:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23720:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
@@ -76827,17 +77065,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__IfAssignment_3"
-    // InternalPerspectiveDsl.g:23662:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23729:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23666:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23667:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23733:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23734:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23667:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23668:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23734:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23735:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
@@ -76872,17 +77110,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
-    // InternalPerspectiveDsl.g:23677:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23744:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23681:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23682:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23748:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23749:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23682:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23683:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23749:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23750:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
@@ -76917,17 +77155,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
-    // InternalPerspectiveDsl.g:23692:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23759:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23696:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23697:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23763:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23764:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23697:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23698:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23764:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23765:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
@@ -76962,17 +77200,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
-    // InternalPerspectiveDsl.g:23707:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23774: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 {
-            // InternalPerspectiveDsl.g:23711:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23712:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23778:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23779:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23712:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23713:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:23779:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23780:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
@@ -77007,17 +77245,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
-    // InternalPerspectiveDsl.g:23722:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23789:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23726:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23727:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23793:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23794:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23727:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23728:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23794:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23795:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
@@ -77052,17 +77290,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
-    // InternalPerspectiveDsl.g:23737:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23804: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 {
-            // InternalPerspectiveDsl.g:23741:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23742:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23808:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23809:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23742:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23743:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:23809:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23810:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
@@ -77097,17 +77335,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
-    // InternalPerspectiveDsl.g:23752:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23819:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23756:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23757:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23823:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23824:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23757:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23758:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23824:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23825:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
@@ -77142,17 +77380,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
-    // InternalPerspectiveDsl.g:23767:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+    // InternalPerspectiveDsl.g:23834:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
     public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23771:1: ( ( ruleXCasePart ) )
-            // InternalPerspectiveDsl.g:23772:2: ( ruleXCasePart )
+            // InternalPerspectiveDsl.g:23838:1: ( ( ruleXCasePart ) )
+            // InternalPerspectiveDsl.g:23839:2: ( ruleXCasePart )
             {
-            // InternalPerspectiveDsl.g:23772:2: ( ruleXCasePart )
-            // InternalPerspectiveDsl.g:23773:3: ruleXCasePart
+            // InternalPerspectiveDsl.g:23839:2: ( ruleXCasePart )
+            // InternalPerspectiveDsl.g:23840:3: ruleXCasePart
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
@@ -77187,17 +77425,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
-    // InternalPerspectiveDsl.g:23782:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23849:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23786:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23787:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23853:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23854:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23787:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23788:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23854:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23855:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
@@ -77232,17 +77470,17 @@
 
 
     // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
-    // InternalPerspectiveDsl.g:23797:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23864:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23801:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23802:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23868:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23869:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23802:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23803:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23869:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23870:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
@@ -77277,17 +77515,17 @@
 
 
     // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
-    // InternalPerspectiveDsl.g:23812:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23879:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23816:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23817:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23883:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23884:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23817:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23818:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23884:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23885:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
@@ -77322,17 +77560,17 @@
 
 
     // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:23827:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23894:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23831:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23832:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23898:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23899:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23832:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23833:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23899:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23900:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
@@ -77367,23 +77605,23 @@
 
 
     // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
-    // InternalPerspectiveDsl.g:23842:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
+    // InternalPerspectiveDsl.g:23909:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
     public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23846:1: ( ( ( ',' ) ) )
-            // InternalPerspectiveDsl.g:23847:2: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:23913:1: ( ( ( ',' ) ) )
+            // InternalPerspectiveDsl.g:23914:2: ( ( ',' ) )
             {
-            // InternalPerspectiveDsl.g:23847:2: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:23848:3: ( ',' )
+            // InternalPerspectiveDsl.g:23914:2: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:23915:3: ( ',' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23849:3: ( ',' )
-            // InternalPerspectiveDsl.g:23850:4: ','
+            // InternalPerspectiveDsl.g:23916:3: ( ',' )
+            // InternalPerspectiveDsl.g:23917:4: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
@@ -77420,17 +77658,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
-    // InternalPerspectiveDsl.g:23861:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23928:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
     public final void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23865:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23866:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23932:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23933:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23866:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23867:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:23933:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23934:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
@@ -77465,17 +77703,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
-    // InternalPerspectiveDsl.g:23876:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23943:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23880:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23881:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23947:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23948:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23881:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23882:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23948:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23949:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
@@ -77510,17 +77748,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
-    // InternalPerspectiveDsl.g:23891:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23958:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23895:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23896:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23962:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23963:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23896:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23897:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23963:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23964:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
@@ -77555,17 +77793,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
-    // InternalPerspectiveDsl.g:23906:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:23973:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23910:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:23911:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23977:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:23978:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:23911:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:23912:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:23978:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23979:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
@@ -77600,17 +77838,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:23921:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:23988:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23925:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:23926:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23992:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:23993:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:23926:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:23927:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:23993:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23994:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
@@ -77645,17 +77883,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
-    // InternalPerspectiveDsl.g:23936:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24003:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23940:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23941:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24007:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24008:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23941:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23942:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24008:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24009:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
@@ -77690,17 +77928,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
-    // InternalPerspectiveDsl.g:23951:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24018:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23955:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23956:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24022:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24023:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23956:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23957:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24023:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24024:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
@@ -77735,17 +77973,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
-    // InternalPerspectiveDsl.g:23966:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24033:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23970:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23971:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24037:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24038:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23971:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23972:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24038:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24039:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
@@ -77780,17 +78018,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
-    // InternalPerspectiveDsl.g:23981:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24048:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23985:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23986:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24052:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24053:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23986:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23987:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24053:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24054:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
@@ -77825,17 +78063,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
-    // InternalPerspectiveDsl.g:23996:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24063:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24000:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24001:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24067:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24068:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24001:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24002:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24068:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24069:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
@@ -77870,17 +78108,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
-    // InternalPerspectiveDsl.g:24011:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24078:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24015:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24016:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24082:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24083:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24016:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24017:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24083:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24084:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
@@ -77915,17 +78153,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
-    // InternalPerspectiveDsl.g:24026:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24093:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24030:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24031:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24097:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24098:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24031:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24032:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24098:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24099:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
@@ -77960,17 +78198,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
-    // InternalPerspectiveDsl.g:24041:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24108:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24045:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24046:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24112:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24113:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24046:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24047:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24113:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24114:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
@@ -78005,17 +78243,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
-    // InternalPerspectiveDsl.g:24056:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:24123:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24060:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:24061:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:24127:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:24128:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:24061:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:24062:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:24128:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:24129:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
@@ -78050,28 +78288,28 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
-    // InternalPerspectiveDsl.g:24071:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+    // InternalPerspectiveDsl.g:24138:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
     public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24075:1: ( ( ( 'var' ) ) )
-            // InternalPerspectiveDsl.g:24076:2: ( ( 'var' ) )
+            // InternalPerspectiveDsl.g:24142:1: ( ( ( 'var' ) ) )
+            // InternalPerspectiveDsl.g:24143:2: ( ( 'var' ) )
             {
-            // InternalPerspectiveDsl.g:24076:2: ( ( 'var' ) )
-            // InternalPerspectiveDsl.g:24077:3: ( 'var' )
+            // InternalPerspectiveDsl.g:24143:2: ( ( 'var' ) )
+            // InternalPerspectiveDsl.g:24144:3: ( 'var' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:24078:3: ( 'var' )
-            // InternalPerspectiveDsl.g:24079:4: 'var'
+            // InternalPerspectiveDsl.g:24145:3: ( 'var' )
+            // InternalPerspectiveDsl.g:24146:4: 'var'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            match(input,132,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()); 
             }
@@ -78103,17 +78341,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
-    // InternalPerspectiveDsl.g:24090:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24157: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 {
-            // InternalPerspectiveDsl.g:24094:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24095:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24161:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24162:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24095:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24096:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24162:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24163:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
@@ -78148,17 +78386,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
-    // InternalPerspectiveDsl.g:24105:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:24172: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 {
-            // InternalPerspectiveDsl.g:24109:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:24110:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24176:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:24177:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:24110:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:24111:3: ruleValidID
+            // InternalPerspectiveDsl.g:24177:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24178:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
@@ -78193,17 +78431,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
-    // InternalPerspectiveDsl.g:24120:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:24187:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24124:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:24125:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24191:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:24192:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:24125:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:24126:3: ruleValidID
+            // InternalPerspectiveDsl.g:24192:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24193:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
@@ -78238,17 +78476,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
-    // InternalPerspectiveDsl.g:24135:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24202:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
     public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24139:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24140:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24206:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24207:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24140:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24141:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24207:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24208:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
@@ -78283,17 +78521,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalPerspectiveDsl.g:24150:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24217:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24154:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24155:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24221:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24222:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24155:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24156:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24222:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24223:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -78328,17 +78566,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
-    // InternalPerspectiveDsl.g:24165:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:24232:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24169:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:24170:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24236:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:24237:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:24170:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:24171:3: ruleValidID
+            // InternalPerspectiveDsl.g:24237:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24238:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -78373,17 +78611,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalPerspectiveDsl.g:24180:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24247:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24184:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24185:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24251:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24252:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24185:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24186:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24252:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24253:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -78418,17 +78656,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
-    // InternalPerspectiveDsl.g:24195:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:24262:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24199:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:24200:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24266:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:24267:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:24200:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:24201:3: ruleValidID
+            // InternalPerspectiveDsl.g:24267:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24268:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -78463,17 +78701,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
-    // InternalPerspectiveDsl.g:24210:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24277:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24214:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24215:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24281:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24282:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24215:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24216:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24282:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24283:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -78508,17 +78746,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
-    // InternalPerspectiveDsl.g:24225:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24292:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24229:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24230:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24296:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24297:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24230:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24231:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24297:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24298:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -78553,23 +78791,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
-    // InternalPerspectiveDsl.g:24240:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalPerspectiveDsl.g:24307:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24244:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalPerspectiveDsl.g:24245:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:24311:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalPerspectiveDsl.g:24312:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalPerspectiveDsl.g:24245:2: ( ( ruleIdOrSuper ) )
-            // InternalPerspectiveDsl.g:24246:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:24312:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:24313:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:24247:3: ( ruleIdOrSuper )
-            // InternalPerspectiveDsl.g:24248:4: ruleIdOrSuper
+            // InternalPerspectiveDsl.g:24314:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:24315:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
@@ -78610,23 +78848,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
-    // InternalPerspectiveDsl.g:24259:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:24326:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
     public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24263:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:24264:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:24330:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:24331:2: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:24264:2: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:24265:3: ( '(' )
+            // InternalPerspectiveDsl.g:24331:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:24332:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:24266:3: ( '(' )
-            // InternalPerspectiveDsl.g:24267:4: '('
+            // InternalPerspectiveDsl.g:24333:3: ( '(' )
+            // InternalPerspectiveDsl.g:24334:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
@@ -78663,17 +78901,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
-    // InternalPerspectiveDsl.g:24278:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalPerspectiveDsl.g:24345:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24282:1: ( ( ruleXShortClosure ) )
-            // InternalPerspectiveDsl.g:24283:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:24349:1: ( ( ruleXShortClosure ) )
+            // InternalPerspectiveDsl.g:24350:2: ( ruleXShortClosure )
             {
-            // InternalPerspectiveDsl.g:24283:2: ( ruleXShortClosure )
-            // InternalPerspectiveDsl.g:24284:3: ruleXShortClosure
+            // InternalPerspectiveDsl.g:24350:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:24351:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
@@ -78708,17 +78946,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
-    // InternalPerspectiveDsl.g:24293:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24360: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 {
-            // InternalPerspectiveDsl.g:24297:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24298:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24364:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24365:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24298:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24299:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24365:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24366:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
@@ -78753,17 +78991,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
-    // InternalPerspectiveDsl.g:24308:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24375: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 {
-            // InternalPerspectiveDsl.g:24312:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24313:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24379:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24380:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24313:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24314:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24380:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24381:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
@@ -78798,17 +79036,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
-    // InternalPerspectiveDsl.g:24323:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+    // InternalPerspectiveDsl.g:24390:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24327:1: ( ( ruleXClosure ) )
-            // InternalPerspectiveDsl.g:24328:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:24394:1: ( ( ruleXClosure ) )
+            // InternalPerspectiveDsl.g:24395:2: ( ruleXClosure )
             {
-            // InternalPerspectiveDsl.g:24328:2: ( ruleXClosure )
-            // InternalPerspectiveDsl.g:24329:3: ruleXClosure
+            // InternalPerspectiveDsl.g:24395:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:24396:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
@@ -78843,23 +79081,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
-    // InternalPerspectiveDsl.g:24338:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:24405:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24342:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:24343:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:24409:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:24410:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:24343:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:24344:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:24410:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:24411:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:24345:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:24346:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:24412:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:24413:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
@@ -78900,17 +79138,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
-    // InternalPerspectiveDsl.g:24357:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24424:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24361:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24362:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24428:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24429:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24362:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24363:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24429:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24430:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
@@ -78945,17 +79183,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:24372:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24439:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24376:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24377:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24443:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24444:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24377:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24378:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24444:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24445:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
@@ -78990,23 +79228,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
-    // InternalPerspectiveDsl.g:24387:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:24454:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
     public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24391:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:24392:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:24458:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:24459:2: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:24392:2: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:24393:3: ( '(' )
+            // InternalPerspectiveDsl.g:24459:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:24460:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            // InternalPerspectiveDsl.g:24394:3: ( '(' )
-            // InternalPerspectiveDsl.g:24395:4: '('
+            // InternalPerspectiveDsl.g:24461:3: ( '(' )
+            // InternalPerspectiveDsl.g:24462:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
@@ -79043,17 +79281,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
-    // InternalPerspectiveDsl.g:24406:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+    // InternalPerspectiveDsl.g:24473:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24410:1: ( ( ruleXShortClosure ) )
-            // InternalPerspectiveDsl.g:24411:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:24477:1: ( ( ruleXShortClosure ) )
+            // InternalPerspectiveDsl.g:24478:2: ( ruleXShortClosure )
             {
-            // InternalPerspectiveDsl.g:24411:2: ( ruleXShortClosure )
-            // InternalPerspectiveDsl.g:24412:3: ruleXShortClosure
+            // InternalPerspectiveDsl.g:24478:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:24479:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
@@ -79088,17 +79326,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
-    // InternalPerspectiveDsl.g:24421:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24488: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 {
-            // InternalPerspectiveDsl.g:24425:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24426:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24492:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24493:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24426:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24427:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24493:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24494:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
@@ -79133,17 +79371,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
-    // InternalPerspectiveDsl.g:24436:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24503: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 {
-            // InternalPerspectiveDsl.g:24440:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24441:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24507:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24508:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24441:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24442:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24508:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24509:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
@@ -79178,17 +79416,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
-    // InternalPerspectiveDsl.g:24451:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+    // InternalPerspectiveDsl.g:24518:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24455:1: ( ( ruleXClosure ) )
-            // InternalPerspectiveDsl.g:24456:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:24522:1: ( ( ruleXClosure ) )
+            // InternalPerspectiveDsl.g:24523:2: ( ruleXClosure )
             {
-            // InternalPerspectiveDsl.g:24456:2: ( ruleXClosure )
-            // InternalPerspectiveDsl.g:24457:3: ruleXClosure
+            // InternalPerspectiveDsl.g:24523:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:24524:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
@@ -79223,28 +79461,28 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
-    // InternalPerspectiveDsl.g:24466:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+    // InternalPerspectiveDsl.g:24533:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
     public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24470:1: ( ( ( 'true' ) ) )
-            // InternalPerspectiveDsl.g:24471:2: ( ( 'true' ) )
+            // InternalPerspectiveDsl.g:24537:1: ( ( ( 'true' ) ) )
+            // InternalPerspectiveDsl.g:24538:2: ( ( 'true' ) )
             {
-            // InternalPerspectiveDsl.g:24471:2: ( ( 'true' ) )
-            // InternalPerspectiveDsl.g:24472:3: ( 'true' )
+            // InternalPerspectiveDsl.g:24538:2: ( ( 'true' ) )
+            // InternalPerspectiveDsl.g:24539:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:24473:3: ( 'true' )
-            // InternalPerspectiveDsl.g:24474:4: 'true'
+            // InternalPerspectiveDsl.g:24540:3: ( 'true' )
+            // InternalPerspectiveDsl.g:24541:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            match(input,133,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()); 
             }
@@ -79276,17 +79514,17 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
-    // InternalPerspectiveDsl.g:24485:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+    // InternalPerspectiveDsl.g:24552:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
     public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24489:1: ( ( ruleNumber ) )
-            // InternalPerspectiveDsl.g:24490:2: ( ruleNumber )
+            // InternalPerspectiveDsl.g:24556:1: ( ( ruleNumber ) )
+            // InternalPerspectiveDsl.g:24557:2: ( ruleNumber )
             {
-            // InternalPerspectiveDsl.g:24490:2: ( ruleNumber )
-            // InternalPerspectiveDsl.g:24491:3: ruleNumber
+            // InternalPerspectiveDsl.g:24557:2: ( ruleNumber )
+            // InternalPerspectiveDsl.g:24558:3: ruleNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
@@ -79321,17 +79559,17 @@
 
 
     // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
-    // InternalPerspectiveDsl.g:24500:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:24567:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
     public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24504:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:24505:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:24571:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:24572:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:24505:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:24506:3: RULE_STRING
+            // InternalPerspectiveDsl.g:24572:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:24573:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
@@ -79362,23 +79600,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
-    // InternalPerspectiveDsl.g:24515:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:24582:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24519:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:24520:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:24586:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:24587:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:24520:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:24521:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:24587:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:24588:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
             }
-            // InternalPerspectiveDsl.g:24522:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:24523:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:24589:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:24590:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
@@ -79419,17 +79657,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
-    // InternalPerspectiveDsl.g:24534:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+    // InternalPerspectiveDsl.g:24601:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
     public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24538:1: ( ( ruleArrayBrackets ) )
-            // InternalPerspectiveDsl.g:24539:2: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:24605:1: ( ( ruleArrayBrackets ) )
+            // InternalPerspectiveDsl.g:24606:2: ( ruleArrayBrackets )
             {
-            // InternalPerspectiveDsl.g:24539:2: ( ruleArrayBrackets )
-            // InternalPerspectiveDsl.g:24540:3: ruleArrayBrackets
+            // InternalPerspectiveDsl.g:24606:2: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:24607:3: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
@@ -79464,17 +79702,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:24549:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24616:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24553:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24554:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24620:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24621:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24554:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24555:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24621:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24622:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -79509,17 +79747,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:24564:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24631:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24568:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24569:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24635:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24636:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24569:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24570:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24636:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24637:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -79554,17 +79792,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:24579:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24646:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24583:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24584:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24650:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24651:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24584:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24585:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24651:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24652:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -79599,17 +79837,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
-    // InternalPerspectiveDsl.g:24594:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+    // InternalPerspectiveDsl.g:24661:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
     public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24598:1: ( ( ruleXCatchClause ) )
-            // InternalPerspectiveDsl.g:24599:2: ( ruleXCatchClause )
+            // InternalPerspectiveDsl.g:24665:1: ( ( ruleXCatchClause ) )
+            // InternalPerspectiveDsl.g:24666:2: ( ruleXCatchClause )
             {
-            // InternalPerspectiveDsl.g:24599:2: ( ruleXCatchClause )
-            // InternalPerspectiveDsl.g:24600:3: ruleXCatchClause
+            // InternalPerspectiveDsl.g:24666:2: ( ruleXCatchClause )
+            // InternalPerspectiveDsl.g:24667:3: ruleXCatchClause
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
@@ -79644,17 +79882,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
-    // InternalPerspectiveDsl.g:24609:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24676: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 {
-            // InternalPerspectiveDsl.g:24613:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24614:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24680:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24681:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24614:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24615:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24681:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24682:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
@@ -79689,17 +79927,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:24624:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24691:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24628:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24629:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24695:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24696:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24629:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24630:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24696:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24697:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
@@ -79734,17 +79972,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
-    // InternalPerspectiveDsl.g:24639:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24706:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24643:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24644:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24710:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24711:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24644:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24645:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24711:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24712:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
@@ -79779,17 +80017,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
-    // InternalPerspectiveDsl.g:24654:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24721:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24658:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24659:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24725:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24726:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24659:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24660:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24726:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24727:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
@@ -79824,17 +80062,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
-    // InternalPerspectiveDsl.g:24669:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:24736:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
     public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24673:1: ( ( ruleFullJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:24674:2: ( ruleFullJvmFormalParameter )
+            // InternalPerspectiveDsl.g:24740:1: ( ( ruleFullJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:24741:2: ( ruleFullJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:24674:2: ( ruleFullJvmFormalParameter )
-            // InternalPerspectiveDsl.g:24675:3: ruleFullJvmFormalParameter
+            // InternalPerspectiveDsl.g:24741:2: ( ruleFullJvmFormalParameter )
+            // InternalPerspectiveDsl.g:24742:3: ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
@@ -79869,17 +80107,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
-    // InternalPerspectiveDsl.g:24684:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:24751:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
     public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24688:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:24689:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24755:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:24756:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:24689:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:24690:3: ruleXExpression
+            // InternalPerspectiveDsl.g:24756:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:24757:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
@@ -79914,17 +80152,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
-    // InternalPerspectiveDsl.g:24699:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24766:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24703:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24704:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24770:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24771:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24704:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24705:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24771:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24772:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
@@ -79959,17 +80197,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
-    // InternalPerspectiveDsl.g:24714:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24781: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 {
-            // InternalPerspectiveDsl.g:24718:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24719:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24785:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24786:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24719:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24720:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24786:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24787:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
@@ -80004,17 +80242,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
-    // InternalPerspectiveDsl.g:24729:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24796:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24733:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24734:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24800:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24801:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24734:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24735:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24801:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24802:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
@@ -80049,23 +80287,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
-    // InternalPerspectiveDsl.g:24744:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:24811:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24748:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:24749:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:24815:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:24816:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:24749:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:24750:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:24816:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:24817:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
             }
-            // InternalPerspectiveDsl.g:24751:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:24752:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:24818:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:24819:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
@@ -80106,17 +80344,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
-    // InternalPerspectiveDsl.g:24763:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24830:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24767:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24768:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24834:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24835:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24768:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24769:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24835:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24836:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -80151,17 +80389,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
-    // InternalPerspectiveDsl.g:24778:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24845:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24782:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24783:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24849:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24850:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24783:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24784:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24850:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24851:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -80196,23 +80434,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
-    // InternalPerspectiveDsl.g:24793:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
+    // InternalPerspectiveDsl.g:24860:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24797:1: ( ( ( ruleValidID ) ) )
-            // InternalPerspectiveDsl.g:24798:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:24864:1: ( ( ( ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:24865:2: ( ( ruleValidID ) )
             {
-            // InternalPerspectiveDsl.g:24798:2: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:24799:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24865:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:24866:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
             }
-            // InternalPerspectiveDsl.g:24800:3: ( ruleValidID )
-            // InternalPerspectiveDsl.g:24801:4: ruleValidID
+            // InternalPerspectiveDsl.g:24867:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:24868:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
@@ -80253,17 +80491,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
-    // InternalPerspectiveDsl.g:24812:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24879: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 {
-            // InternalPerspectiveDsl.g:24816:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24817:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24883:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24884:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24817:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24818:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24884:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24885:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
@@ -80298,17 +80536,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
-    // InternalPerspectiveDsl.g:24827:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:24894: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 {
-            // InternalPerspectiveDsl.g:24831:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:24832:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24898:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:24899:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:24832:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:24833:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:24899:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:24900:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
@@ -80343,17 +80581,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
-    // InternalPerspectiveDsl.g:24842:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
+    // InternalPerspectiveDsl.g:24909:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24846:1: ( ( ruleJvmUpperBound ) )
-            // InternalPerspectiveDsl.g:24847:2: ( ruleJvmUpperBound )
+            // InternalPerspectiveDsl.g:24913:1: ( ( ruleJvmUpperBound ) )
+            // InternalPerspectiveDsl.g:24914:2: ( ruleJvmUpperBound )
             {
-            // InternalPerspectiveDsl.g:24847:2: ( ruleJvmUpperBound )
-            // InternalPerspectiveDsl.g:24848:3: ruleJvmUpperBound
+            // InternalPerspectiveDsl.g:24914:2: ( ruleJvmUpperBound )
+            // InternalPerspectiveDsl.g:24915:3: ruleJvmUpperBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
@@ -80388,17 +80626,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
-    // InternalPerspectiveDsl.g:24857:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
+    // InternalPerspectiveDsl.g:24924:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24861:1: ( ( ruleJvmUpperBoundAnded ) )
-            // InternalPerspectiveDsl.g:24862:2: ( ruleJvmUpperBoundAnded )
+            // InternalPerspectiveDsl.g:24928:1: ( ( ruleJvmUpperBoundAnded ) )
+            // InternalPerspectiveDsl.g:24929:2: ( ruleJvmUpperBoundAnded )
             {
-            // InternalPerspectiveDsl.g:24862:2: ( ruleJvmUpperBoundAnded )
-            // InternalPerspectiveDsl.g:24863:3: ruleJvmUpperBoundAnded
+            // InternalPerspectiveDsl.g:24929:2: ( ruleJvmUpperBoundAnded )
+            // InternalPerspectiveDsl.g:24930:3: ruleJvmUpperBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
@@ -80433,17 +80671,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
-    // InternalPerspectiveDsl.g:24872:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
+    // InternalPerspectiveDsl.g:24939:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24876:1: ( ( ruleJvmLowerBound ) )
-            // InternalPerspectiveDsl.g:24877:2: ( ruleJvmLowerBound )
+            // InternalPerspectiveDsl.g:24943:1: ( ( ruleJvmLowerBound ) )
+            // InternalPerspectiveDsl.g:24944:2: ( ruleJvmLowerBound )
             {
-            // InternalPerspectiveDsl.g:24877:2: ( ruleJvmLowerBound )
-            // InternalPerspectiveDsl.g:24878:3: ruleJvmLowerBound
+            // InternalPerspectiveDsl.g:24944:2: ( ruleJvmLowerBound )
+            // InternalPerspectiveDsl.g:24945:3: ruleJvmLowerBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
@@ -80478,17 +80716,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
-    // InternalPerspectiveDsl.g:24887:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
+    // InternalPerspectiveDsl.g:24954:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24891:1: ( ( ruleJvmLowerBoundAnded ) )
-            // InternalPerspectiveDsl.g:24892:2: ( ruleJvmLowerBoundAnded )
+            // InternalPerspectiveDsl.g:24958:1: ( ( ruleJvmLowerBoundAnded ) )
+            // InternalPerspectiveDsl.g:24959:2: ( ruleJvmLowerBoundAnded )
             {
-            // InternalPerspectiveDsl.g:24892:2: ( ruleJvmLowerBoundAnded )
-            // InternalPerspectiveDsl.g:24893:3: ruleJvmLowerBoundAnded
+            // InternalPerspectiveDsl.g:24959:2: ( ruleJvmLowerBoundAnded )
+            // InternalPerspectiveDsl.g:24960:3: ruleJvmLowerBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
@@ -80523,17 +80761,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:24902:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24969:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24906:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24907:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24973:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24974:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24907:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24908:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24974:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24975:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -80568,17 +80806,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:24917:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24984:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24921:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24922:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24988:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:24989:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24922:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24923:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:24989:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:24990:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -80613,17 +80851,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:24932:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:24999:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24936:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24937:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:25003:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:25004:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24937:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24938:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:25004:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:25005:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -80658,17 +80896,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:24947:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:25014:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24951:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24952:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:25018:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:25019:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24952:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24953:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:25019:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:25020:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -80703,17 +80941,17 @@
 
 
     // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
-    // InternalPerspectiveDsl.g:24962:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+    // InternalPerspectiveDsl.g:25029:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
     public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24966:1: ( ( ruleXImportDeclaration ) )
-            // InternalPerspectiveDsl.g:24967:2: ( ruleXImportDeclaration )
+            // InternalPerspectiveDsl.g:25033:1: ( ( ruleXImportDeclaration ) )
+            // InternalPerspectiveDsl.g:25034:2: ( ruleXImportDeclaration )
             {
-            // InternalPerspectiveDsl.g:24967:2: ( ruleXImportDeclaration )
-            // InternalPerspectiveDsl.g:24968:3: ruleXImportDeclaration
+            // InternalPerspectiveDsl.g:25034:2: ( ruleXImportDeclaration )
+            // InternalPerspectiveDsl.g:25035:3: ruleXImportDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
@@ -80746,19 +80984,19 @@
     }
     // $ANTLR end "rule__XImportSection__ImportDeclarationsAssignment"
 
-    // $ANTLR start synpred24_InternalPerspectiveDsl
-    public final void synpred24_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3022:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3022:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+    // $ANTLR start synpred25_InternalPerspectiveDsl
+    public final void synpred25_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3043:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3022:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-        // InternalPerspectiveDsl.g:3023:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalPerspectiveDsl.g:3044:3: ( rule__XAnnotation__Group_3_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3024:3: ( rule__XAnnotation__Group_3_1_0__0 )
-        // InternalPerspectiveDsl.g:3024:4: rule__XAnnotation__Group_3_1_0__0
+        // InternalPerspectiveDsl.g:3045:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalPerspectiveDsl.g:3045:4: rule__XAnnotation__Group_3_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotation__Group_3_1_0__0();
@@ -80774,51 +81012,51 @@
 
         }
     }
-    // $ANTLR end synpred24_InternalPerspectiveDsl
-
-    // $ANTLR start synpred25_InternalPerspectiveDsl
-    public final void synpred25_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3043:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        {
-        // InternalPerspectiveDsl.g:3043:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        // InternalPerspectiveDsl.g:3044:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
-        }
-        // InternalPerspectiveDsl.g:3045:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        // InternalPerspectiveDsl.g:3045:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XAnnotationElementValueOrCommaList__Group_0__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-    }
     // $ANTLR end synpred25_InternalPerspectiveDsl
 
     // $ANTLR start synpred26_InternalPerspectiveDsl
     public final void synpred26_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3064:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalPerspectiveDsl.g:3064:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-        // InternalPerspectiveDsl.g:3065:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalPerspectiveDsl.g:3064:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalPerspectiveDsl.g:3065:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+        }
+        // InternalPerspectiveDsl.g:3066:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalPerspectiveDsl.g:3066:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAnnotationElementValueOrCommaList__Group_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred26_InternalPerspectiveDsl
+
+    // $ANTLR start synpred27_InternalPerspectiveDsl
+    public final void synpred27_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3085:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3085:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        {
+        // InternalPerspectiveDsl.g:3085:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalPerspectiveDsl.g:3086:3: ( rule__XAnnotationElementValue__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
         }
-        // InternalPerspectiveDsl.g:3066:3: ( rule__XAnnotationElementValue__Group_0__0 )
-        // InternalPerspectiveDsl.g:3066:4: rule__XAnnotationElementValue__Group_0__0
+        // InternalPerspectiveDsl.g:3087:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalPerspectiveDsl.g:3087:4: rule__XAnnotationElementValue__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValue__Group_0__0();
@@ -80834,21 +81072,21 @@
 
         }
     }
-    // $ANTLR end synpred26_InternalPerspectiveDsl
+    // $ANTLR end synpred27_InternalPerspectiveDsl
 
-    // $ANTLR start synpred51_InternalPerspectiveDsl
-    public final void synpred51_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3349:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3349:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+    // $ANTLR start synpred52_InternalPerspectiveDsl
+    public final void synpred52_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3370:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3370:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3349:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-        // InternalPerspectiveDsl.g:3350:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalPerspectiveDsl.g:3370:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalPerspectiveDsl.g:3371:3: ( rule__OpOther__Group_6_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3351:3: ( rule__OpOther__Group_6_1_0__0 )
-        // InternalPerspectiveDsl.g:3351:4: rule__OpOther__Group_6_1_0__0
+        // InternalPerspectiveDsl.g:3372:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalPerspectiveDsl.g:3372:4: rule__OpOther__Group_6_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__OpOther__Group_6_1_0__0();
@@ -80864,15 +81102,15 @@
 
         }
     }
-    // $ANTLR end synpred51_InternalPerspectiveDsl
+    // $ANTLR end synpred52_InternalPerspectiveDsl
 
-    // $ANTLR start synpred52_InternalPerspectiveDsl
-    public final void synpred52_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3355:2: ( ( '<' ) )
-        // InternalPerspectiveDsl.g:3355:2: ( '<' )
+    // $ANTLR start synpred53_InternalPerspectiveDsl
+    public final void synpred53_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3376:2: ( ( '<' ) )
+        // InternalPerspectiveDsl.g:3376:2: ( '<' )
         {
-        // InternalPerspectiveDsl.g:3355:2: ( '<' )
-        // InternalPerspectiveDsl.g:3356:3: '<'
+        // InternalPerspectiveDsl.g:3376:2: ( '<' )
+        // InternalPerspectiveDsl.g:3377:3: '<'
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -80884,21 +81122,21 @@
 
         }
     }
-    // $ANTLR end synpred52_InternalPerspectiveDsl
+    // $ANTLR end synpred53_InternalPerspectiveDsl
 
-    // $ANTLR start synpred65_InternalPerspectiveDsl
-    public final void synpred65_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3568:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
-        // InternalPerspectiveDsl.g:3568:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+    // $ANTLR start synpred66_InternalPerspectiveDsl
+    public final void synpred66_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3589:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+        // InternalPerspectiveDsl.g:3589:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
         {
-        // InternalPerspectiveDsl.g:3568:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-        // InternalPerspectiveDsl.g:3569:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalPerspectiveDsl.g:3589:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalPerspectiveDsl.g:3590:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3570:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-        // InternalPerspectiveDsl.g:3570:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+        // InternalPerspectiveDsl.g:3591:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalPerspectiveDsl.g:3591:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -80914,21 +81152,21 @@
 
         }
     }
-    // $ANTLR end synpred65_InternalPerspectiveDsl
+    // $ANTLR end synpred66_InternalPerspectiveDsl
 
-    // $ANTLR start synpred73_InternalPerspectiveDsl
-    public final void synpred73_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3631:2: ( ( ( ruleXForLoopExpression ) ) )
-        // InternalPerspectiveDsl.g:3631:2: ( ( ruleXForLoopExpression ) )
+    // $ANTLR start synpred74_InternalPerspectiveDsl
+    public final void synpred74_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3652:2: ( ( ( ruleXForLoopExpression ) ) )
+        // InternalPerspectiveDsl.g:3652:2: ( ( ruleXForLoopExpression ) )
         {
-        // InternalPerspectiveDsl.g:3631:2: ( ( ruleXForLoopExpression ) )
-        // InternalPerspectiveDsl.g:3632:3: ( ruleXForLoopExpression )
+        // InternalPerspectiveDsl.g:3652:2: ( ( ruleXForLoopExpression ) )
+        // InternalPerspectiveDsl.g:3653:3: ( ruleXForLoopExpression )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
         }
-        // InternalPerspectiveDsl.g:3633:3: ( ruleXForLoopExpression )
-        // InternalPerspectiveDsl.g:3633:4: ruleXForLoopExpression
+        // InternalPerspectiveDsl.g:3654:3: ( ruleXForLoopExpression )
+        // InternalPerspectiveDsl.g:3654:4: ruleXForLoopExpression
         {
         pushFollow(FOLLOW_2);
         ruleXForLoopExpression();
@@ -80944,15 +81182,15 @@
 
         }
     }
-    // $ANTLR end synpred73_InternalPerspectiveDsl
+    // $ANTLR end synpred74_InternalPerspectiveDsl
 
-    // $ANTLR start synpred74_InternalPerspectiveDsl
-    public final void synpred74_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3637:2: ( ( ruleXBasicForLoopExpression ) )
-        // InternalPerspectiveDsl.g:3637:2: ( ruleXBasicForLoopExpression )
+    // $ANTLR start synpred75_InternalPerspectiveDsl
+    public final void synpred75_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3658:2: ( ( ruleXBasicForLoopExpression ) )
+        // InternalPerspectiveDsl.g:3658:2: ( ruleXBasicForLoopExpression )
         {
-        // InternalPerspectiveDsl.g:3637:2: ( ruleXBasicForLoopExpression )
-        // InternalPerspectiveDsl.g:3638:3: ruleXBasicForLoopExpression
+        // InternalPerspectiveDsl.g:3658:2: ( ruleXBasicForLoopExpression )
+        // InternalPerspectiveDsl.g:3659:3: ruleXBasicForLoopExpression
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -80968,21 +81206,21 @@
 
         }
     }
-    // $ANTLR end synpred74_InternalPerspectiveDsl
+    // $ANTLR end synpred75_InternalPerspectiveDsl
 
-    // $ANTLR start synpred87_InternalPerspectiveDsl
-    public final void synpred87_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3760:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3760:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+    // $ANTLR start synpred88_InternalPerspectiveDsl
+    public final void synpred88_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3781:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3781:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3760:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-        // InternalPerspectiveDsl.g:3761:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3781:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalPerspectiveDsl.g:3782:3: ( rule__XSwitchExpression__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
         }
-        // InternalPerspectiveDsl.g:3762:3: ( rule__XSwitchExpression__Group_2_0__0 )
-        // InternalPerspectiveDsl.g:3762:4: rule__XSwitchExpression__Group_2_0__0
+        // InternalPerspectiveDsl.g:3783:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3783:4: rule__XSwitchExpression__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_0__0();
@@ -80998,21 +81236,21 @@
 
         }
     }
-    // $ANTLR end synpred87_InternalPerspectiveDsl
+    // $ANTLR end synpred88_InternalPerspectiveDsl
 
-    // $ANTLR start synpred91_InternalPerspectiveDsl
-    public final void synpred91_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3844:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3844:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+    // $ANTLR start synpred92_InternalPerspectiveDsl
+    public final void synpred92_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3865:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3865:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3844:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-        // InternalPerspectiveDsl.g:3845:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3865:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalPerspectiveDsl.g:3866:3: ( rule__XVariableDeclaration__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
         }
-        // InternalPerspectiveDsl.g:3846:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-        // InternalPerspectiveDsl.g:3846:4: rule__XVariableDeclaration__Group_2_0__0
+        // InternalPerspectiveDsl.g:3867:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3867:4: rule__XVariableDeclaration__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XVariableDeclaration__Group_2_0__0();
@@ -81028,21 +81266,21 @@
 
         }
     }
-    // $ANTLR end synpred91_InternalPerspectiveDsl
+    // $ANTLR end synpred92_InternalPerspectiveDsl
 
-    // $ANTLR start synpred92_InternalPerspectiveDsl
-    public final void synpred92_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3865:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
-        // InternalPerspectiveDsl.g:3865:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+    // $ANTLR start synpred93_InternalPerspectiveDsl
+    public final void synpred93_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3886:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+        // InternalPerspectiveDsl.g:3886:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
         {
-        // InternalPerspectiveDsl.g:3865:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-        // InternalPerspectiveDsl.g:3866:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalPerspectiveDsl.g:3886:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalPerspectiveDsl.g:3887:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3867:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-        // InternalPerspectiveDsl.g:3867:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+        // InternalPerspectiveDsl.g:3888:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalPerspectiveDsl.g:3888:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -81058,21 +81296,21 @@
 
         }
     }
-    // $ANTLR end synpred92_InternalPerspectiveDsl
+    // $ANTLR end synpred93_InternalPerspectiveDsl
 
-    // $ANTLR start synpred98_InternalPerspectiveDsl
-    public final void synpred98_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3946:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
-        // InternalPerspectiveDsl.g:3946:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+    // $ANTLR start synpred99_InternalPerspectiveDsl
+    public final void synpred99_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3967:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+        // InternalPerspectiveDsl.g:3967:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
         {
-        // InternalPerspectiveDsl.g:3946:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-        // InternalPerspectiveDsl.g:3947:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalPerspectiveDsl.g:3967:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalPerspectiveDsl.g:3968:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3948:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-        // InternalPerspectiveDsl.g:3948:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+        // InternalPerspectiveDsl.g:3969:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalPerspectiveDsl.g:3969:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -81088,12 +81326,12 @@
 
         }
     }
-    // $ANTLR end synpred98_InternalPerspectiveDsl
+    // $ANTLR end synpred99_InternalPerspectiveDsl
 
-    // $ANTLR start synpred131_InternalPerspectiveDsl
-    public final void synpred131_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:9684:3: ( rule__XAssignment__Group_1_1__0 )
-        // InternalPerspectiveDsl.g:9684:3: rule__XAssignment__Group_1_1__0
+    // $ANTLR start synpred132_InternalPerspectiveDsl
+    public final void synpred132_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:9732:3: ( rule__XAssignment__Group_1_1__0 )
+        // InternalPerspectiveDsl.g:9732:3: rule__XAssignment__Group_1_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAssignment__Group_1_1__0();
@@ -81103,30 +81341,15 @@
 
         }
     }
-    // $ANTLR end synpred131_InternalPerspectiveDsl
-
-    // $ANTLR start synpred133_InternalPerspectiveDsl
-    public final void synpred133_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10035:3: ( rule__XOrExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:10035:3: rule__XOrExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XOrExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred133_InternalPerspectiveDsl
+    // $ANTLR end synpred132_InternalPerspectiveDsl
 
     // $ANTLR start synpred134_InternalPerspectiveDsl
     public final void synpred134_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10224:3: ( rule__XAndExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:10224:3: rule__XAndExpression__Group_1__0
+        // InternalPerspectiveDsl.g:10083:3: ( rule__XOrExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:10083:3: rule__XOrExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAndExpression__Group_1__0();
+        rule__XOrExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81137,11 +81360,11 @@
 
     // $ANTLR start synpred135_InternalPerspectiveDsl
     public final void synpred135_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10413:3: ( rule__XEqualityExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:10413:3: rule__XEqualityExpression__Group_1__0
+        // InternalPerspectiveDsl.g:10272:3: ( rule__XAndExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:10272:3: rule__XAndExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XEqualityExpression__Group_1__0();
+        rule__XAndExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81152,11 +81375,11 @@
 
     // $ANTLR start synpred136_InternalPerspectiveDsl
     public final void synpred136_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10602:3: ( rule__XRelationalExpression__Alternatives_1 )
-        // InternalPerspectiveDsl.g:10602:3: rule__XRelationalExpression__Alternatives_1
+        // InternalPerspectiveDsl.g:10461:3: ( rule__XEqualityExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:10461:3: rule__XEqualityExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XRelationalExpression__Alternatives_1();
+        rule__XEqualityExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81167,11 +81390,11 @@
 
     // $ANTLR start synpred137_InternalPerspectiveDsl
     public final void synpred137_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10980:3: ( rule__XOtherOperatorExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:10980:3: rule__XOtherOperatorExpression__Group_1__0
+        // InternalPerspectiveDsl.g:10650:3: ( rule__XRelationalExpression__Alternatives_1 )
+        // InternalPerspectiveDsl.g:10650:3: rule__XRelationalExpression__Alternatives_1
         {
         pushFollow(FOLLOW_2);
-        rule__XOtherOperatorExpression__Group_1__0();
+        rule__XRelationalExpression__Alternatives_1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81182,11 +81405,11 @@
 
     // $ANTLR start synpred138_InternalPerspectiveDsl
     public final void synpred138_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11493:3: ( rule__XAdditiveExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:11493:3: rule__XAdditiveExpression__Group_1__0
+        // InternalPerspectiveDsl.g:11028:3: ( rule__XOtherOperatorExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:11028:3: rule__XOtherOperatorExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAdditiveExpression__Group_1__0();
+        rule__XOtherOperatorExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81197,11 +81420,11 @@
 
     // $ANTLR start synpred139_InternalPerspectiveDsl
     public final void synpred139_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11682:3: ( rule__XMultiplicativeExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:11682:3: rule__XMultiplicativeExpression__Group_1__0
+        // InternalPerspectiveDsl.g:11541:3: ( rule__XAdditiveExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:11541:3: rule__XAdditiveExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XMultiplicativeExpression__Group_1__0();
+        rule__XAdditiveExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81212,11 +81435,11 @@
 
     // $ANTLR start synpred140_InternalPerspectiveDsl
     public final void synpred140_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11952:3: ( rule__XCastedExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:11952:3: rule__XCastedExpression__Group_1__0
+        // InternalPerspectiveDsl.g:11730:3: ( rule__XMultiplicativeExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:11730:3: rule__XMultiplicativeExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XCastedExpression__Group_1__0();
+        rule__XMultiplicativeExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81227,11 +81450,11 @@
 
     // $ANTLR start synpred141_InternalPerspectiveDsl
     public final void synpred141_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:12141:3: ( rule__XPostfixOperation__Group_1__0 )
-        // InternalPerspectiveDsl.g:12141:3: rule__XPostfixOperation__Group_1__0
+        // InternalPerspectiveDsl.g:12000:3: ( rule__XCastedExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:12000:3: rule__XCastedExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XPostfixOperation__Group_1__0();
+        rule__XCastedExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81242,8 +81465,23 @@
 
     // $ANTLR start synpred142_InternalPerspectiveDsl
     public final void synpred142_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:12276:3: ( rule__XMemberFeatureCall__Alternatives_1 )
-        // InternalPerspectiveDsl.g:12276:3: rule__XMemberFeatureCall__Alternatives_1
+        // InternalPerspectiveDsl.g:12189:3: ( rule__XPostfixOperation__Group_1__0 )
+        // InternalPerspectiveDsl.g:12189:3: rule__XPostfixOperation__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XPostfixOperation__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred142_InternalPerspectiveDsl
+
+    // $ANTLR start synpred143_InternalPerspectiveDsl
+    public final void synpred143_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:12324:3: ( rule__XMemberFeatureCall__Alternatives_1 )
+        // InternalPerspectiveDsl.g:12324:3: rule__XMemberFeatureCall__Alternatives_1
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__Alternatives_1();
@@ -81253,12 +81491,12 @@
 
         }
     }
-    // $ANTLR end synpred142_InternalPerspectiveDsl
+    // $ANTLR end synpred143_InternalPerspectiveDsl
 
-    // $ANTLR start synpred144_InternalPerspectiveDsl
-    public final void synpred144_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:12574:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
-        // InternalPerspectiveDsl.g:12574:3: rule__XMemberFeatureCall__Group_1_1_3__0
+    // $ANTLR start synpred145_InternalPerspectiveDsl
+    public final void synpred145_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:12622:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+        // InternalPerspectiveDsl.g:12622:3: rule__XMemberFeatureCall__Group_1_1_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -81268,12 +81506,12 @@
 
         }
     }
-    // $ANTLR end synpred144_InternalPerspectiveDsl
+    // $ANTLR end synpred145_InternalPerspectiveDsl
 
-    // $ANTLR start synpred145_InternalPerspectiveDsl
-    public final void synpred145_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:12600:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
-        // InternalPerspectiveDsl.g:12600:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+    // $ANTLR start synpred146_InternalPerspectiveDsl
+    public final void synpred146_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:12648:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+        // InternalPerspectiveDsl.g:12648:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -81283,12 +81521,12 @@
 
         }
     }
-    // $ANTLR end synpred145_InternalPerspectiveDsl
+    // $ANTLR end synpred146_InternalPerspectiveDsl
 
-    // $ANTLR start synpred153_InternalPerspectiveDsl
-    public final void synpred153_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:13573:3: ( rule__XClosure__Group_1__0 )
-        // InternalPerspectiveDsl.g:13573:3: rule__XClosure__Group_1__0
+    // $ANTLR start synpred154_InternalPerspectiveDsl
+    public final void synpred154_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:13621:3: ( rule__XClosure__Group_1__0 )
+        // InternalPerspectiveDsl.g:13621:3: rule__XClosure__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XClosure__Group_1__0();
@@ -81298,12 +81536,12 @@
 
         }
     }
-    // $ANTLR end synpred153_InternalPerspectiveDsl
+    // $ANTLR end synpred154_InternalPerspectiveDsl
 
-    // $ANTLR start synpred160_InternalPerspectiveDsl
-    public final void synpred160_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:14544:3: ( rule__XIfExpression__Group_6__0 )
-        // InternalPerspectiveDsl.g:14544:3: rule__XIfExpression__Group_6__0
+    // $ANTLR start synpred161_InternalPerspectiveDsl
+    public final void synpred161_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:14592:3: ( rule__XIfExpression__Group_6__0 )
+        // InternalPerspectiveDsl.g:14592:3: rule__XIfExpression__Group_6__0
         {
         pushFollow(FOLLOW_2);
         rule__XIfExpression__Group_6__0();
@@ -81313,12 +81551,12 @@
 
         }
     }
-    // $ANTLR end synpred160_InternalPerspectiveDsl
+    // $ANTLR end synpred161_InternalPerspectiveDsl
 
-    // $ANTLR start synpred163_InternalPerspectiveDsl
-    public final void synpred163_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:15004:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
-        // InternalPerspectiveDsl.g:15004:3: rule__XSwitchExpression__Group_2_1_0__0
+    // $ANTLR start synpred164_InternalPerspectiveDsl
+    public final void synpred164_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:15052:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
+        // InternalPerspectiveDsl.g:15052:3: rule__XSwitchExpression__Group_2_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_1_0__0();
@@ -81328,12 +81566,12 @@
 
         }
     }
-    // $ANTLR end synpred163_InternalPerspectiveDsl
+    // $ANTLR end synpred164_InternalPerspectiveDsl
 
-    // $ANTLR start synpred176_InternalPerspectiveDsl
-    public final void synpred176_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17137:3: ( rule__XFeatureCall__Group_3__0 )
-        // InternalPerspectiveDsl.g:17137:3: rule__XFeatureCall__Group_3__0
+    // $ANTLR start synpred177_InternalPerspectiveDsl
+    public final void synpred177_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:17185:3: ( rule__XFeatureCall__Group_3__0 )
+        // InternalPerspectiveDsl.g:17185:3: rule__XFeatureCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__Group_3__0();
@@ -81343,12 +81581,12 @@
 
         }
     }
-    // $ANTLR end synpred176_InternalPerspectiveDsl
+    // $ANTLR end synpred177_InternalPerspectiveDsl
 
-    // $ANTLR start synpred177_InternalPerspectiveDsl
-    public final void synpred177_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17163:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
-        // InternalPerspectiveDsl.g:17163:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+    // $ANTLR start synpred178_InternalPerspectiveDsl
+    public final void synpred178_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:17211:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+        // InternalPerspectiveDsl.g:17211:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -81358,30 +81596,15 @@
 
         }
     }
-    // $ANTLR end synpred177_InternalPerspectiveDsl
-
-    // $ANTLR start synpred181_InternalPerspectiveDsl
-    public final void synpred181_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17623:3: ( rule__XConstructorCall__Group_3__0 )
-        // InternalPerspectiveDsl.g:17623:3: rule__XConstructorCall__Group_3__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XConstructorCall__Group_3__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred181_InternalPerspectiveDsl
+    // $ANTLR end synpred178_InternalPerspectiveDsl
 
     // $ANTLR start synpred182_InternalPerspectiveDsl
     public final void synpred182_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17650:3: ( rule__XConstructorCall__Group_4__0 )
-        // InternalPerspectiveDsl.g:17650:3: rule__XConstructorCall__Group_4__0
+        // InternalPerspectiveDsl.g:17671:3: ( rule__XConstructorCall__Group_3__0 )
+        // InternalPerspectiveDsl.g:17671:3: rule__XConstructorCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__XConstructorCall__Group_4__0();
+        rule__XConstructorCall__Group_3__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81392,8 +81615,23 @@
 
     // $ANTLR start synpred183_InternalPerspectiveDsl
     public final void synpred183_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17676:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
-        // InternalPerspectiveDsl.g:17676:3: rule__XConstructorCall__ArgumentsAssignment_5
+        // InternalPerspectiveDsl.g:17698:3: ( rule__XConstructorCall__Group_4__0 )
+        // InternalPerspectiveDsl.g:17698:3: rule__XConstructorCall__Group_4__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__Group_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred183_InternalPerspectiveDsl
+
+    // $ANTLR start synpred184_InternalPerspectiveDsl
+    public final void synpred184_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:17724:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+        // InternalPerspectiveDsl.g:17724:3: rule__XConstructorCall__ArgumentsAssignment_5
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_5();
@@ -81403,30 +81641,15 @@
 
         }
     }
-    // $ANTLR end synpred183_InternalPerspectiveDsl
-
-    // $ANTLR start synpred188_InternalPerspectiveDsl
-    public final void synpred188_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:18567:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
-        // InternalPerspectiveDsl.g:18567:3: rule__XReturnExpression__ExpressionAssignment_2
-        {
-        pushFollow(FOLLOW_2);
-        rule__XReturnExpression__ExpressionAssignment_2();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred188_InternalPerspectiveDsl
+    // $ANTLR end synpred184_InternalPerspectiveDsl
 
     // $ANTLR start synpred189_InternalPerspectiveDsl
     public final void synpred189_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:18709:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-        // InternalPerspectiveDsl.g:18709:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+        // InternalPerspectiveDsl.g:18615:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
+        // InternalPerspectiveDsl.g:18615:3: rule__XReturnExpression__ExpressionAssignment_2
         {
         pushFollow(FOLLOW_2);
-        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+        rule__XReturnExpression__ExpressionAssignment_2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81437,11 +81660,11 @@
 
     // $ANTLR start synpred190_InternalPerspectiveDsl
     public final void synpred190_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:18736:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
-        // InternalPerspectiveDsl.g:18736:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+        // InternalPerspectiveDsl.g:18757:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+        // InternalPerspectiveDsl.g:18757:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
         {
         pushFollow(FOLLOW_2);
-        rule__XTryCatchFinallyExpression__Group_3_0_1__0();
+        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81452,8 +81675,23 @@
 
     // $ANTLR start synpred191_InternalPerspectiveDsl
     public final void synpred191_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:19249:3: ( rule__QualifiedName__Group_1__0 )
-        // InternalPerspectiveDsl.g:19249:3: rule__QualifiedName__Group_1__0
+        // InternalPerspectiveDsl.g:18784:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+        // InternalPerspectiveDsl.g:18784:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XTryCatchFinallyExpression__Group_3_0_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred191_InternalPerspectiveDsl
+
+    // $ANTLR start synpred192_InternalPerspectiveDsl
+    public final void synpred192_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:19297:3: ( rule__QualifiedName__Group_1__0 )
+        // InternalPerspectiveDsl.g:19297:3: rule__QualifiedName__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__QualifiedName__Group_1__0();
@@ -81463,12 +81701,12 @@
 
         }
     }
-    // $ANTLR end synpred191_InternalPerspectiveDsl
+    // $ANTLR end synpred192_InternalPerspectiveDsl
 
-    // $ANTLR start synpred193_InternalPerspectiveDsl
-    public final void synpred193_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:19465:3: ( rule__JvmTypeReference__Group_0_1__0 )
-        // InternalPerspectiveDsl.g:19465:3: rule__JvmTypeReference__Group_0_1__0
+    // $ANTLR start synpred194_InternalPerspectiveDsl
+    public final void synpred194_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:19513:3: ( rule__JvmTypeReference__Group_0_1__0 )
+        // InternalPerspectiveDsl.g:19513:3: rule__JvmTypeReference__Group_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmTypeReference__Group_0_1__0();
@@ -81478,12 +81716,12 @@
 
         }
     }
-    // $ANTLR end synpred193_InternalPerspectiveDsl
+    // $ANTLR end synpred194_InternalPerspectiveDsl
 
-    // $ANTLR start synpred197_InternalPerspectiveDsl
-    public final void synpred197_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:19924:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
-        // InternalPerspectiveDsl.g:19924:3: rule__JvmParameterizedTypeReference__Group_1__0
+    // $ANTLR start synpred198_InternalPerspectiveDsl
+    public final void synpred198_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:19972:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+        // InternalPerspectiveDsl.g:19972:3: rule__JvmParameterizedTypeReference__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1__0();
@@ -81493,12 +81731,12 @@
 
         }
     }
-    // $ANTLR end synpred197_InternalPerspectiveDsl
+    // $ANTLR end synpred198_InternalPerspectiveDsl
 
-    // $ANTLR start synpred199_InternalPerspectiveDsl
-    public final void synpred199_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20059:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
-        // InternalPerspectiveDsl.g:20059:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+    // $ANTLR start synpred200_InternalPerspectiveDsl
+    public final void synpred200_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:20107:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
+        // InternalPerspectiveDsl.g:20107:3: rule__JvmParameterizedTypeReference__Group_1_4__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4__0();
@@ -81508,12 +81746,12 @@
 
         }
     }
-    // $ANTLR end synpred199_InternalPerspectiveDsl
+    // $ANTLR end synpred200_InternalPerspectiveDsl
 
-    // $ANTLR start synpred200_InternalPerspectiveDsl
-    public final void synpred200_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20194:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
-        // InternalPerspectiveDsl.g:20194:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+    // $ANTLR start synpred201_InternalPerspectiveDsl
+    public final void synpred201_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:20242:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
+        // InternalPerspectiveDsl.g:20242:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -81523,12 +81761,12 @@
 
         }
     }
-    // $ANTLR end synpred200_InternalPerspectiveDsl
+    // $ANTLR end synpred201_InternalPerspectiveDsl
 
-    // $ANTLR start synpred205_InternalPerspectiveDsl
-    public final void synpred205_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20992:2: ( rule__Perspective__UnorderedGroup_5__0 )
-        // InternalPerspectiveDsl.g:20992:2: rule__Perspective__UnorderedGroup_5__0
+    // $ANTLR start synpred206_InternalPerspectiveDsl
+    public final void synpred206_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:21040:2: ( rule__Perspective__UnorderedGroup_5__0 )
+        // InternalPerspectiveDsl.g:21040:2: rule__Perspective__UnorderedGroup_5__0
         {
         pushFollow(FOLLOW_2);
         rule__Perspective__UnorderedGroup_5__0();
@@ -81538,82 +81776,35 @@
 
         }
     }
-    // $ANTLR end synpred205_InternalPerspectiveDsl
-
-    // $ANTLR start synpred206_InternalPerspectiveDsl
-    public final void synpred206_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21007:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21007:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:21007:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21008:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred206_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0)");
-        }
-        // InternalPerspectiveDsl.g:21008:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
-        // InternalPerspectiveDsl.g:21009:5: ( ( rule__Perspective__Group_5_0__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0);
-        // InternalPerspectiveDsl.g:21015:5: ( ( rule__Perspective__Group_5_0__0 ) )
-        // InternalPerspectiveDsl.g:21016:6: ( rule__Perspective__Group_5_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveAccess().getGroup_5_0()); 
-        }
-        // InternalPerspectiveDsl.g:21017:6: ( rule__Perspective__Group_5_0__0 )
-        // InternalPerspectiveDsl.g:21017:7: rule__Perspective__Group_5_0__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__Perspective__Group_5_0__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
     // $ANTLR end synpred206_InternalPerspectiveDsl
 
     // $ANTLR start synpred207_InternalPerspectiveDsl
     public final void synpred207_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21022:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21022:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21055:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21055:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21022:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21023:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21055:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21056:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred207_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1)");
+            throw new FailedPredicateException(input, "synpred207_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0)");
         }
-        // InternalPerspectiveDsl.g:21023:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
-        // InternalPerspectiveDsl.g:21024:5: ( ( rule__Perspective__Group_5_1__0 ) )
+        // InternalPerspectiveDsl.g:21056:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
+        // InternalPerspectiveDsl.g:21057:5: ( ( rule__Perspective__Group_5_0__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1);
-        // InternalPerspectiveDsl.g:21030:5: ( ( rule__Perspective__Group_5_1__0 ) )
-        // InternalPerspectiveDsl.g:21031:6: ( rule__Perspective__Group_5_1__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0);
+        // InternalPerspectiveDsl.g:21063:5: ( ( rule__Perspective__Group_5_0__0 ) )
+        // InternalPerspectiveDsl.g:21064:6: ( rule__Perspective__Group_5_0__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveAccess().getGroup_5_1()); 
+           before(grammarAccess.getPerspectiveAccess().getGroup_5_0()); 
         }
-        // InternalPerspectiveDsl.g:21032:6: ( rule__Perspective__Group_5_1__0 )
-        // InternalPerspectiveDsl.g:21032:7: rule__Perspective__Group_5_1__0
+        // InternalPerspectiveDsl.g:21065:6: ( rule__Perspective__Group_5_0__0 )
+        // InternalPerspectiveDsl.g:21065:7: rule__Perspective__Group_5_0__0
         {
         pushFollow(FOLLOW_2);
-        rule__Perspective__Group_5_1__0();
+        rule__Perspective__Group_5_0__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81636,26 +81827,58 @@
 
     // $ANTLR start synpred208_InternalPerspectiveDsl
     public final void synpred208_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21066:2: ( rule__Perspective__UnorderedGroup_5__1 )
-        // InternalPerspectiveDsl.g:21066:2: rule__Perspective__UnorderedGroup_5__1
+        // InternalPerspectiveDsl.g:21070:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21070:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:21070:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21071:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred208_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1)");
+        }
+        // InternalPerspectiveDsl.g:21071:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21072:5: ( ( rule__Perspective__Group_5_1__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1);
+        // InternalPerspectiveDsl.g:21078:5: ( ( rule__Perspective__Group_5_1__0 ) )
+        // InternalPerspectiveDsl.g:21079:6: ( rule__Perspective__Group_5_1__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectiveAccess().getGroup_5_1()); 
+        }
+        // InternalPerspectiveDsl.g:21080:6: ( rule__Perspective__Group_5_1__0 )
+        // InternalPerspectiveDsl.g:21080:7: rule__Perspective__Group_5_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__Perspective__UnorderedGroup_5__1();
+        rule__Perspective__Group_5_1__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
     }
     // $ANTLR end synpred208_InternalPerspectiveDsl
 
     // $ANTLR start synpred209_InternalPerspectiveDsl
     public final void synpred209_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21078:2: ( rule__Perspective__UnorderedGroup_5__2 )
-        // InternalPerspectiveDsl.g:21078:2: rule__Perspective__UnorderedGroup_5__2
+        // InternalPerspectiveDsl.g:21114:2: ( rule__Perspective__UnorderedGroup_5__1 )
+        // InternalPerspectiveDsl.g:21114:2: rule__Perspective__UnorderedGroup_5__1
         {
         pushFollow(FOLLOW_2);
-        rule__Perspective__UnorderedGroup_5__2();
+        rule__Perspective__UnorderedGroup_5__1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81666,11 +81889,11 @@
 
     // $ANTLR start synpred210_InternalPerspectiveDsl
     public final void synpred210_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21102:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )
-        // InternalPerspectiveDsl.g:21102:2: rule__PerspectiveSashContainer__UnorderedGroup_3__0
+        // InternalPerspectiveDsl.g:21126:2: ( rule__Perspective__UnorderedGroup_5__2 )
+        // InternalPerspectiveDsl.g:21126:2: rule__Perspective__UnorderedGroup_5__2
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__0();
+        rule__Perspective__UnorderedGroup_5__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81681,78 +81904,46 @@
 
     // $ANTLR start synpred211_InternalPerspectiveDsl
     public final void synpred211_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21117:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21117:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:21117:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21118:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred211_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0)");
-        }
-        // InternalPerspectiveDsl.g:21118:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
-        // InternalPerspectiveDsl.g:21119:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0);
-        // InternalPerspectiveDsl.g:21125:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
-        // InternalPerspectiveDsl.g:21126:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_0()); 
-        }
-        // InternalPerspectiveDsl.g:21127:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
-        // InternalPerspectiveDsl.g:21127:7: rule__PerspectiveSashContainer__Group_3_0__0
+        // InternalPerspectiveDsl.g:21150:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )
+        // InternalPerspectiveDsl.g:21150:2: rule__PerspectiveSashContainer__UnorderedGroup_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__Group_3_0__0();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
     }
     // $ANTLR end synpred211_InternalPerspectiveDsl
 
     // $ANTLR start synpred212_InternalPerspectiveDsl
     public final void synpred212_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21132:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21132:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21165:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21165:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21132:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21133:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21165:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21166:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred212_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1)");
+            throw new FailedPredicateException(input, "synpred212_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0)");
         }
-        // InternalPerspectiveDsl.g:21133:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
-        // InternalPerspectiveDsl.g:21134:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:21166:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:21167:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1);
-        // InternalPerspectiveDsl.g:21140:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
-        // InternalPerspectiveDsl.g:21141:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0);
+        // InternalPerspectiveDsl.g:21173:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:21174:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_1()); 
+           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_0()); 
         }
-        // InternalPerspectiveDsl.g:21142:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
-        // InternalPerspectiveDsl.g:21142:7: rule__PerspectiveSashContainer__Group_3_1__0
+        // InternalPerspectiveDsl.g:21175:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+        // InternalPerspectiveDsl.g:21175:7: rule__PerspectiveSashContainer__Group_3_0__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__Group_3_1__0();
+        rule__PerspectiveSashContainer__Group_3_0__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81775,31 +81966,31 @@
 
     // $ANTLR start synpred213_InternalPerspectiveDsl
     public final void synpred213_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21147:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21147:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21180:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21180:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21147:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21148:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:21180:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21181:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred213_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2)");
+            throw new FailedPredicateException(input, "synpred213_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1)");
         }
-        // InternalPerspectiveDsl.g:21148:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
-        // InternalPerspectiveDsl.g:21149:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:21181:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21182:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2);
-        // InternalPerspectiveDsl.g:21155:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
-        // InternalPerspectiveDsl.g:21156:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1);
+        // InternalPerspectiveDsl.g:21188:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:21189:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_2()); 
+           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_1()); 
         }
-        // InternalPerspectiveDsl.g:21157:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
-        // InternalPerspectiveDsl.g:21157:7: rule__PerspectiveSashContainer__Group_3_2__0
+        // InternalPerspectiveDsl.g:21190:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+        // InternalPerspectiveDsl.g:21190:7: rule__PerspectiveSashContainer__Group_3_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__Group_3_2__0();
+        rule__PerspectiveSashContainer__Group_3_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81822,26 +82013,58 @@
 
     // $ANTLR start synpred214_InternalPerspectiveDsl
     public final void synpred214_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21191:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )
-        // InternalPerspectiveDsl.g:21191:2: rule__PerspectiveSashContainer__UnorderedGroup_3__1
+        // InternalPerspectiveDsl.g:21195:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21195:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:21195:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21196:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred214_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2)");
+        }
+        // InternalPerspectiveDsl.g:21196:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:21197:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2);
+        // InternalPerspectiveDsl.g:21203:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:21204:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_2()); 
+        }
+        // InternalPerspectiveDsl.g:21205:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+        // InternalPerspectiveDsl.g:21205:7: rule__PerspectiveSashContainer__Group_3_2__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__1();
+        rule__PerspectiveSashContainer__Group_3_2__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
     }
     // $ANTLR end synpred214_InternalPerspectiveDsl
 
     // $ANTLR start synpred215_InternalPerspectiveDsl
     public final void synpred215_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21203:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )
-        // InternalPerspectiveDsl.g:21203:2: rule__PerspectiveSashContainer__UnorderedGroup_3__2
+        // InternalPerspectiveDsl.g:21239:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )
+        // InternalPerspectiveDsl.g:21239:2: rule__PerspectiveSashContainer__UnorderedGroup_3__1
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__2();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81852,11 +82075,11 @@
 
     // $ANTLR start synpred216_InternalPerspectiveDsl
     public final void synpred216_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21215:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )
-        // InternalPerspectiveDsl.g:21215:2: rule__PerspectiveSashContainer__UnorderedGroup_3__3
+        // InternalPerspectiveDsl.g:21251:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )
+        // InternalPerspectiveDsl.g:21251:2: rule__PerspectiveSashContainer__UnorderedGroup_3__2
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__3();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81867,11 +82090,11 @@
 
     // $ANTLR start synpred217_InternalPerspectiveDsl
     public final void synpred217_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21239:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )
-        // InternalPerspectiveDsl.g:21239:2: rule__PerspectivePartStack__UnorderedGroup_3__0
+        // InternalPerspectiveDsl.g:21263:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )
+        // InternalPerspectiveDsl.g:21263:2: rule__PerspectiveSashContainer__UnorderedGroup_3__3
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__UnorderedGroup_3__0();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__3();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81882,78 +82105,46 @@
 
     // $ANTLR start synpred218_InternalPerspectiveDsl
     public final void synpred218_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21254:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21254:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:21254:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21255:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred218_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0)");
-        }
-        // InternalPerspectiveDsl.g:21255:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
-        // InternalPerspectiveDsl.g:21256:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0);
-        // InternalPerspectiveDsl.g:21262:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
-        // InternalPerspectiveDsl.g:21263:6: ( rule__PerspectivePartStack__Group_3_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_0()); 
-        }
-        // InternalPerspectiveDsl.g:21264:6: ( rule__PerspectivePartStack__Group_3_0__0 )
-        // InternalPerspectiveDsl.g:21264:7: rule__PerspectivePartStack__Group_3_0__0
+        // InternalPerspectiveDsl.g:21287:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )
+        // InternalPerspectiveDsl.g:21287:2: rule__PerspectivePartStack__UnorderedGroup_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__Group_3_0__0();
+        rule__PerspectivePartStack__UnorderedGroup_3__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
     }
     // $ANTLR end synpred218_InternalPerspectiveDsl
 
     // $ANTLR start synpred219_InternalPerspectiveDsl
     public final void synpred219_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21269:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21269:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21302:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21302:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21269:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21270:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21302:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21303:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred219_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1)");
+            throw new FailedPredicateException(input, "synpred219_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0)");
         }
-        // InternalPerspectiveDsl.g:21270:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
-        // InternalPerspectiveDsl.g:21271:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:21303:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:21304:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1);
-        // InternalPerspectiveDsl.g:21277:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
-        // InternalPerspectiveDsl.g:21278:6: ( rule__PerspectivePartStack__Group_3_1__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0);
+        // InternalPerspectiveDsl.g:21310:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:21311:6: ( rule__PerspectivePartStack__Group_3_0__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_1()); 
+           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_0()); 
         }
-        // InternalPerspectiveDsl.g:21279:6: ( rule__PerspectivePartStack__Group_3_1__0 )
-        // InternalPerspectiveDsl.g:21279:7: rule__PerspectivePartStack__Group_3_1__0
+        // InternalPerspectiveDsl.g:21312:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+        // InternalPerspectiveDsl.g:21312:7: rule__PerspectivePartStack__Group_3_0__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__Group_3_1__0();
+        rule__PerspectivePartStack__Group_3_0__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -81976,31 +82167,31 @@
 
     // $ANTLR start synpred220_InternalPerspectiveDsl
     public final void synpred220_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21284:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21284:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21317:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21317:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21284:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21285:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:21317:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21318:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred220_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2)");
+            throw new FailedPredicateException(input, "synpred220_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1)");
         }
-        // InternalPerspectiveDsl.g:21285:116: ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
-        // InternalPerspectiveDsl.g:21286:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:21318:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21319:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2);
-        // InternalPerspectiveDsl.g:21292:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
-        // InternalPerspectiveDsl.g:21293:6: ( rule__PerspectivePartStack__Group_3_2__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1);
+        // InternalPerspectiveDsl.g:21325:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:21326:6: ( rule__PerspectivePartStack__Group_3_1__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_2()); 
+           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_1()); 
         }
-        // InternalPerspectiveDsl.g:21294:6: ( rule__PerspectivePartStack__Group_3_2__0 )
-        // InternalPerspectiveDsl.g:21294:7: rule__PerspectivePartStack__Group_3_2__0
+        // InternalPerspectiveDsl.g:21327:6: ( rule__PerspectivePartStack__Group_3_1__0 )
+        // InternalPerspectiveDsl.g:21327:7: rule__PerspectivePartStack__Group_3_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__Group_3_2__0();
+        rule__PerspectivePartStack__Group_3_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82023,26 +82214,58 @@
 
     // $ANTLR start synpred221_InternalPerspectiveDsl
     public final void synpred221_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21328:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )
-        // InternalPerspectiveDsl.g:21328:2: rule__PerspectivePartStack__UnorderedGroup_3__1
+        // InternalPerspectiveDsl.g:21332:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21332:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:21332:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21333:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred221_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2)");
+        }
+        // InternalPerspectiveDsl.g:21333:116: ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:21334:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2);
+        // InternalPerspectiveDsl.g:21340:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:21341:6: ( rule__PerspectivePartStack__Group_3_2__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_2()); 
+        }
+        // InternalPerspectiveDsl.g:21342:6: ( rule__PerspectivePartStack__Group_3_2__0 )
+        // InternalPerspectiveDsl.g:21342:7: rule__PerspectivePartStack__Group_3_2__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__UnorderedGroup_3__1();
+        rule__PerspectivePartStack__Group_3_2__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
     }
     // $ANTLR end synpred221_InternalPerspectiveDsl
 
     // $ANTLR start synpred222_InternalPerspectiveDsl
     public final void synpred222_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21340:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )
-        // InternalPerspectiveDsl.g:21340:2: rule__PerspectivePartStack__UnorderedGroup_3__2
+        // InternalPerspectiveDsl.g:21376:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )
+        // InternalPerspectiveDsl.g:21376:2: rule__PerspectivePartStack__UnorderedGroup_3__1
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__UnorderedGroup_3__2();
+        rule__PerspectivePartStack__UnorderedGroup_3__1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82053,11 +82276,11 @@
 
     // $ANTLR start synpred223_InternalPerspectiveDsl
     public final void synpred223_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21352:2: ( rule__PerspectivePartStack__UnorderedGroup_3__3 )
-        // InternalPerspectiveDsl.g:21352:2: rule__PerspectivePartStack__UnorderedGroup_3__3
+        // InternalPerspectiveDsl.g:21388:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )
+        // InternalPerspectiveDsl.g:21388:2: rule__PerspectivePartStack__UnorderedGroup_3__2
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__UnorderedGroup_3__3();
+        rule__PerspectivePartStack__UnorderedGroup_3__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82068,11 +82291,11 @@
 
     // $ANTLR start synpred224_InternalPerspectiveDsl
     public final void synpred224_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21376:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )
-        // InternalPerspectiveDsl.g:21376:2: rule__PerspectivePart__UnorderedGroup_3__0
+        // InternalPerspectiveDsl.g:21400:2: ( rule__PerspectivePartStack__UnorderedGroup_3__3 )
+        // InternalPerspectiveDsl.g:21400:2: rule__PerspectivePartStack__UnorderedGroup_3__3
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__0();
+        rule__PerspectivePartStack__UnorderedGroup_3__3();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82083,78 +82306,46 @@
 
     // $ANTLR start synpred225_InternalPerspectiveDsl
     public final void synpred225_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21391:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21391:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:21391:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21392:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred225_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0)");
-        }
-        // InternalPerspectiveDsl.g:21392:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
-        // InternalPerspectiveDsl.g:21393:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0);
-        // InternalPerspectiveDsl.g:21399:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
-        // InternalPerspectiveDsl.g:21400:6: ( rule__PerspectivePart__Group_3_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_0()); 
-        }
-        // InternalPerspectiveDsl.g:21401:6: ( rule__PerspectivePart__Group_3_0__0 )
-        // InternalPerspectiveDsl.g:21401:7: rule__PerspectivePart__Group_3_0__0
+        // InternalPerspectiveDsl.g:21424:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )
+        // InternalPerspectiveDsl.g:21424:2: rule__PerspectivePart__UnorderedGroup_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_0__0();
+        rule__PerspectivePart__UnorderedGroup_3__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
     }
     // $ANTLR end synpred225_InternalPerspectiveDsl
 
     // $ANTLR start synpred226_InternalPerspectiveDsl
     public final void synpred226_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21406:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21406:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21439:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21439:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21406:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21407:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21439:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21440:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred226_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1)");
+            throw new FailedPredicateException(input, "synpred226_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0)");
         }
-        // InternalPerspectiveDsl.g:21407:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
-        // InternalPerspectiveDsl.g:21408:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:21440:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:21441:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1);
-        // InternalPerspectiveDsl.g:21414:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
-        // InternalPerspectiveDsl.g:21415:6: ( rule__PerspectivePart__Group_3_1__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0);
+        // InternalPerspectiveDsl.g:21447:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:21448:6: ( rule__PerspectivePart__Group_3_0__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_1()); 
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_0()); 
         }
-        // InternalPerspectiveDsl.g:21416:6: ( rule__PerspectivePart__Group_3_1__0 )
-        // InternalPerspectiveDsl.g:21416:7: rule__PerspectivePart__Group_3_1__0
+        // InternalPerspectiveDsl.g:21449:6: ( rule__PerspectivePart__Group_3_0__0 )
+        // InternalPerspectiveDsl.g:21449:7: rule__PerspectivePart__Group_3_0__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_1__0();
+        rule__PerspectivePart__Group_3_0__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82177,31 +82368,31 @@
 
     // $ANTLR start synpred227_InternalPerspectiveDsl
     public final void synpred227_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21421:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21421:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21454:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21454:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21421:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21422:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:21454:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21455:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred227_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2)");
+            throw new FailedPredicateException(input, "synpred227_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1)");
         }
-        // InternalPerspectiveDsl.g:21422:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
-        // InternalPerspectiveDsl.g:21423:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:21455:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:21456:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2);
-        // InternalPerspectiveDsl.g:21429:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
-        // InternalPerspectiveDsl.g:21430:6: ( rule__PerspectivePart__Group_3_2__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1);
+        // InternalPerspectiveDsl.g:21462:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:21463:6: ( rule__PerspectivePart__Group_3_1__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_2()); 
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_1()); 
         }
-        // InternalPerspectiveDsl.g:21431:6: ( rule__PerspectivePart__Group_3_2__0 )
-        // InternalPerspectiveDsl.g:21431:7: rule__PerspectivePart__Group_3_2__0
+        // InternalPerspectiveDsl.g:21464:6: ( rule__PerspectivePart__Group_3_1__0 )
+        // InternalPerspectiveDsl.g:21464:7: rule__PerspectivePart__Group_3_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_2__0();
+        rule__PerspectivePart__Group_3_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82224,31 +82415,31 @@
 
     // $ANTLR start synpred228_InternalPerspectiveDsl
     public final void synpred228_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21436:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21436:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21469:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21469:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:21436:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21437:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+        // InternalPerspectiveDsl.g:21469:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21470:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred228_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3)");
+            throw new FailedPredicateException(input, "synpred228_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2)");
         }
-        // InternalPerspectiveDsl.g:21437:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
-        // InternalPerspectiveDsl.g:21438:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+        // InternalPerspectiveDsl.g:21470:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:21471:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3);
-        // InternalPerspectiveDsl.g:21444:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
-        // InternalPerspectiveDsl.g:21445:6: ( rule__PerspectivePart__Group_3_3__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2);
+        // InternalPerspectiveDsl.g:21477:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:21478:6: ( rule__PerspectivePart__Group_3_2__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_3()); 
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_2()); 
         }
-        // InternalPerspectiveDsl.g:21446:6: ( rule__PerspectivePart__Group_3_3__0 )
-        // InternalPerspectiveDsl.g:21446:7: rule__PerspectivePart__Group_3_3__0
+        // InternalPerspectiveDsl.g:21479:6: ( rule__PerspectivePart__Group_3_2__0 )
+        // InternalPerspectiveDsl.g:21479:7: rule__PerspectivePart__Group_3_2__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_3__0();
+        rule__PerspectivePart__Group_3_2__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82271,26 +82462,58 @@
 
     // $ANTLR start synpred229_InternalPerspectiveDsl
     public final void synpred229_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21480:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )
-        // InternalPerspectiveDsl.g:21480:2: rule__PerspectivePart__UnorderedGroup_3__1
+        // InternalPerspectiveDsl.g:21484:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21484:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:21484:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21485:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred229_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3)");
+        }
+        // InternalPerspectiveDsl.g:21485:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+        // InternalPerspectiveDsl.g:21486:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3);
+        // InternalPerspectiveDsl.g:21492:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+        // InternalPerspectiveDsl.g:21493:6: ( rule__PerspectivePart__Group_3_3__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_3()); 
+        }
+        // InternalPerspectiveDsl.g:21494:6: ( rule__PerspectivePart__Group_3_3__0 )
+        // InternalPerspectiveDsl.g:21494:7: rule__PerspectivePart__Group_3_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__1();
+        rule__PerspectivePart__Group_3_3__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
     }
     // $ANTLR end synpred229_InternalPerspectiveDsl
 
     // $ANTLR start synpred230_InternalPerspectiveDsl
     public final void synpred230_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21492:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )
-        // InternalPerspectiveDsl.g:21492:2: rule__PerspectivePart__UnorderedGroup_3__2
+        // InternalPerspectiveDsl.g:21528:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )
+        // InternalPerspectiveDsl.g:21528:2: rule__PerspectivePart__UnorderedGroup_3__1
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__2();
+        rule__PerspectivePart__UnorderedGroup_3__1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82301,11 +82524,11 @@
 
     // $ANTLR start synpred231_InternalPerspectiveDsl
     public final void synpred231_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21504:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )
-        // InternalPerspectiveDsl.g:21504:2: rule__PerspectivePart__UnorderedGroup_3__3
+        // InternalPerspectiveDsl.g:21540:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )
+        // InternalPerspectiveDsl.g:21540:2: rule__PerspectivePart__UnorderedGroup_3__2
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__3();
+        rule__PerspectivePart__UnorderedGroup_3__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82316,11 +82539,11 @@
 
     // $ANTLR start synpred232_InternalPerspectiveDsl
     public final void synpred232_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21516:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )
-        // InternalPerspectiveDsl.g:21516:2: rule__PerspectivePart__UnorderedGroup_3__4
+        // InternalPerspectiveDsl.g:21552:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )
+        // InternalPerspectiveDsl.g:21552:2: rule__PerspectivePart__UnorderedGroup_3__3
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__4();
+        rule__PerspectivePart__UnorderedGroup_3__3();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82331,11 +82554,11 @@
 
     // $ANTLR start synpred233_InternalPerspectiveDsl
     public final void synpred233_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21540:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )
-        // InternalPerspectiveDsl.g:21540:2: rule__PerspectiveSearch__UnorderedGroup_4__0
+        // InternalPerspectiveDsl.g:21564:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )
+        // InternalPerspectiveDsl.g:21564:2: rule__PerspectivePart__UnorderedGroup_3__4
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSearch__UnorderedGroup_4__0();
+        rule__PerspectivePart__UnorderedGroup_3__4();
 
         state._fsp--;
         if (state.failed) return ;
@@ -82346,28 +82569,43 @@
 
     // $ANTLR start synpred234_InternalPerspectiveDsl
     public final void synpred234_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21555:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:21555:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21588:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )
+        // InternalPerspectiveDsl.g:21588:2: rule__PerspectiveSearch__UnorderedGroup_4__0
         {
-        // InternalPerspectiveDsl.g:21555:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:21556:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+        pushFollow(FOLLOW_2);
+        rule__PerspectiveSearch__UnorderedGroup_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred234_InternalPerspectiveDsl
+
+    // $ANTLR start synpred235_InternalPerspectiveDsl
+    public final void synpred235_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:21603:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:21603:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:21603:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:21604:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
         {
         if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred234_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0)");
+            throw new FailedPredicateException(input, "synpred235_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0)");
         }
-        // InternalPerspectiveDsl.g:21556:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
-        // InternalPerspectiveDsl.g:21557:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+        // InternalPerspectiveDsl.g:21604:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+        // InternalPerspectiveDsl.g:21605:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
         {
         getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0);
-        // InternalPerspectiveDsl.g:21563:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
-        // InternalPerspectiveDsl.g:21564:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+        // InternalPerspectiveDsl.g:21611:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+        // InternalPerspectiveDsl.g:21612:6: ( rule__PerspectiveSearch__Group_4_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getPerspectiveSearchAccess().getGroup_4_0()); 
         }
-        // InternalPerspectiveDsl.g:21565:6: ( rule__PerspectiveSearch__Group_4_0__0 )
-        // InternalPerspectiveDsl.g:21565:7: rule__PerspectiveSearch__Group_4_0__0
+        // InternalPerspectiveDsl.g:21613:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+        // InternalPerspectiveDsl.g:21613:7: rule__PerspectiveSearch__Group_4_0__0
         {
         pushFollow(FOLLOW_2);
         rule__PerspectiveSearch__Group_4_0__0();
@@ -82389,12 +82627,12 @@
 
         }
     }
-    // $ANTLR end synpred234_InternalPerspectiveDsl
+    // $ANTLR end synpred235_InternalPerspectiveDsl
 
-    // $ANTLR start synpred235_InternalPerspectiveDsl
-    public final void synpred235_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:21599:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )
-        // InternalPerspectiveDsl.g:21599:2: rule__PerspectiveSearch__UnorderedGroup_4__1
+    // $ANTLR start synpred236_InternalPerspectiveDsl
+    public final void synpred236_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:21647:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )
+        // InternalPerspectiveDsl.g:21647:2: rule__PerspectiveSearch__UnorderedGroup_4__1
         {
         pushFollow(FOLLOW_2);
         rule__PerspectiveSearch__UnorderedGroup_4__1();
@@ -82404,7 +82642,7 @@
 
         }
     }
-    // $ANTLR end synpred235_InternalPerspectiveDsl
+    // $ANTLR end synpred236_InternalPerspectiveDsl
 
     // Delegated rules
 
@@ -82422,11 +82660,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred188_InternalPerspectiveDsl() {
+    public final boolean synpred146_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred188_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred146_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -82450,20 +82688,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred193_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred193_InternalPerspectiveDsl_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_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82492,6 +82716,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred184_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred184_InternalPerspectiveDsl_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 synpred215_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82506,6 +82744,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred236_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred236_InternalPerspectiveDsl_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 synpred134_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82520,6 +82772,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred75_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred75_InternalPerspectiveDsl_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 synpred92_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82576,34 +82842,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred163_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred163_InternalPerspectiveDsl_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 synpred24_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred24_InternalPerspectiveDsl_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 synpred142_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82618,11 +82856,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred87_InternalPerspectiveDsl() {
+    public final boolean synpred66_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred87_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred66_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -82730,11 +82968,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred133_InternalPerspectiveDsl() {
+    public final boolean synpred164_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred133_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred164_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -82744,11 +82982,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred51_InternalPerspectiveDsl() {
+    public final boolean synpred93_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred51_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred93_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -82786,20 +83024,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred160_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred160_InternalPerspectiveDsl_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 synpred218_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82828,20 +83052,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred176_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred176_InternalPerspectiveDsl_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 synpred183_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82884,20 +83094,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred199_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred199_InternalPerspectiveDsl_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_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -82982,20 +83178,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred98_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred98_InternalPerspectiveDsl_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 synpred139_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -83010,11 +83192,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred153_InternalPerspectiveDsl() {
+    public final boolean synpred132_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred153_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred132_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83038,20 +83220,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred73_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred73_InternalPerspectiveDsl_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 synpred140_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -83080,6 +83248,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred161_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred161_InternalPerspectiveDsl_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 synpred198_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred198_InternalPerspectiveDsl_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 synpred217_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -83178,11 +83374,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred144_InternalPerspectiveDsl() {
+    public final boolean synpred194_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred144_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred194_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83206,6 +83402,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred192_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred192_InternalPerspectiveDsl_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 synpred53_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred53_InternalPerspectiveDsl_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 synpred209_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -83220,11 +83444,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred231_InternalPerspectiveDsl() {
+    public final boolean synpred27_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred231_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred27_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83234,11 +83458,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred205_InternalPerspectiveDsl() {
+    public final boolean synpred231_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred205_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred231_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83276,6 +83500,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred154_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred154_InternalPerspectiveDsl_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 synpred99_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred99_InternalPerspectiveDsl_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 synpred189_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -83290,34 +83542,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred131_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred131_InternalPerspectiveDsl_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 synpred91_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred91_InternalPerspectiveDsl_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 synpred136_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -83332,11 +83556,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred197_InternalPerspectiveDsl() {
+    public final boolean synpred201_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred197_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred201_InternalPerspectiveDsl_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 synpred178_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred178_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83360,11 +83598,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred181_InternalPerspectiveDsl() {
+    public final boolean synpred220_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred181_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred220_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83374,11 +83612,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred220_InternalPerspectiveDsl() {
+    public final boolean synpred88_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred220_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred88_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83402,11 +83640,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred65_InternalPerspectiveDsl() {
+    public final boolean synpred143_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred65_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred143_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -83418,39 +83656,39 @@
     }
 
 
-    protected DFA5 dfa5 = new DFA5(this);
-    protected DFA7 dfa7 = new DFA7(this);
+    protected DFA6 dfa6 = new DFA6(this);
     protected DFA8 dfa8 = new DFA8(this);
     protected DFA9 dfa9 = new DFA9(this);
-    protected DFA16 dfa16 = new DFA16(this);
-    protected DFA24 dfa24 = new DFA24(this);
-    protected DFA27 dfa27 = new DFA27(this);
+    protected DFA10 dfa10 = new DFA10(this);
+    protected DFA17 dfa17 = new DFA17(this);
+    protected DFA25 dfa25 = new DFA25(this);
     protected DFA28 dfa28 = new DFA28(this);
-    protected DFA31 dfa31 = new DFA31(this);
-    protected DFA36 dfa36 = new DFA36(this);
-    protected DFA39 dfa39 = new DFA39(this);
-    protected DFA72 dfa72 = new DFA72(this);
-    protected DFA78 dfa78 = new DFA78(this);
-    protected DFA85 dfa85 = new DFA85(this);
+    protected DFA29 dfa29 = new DFA29(this);
+    protected DFA32 dfa32 = new DFA32(this);
+    protected DFA37 dfa37 = new DFA37(this);
+    protected DFA40 dfa40 = new DFA40(this);
+    protected DFA73 dfa73 = new DFA73(this);
+    protected DFA79 dfa79 = new DFA79(this);
     protected DFA86 dfa86 = new DFA86(this);
-    protected DFA94 dfa94 = new DFA94(this);
-    protected DFA104 dfa104 = new DFA104(this);
-    protected DFA117 dfa117 = new DFA117(this);
+    protected DFA87 dfa87 = new DFA87(this);
+    protected DFA95 dfa95 = new DFA95(this);
+    protected DFA105 dfa105 = new DFA105(this);
     protected DFA118 dfa118 = new DFA118(this);
-    protected DFA122 dfa122 = new DFA122(this);
+    protected DFA119 dfa119 = new DFA119(this);
     protected DFA123 dfa123 = new DFA123(this);
     protected DFA124 dfa124 = new DFA124(this);
-    protected DFA129 dfa129 = new DFA129(this);
-    protected DFA138 dfa138 = new DFA138(this);
-    protected DFA141 dfa141 = new DFA141(this);
+    protected DFA125 dfa125 = new DFA125(this);
+    protected DFA130 dfa130 = new DFA130(this);
+    protected DFA139 dfa139 = new DFA139(this);
+    protected DFA142 dfa142 = new DFA142(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\53\1\uffff\1\4\1\uffff\1\53\1\uffff";
-    static final String dfa_4s = "\1\u0080\1\uffff\1\140\1\uffff\1\44\1\uffff\1\140\1\uffff";
+    static final String dfa_4s = "\1\u0081\1\uffff\1\140\1\uffff\1\44\1\uffff\1\140\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\121\uffff\1\3",
+            "\1\2\51\uffff\1\1\122\uffff\1\3",
             "",
             "\1\4\3\uffff\1\5\5\uffff\1\5\52\uffff\1\5",
             "",
@@ -83468,11 +83706,11 @@
     static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
     static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
 
-    class DFA5 extends DFA {
+    class DFA6 extends DFA {
 
-        public DFA5(BaseRecognizer recognizer) {
+        public DFA6(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 5;
+            this.decisionNumber = 6;
             this.eot = dfa_1;
             this.eof = dfa_2;
             this.min = dfa_3;
@@ -83482,16 +83720,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "2963: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 "2984: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\u0085\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\3\uffff\1\2\52\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
+            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\52\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\13\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -83535,11 +83773,11 @@
     static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
     static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
 
-    class DFA7 extends DFA {
+    class DFA8 extends DFA {
 
-        public DFA7(BaseRecognizer recognizer) {
+        public DFA8(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 7;
+            this.decisionNumber = 8;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -83549,37 +83787,37 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "3017:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
+            return "3038: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;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA7_1 = input.LA(1);
+                        int LA8_1 = input.LA(1);
 
                          
-                        int index7_1 = input.index();
+                        int index8_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred24_InternalPerspectiveDsl()) ) {s = 34;}
+                        if ( (synpred25_InternalPerspectiveDsl()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index7_1);
+                        input.seek(index8_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 7, _s, input);
+                new NoViableAltException(getDescription(), 8, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_14s = {
-            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\52\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\12\uffff\1\2",
+            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\52\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\13\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -83617,50 +83855,6 @@
     };
     static final short[][] dfa_14 = unpackEncodedStringArray(dfa_14s);
 
-    class DFA8 extends DFA {
-
-        public DFA8(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 8;
-            this.eot = dfa_8;
-            this.eof = dfa_8;
-            this.min = dfa_9;
-            this.max = dfa_10;
-            this.accept = dfa_11;
-            this.special = dfa_12;
-            this.transition = dfa_14;
-        }
-        public String getDescription() {
-            return "3038: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;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA8_1 = input.LA(1);
-
-                         
-                        int index8_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred25_InternalPerspectiveDsl()) ) {s = 34;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index8_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 8, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA9 extends DFA {
 
         public DFA9(BaseRecognizer recognizer) {
@@ -83675,7 +83869,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "3059:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+            return "3059: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;
@@ -83704,6 +83898,50 @@
             throw nvae;
         }
     }
+
+    class DFA10 extends DFA {
+
+        public DFA10(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 10;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_9;
+            this.max = dfa_10;
+            this.accept = dfa_11;
+            this.special = dfa_12;
+            this.transition = dfa_14;
+        }
+        public String getDescription() {
+            return "3080:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA10_1 = input.LA(1);
+
+                         
+                        int index10_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred27_InternalPerspectiveDsl()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index10_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 10, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
     static final String dfa_15s = "\13\uffff";
     static final String dfa_16s = "\1\32\2\uffff\1\32\7\uffff";
     static final String dfa_17s = "\1\41\2\uffff\1\36\7\uffff";
@@ -83730,11 +83968,11 @@
     static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s);
     static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s);
 
-    class DFA16 extends DFA {
+    class DFA17 extends DFA {
 
-        public DFA16(BaseRecognizer recognizer) {
+        public DFA17(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 16;
+            this.decisionNumber = 17;
             this.eot = dfa_15;
             this.eof = dfa_15;
             this.min = dfa_16;
@@ -83744,25 +83982,25 @@
             this.transition = dfa_20;
         }
         public String getDescription() {
-            return "3260:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+            return "3281: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\u0082\2\61\1\uffff\5\u0085\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\125\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\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\50\uffff\1\3\1\uffff\32\3\6\uffff\2\3\1\uffff\2\3",
             ""
     };
 
@@ -83774,11 +84012,11 @@
     static final short[] dfa_26 = DFA.unpackEncodedString(dfa_26s);
     static final short[][] dfa_27 = unpackEncodedStringArray(dfa_27s);
 
-    class DFA24 extends DFA {
+    class DFA25 extends DFA {
 
-        public DFA24(BaseRecognizer recognizer) {
+        public DFA25(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 24;
+            this.decisionNumber = 25;
             this.eot = dfa_21;
             this.eof = dfa_22;
             this.min = dfa_23;
@@ -83788,15 +84026,15 @@
             this.transition = dfa_27;
         }
         public String getDescription() {
-            return "3494:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+            return "3515: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\u0085\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\3\uffff\1\5\53\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\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\3\uffff\1\5\53\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\11\uffff\1\3\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -83838,11 +84076,11 @@
     static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
     static final short[][] dfa_32 = unpackEncodedStringArray(dfa_32s);
 
-    class DFA27 extends DFA {
+    class DFA28 extends DFA {
 
-        public DFA27(BaseRecognizer recognizer) {
+        public DFA28(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 27;
+            this.decisionNumber = 28;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -83852,57 +84090,57 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3563: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 "3584: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;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA27_1 = input.LA(1);
+                        int LA28_1 = input.LA(1);
 
                          
-                        int index27_1 = input.index();
+                        int index28_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred65_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred66_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index27_1);
+                        input.seek(index28_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA27_2 = input.LA(1);
+                        int LA28_2 = input.LA(1);
 
                          
-                        int index27_2 = input.index();
+                        int index28_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred65_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred66_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index27_2);
+                        input.seek(index28_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 27, _s, input);
+                new NoViableAltException(getDescription(), 28, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     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\u0085\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\3\uffff\1\2\53\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\12\uffff\1\14",
+            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\3\uffff\1\2\53\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\13\uffff\1\14",
             "",
             "",
             "",
@@ -83943,11 +84181,11 @@
     static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
     static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
 
-    class DFA28 extends DFA {
+    class DFA29 extends DFA {
 
-        public DFA28(BaseRecognizer recognizer) {
+        public DFA29(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 28;
+            this.decisionNumber = 29;
             this.eot = dfa_33;
             this.eof = dfa_33;
             this.min = dfa_34;
@@ -83957,37 +84195,37 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "3584:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
+            return "3605: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;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA28_23 = input.LA(1);
+                        int LA29_23 = input.LA(1);
 
                          
-                        int index28_23 = input.index();
+                        int index29_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred73_InternalPerspectiveDsl()) ) {s = 30;}
+                        if ( (synpred74_InternalPerspectiveDsl()) ) {s = 30;}
 
-                        else if ( (synpred74_InternalPerspectiveDsl()) ) {s = 31;}
+                        else if ( (synpred75_InternalPerspectiveDsl()) ) {s = 31;}
 
                          
-                        input.seek(index28_23);
+                        input.seek(index29_23);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 28, _s, input);
+                new NoViableAltException(getDescription(), 29, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     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\3\uffff\1\2\53\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\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\3\uffff\1\2\53\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\13\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -84025,11 +84263,11 @@
     };
     static final short[][] dfa_39 = unpackEncodedStringArray(dfa_39s);
 
-    class DFA31 extends DFA {
+    class DFA32 extends DFA {
 
-        public DFA31(BaseRecognizer recognizer) {
+        public DFA32(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 31;
+            this.decisionNumber = 32;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -84039,41 +84277,41 @@
             this.transition = dfa_39;
         }
         public String getDescription() {
-            return "3755:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
+            return "3776: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;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA31_1 = input.LA(1);
+                        int LA32_1 = input.LA(1);
 
                          
-                        int index31_1 = input.index();
+                        int index32_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred87_InternalPerspectiveDsl()) ) {s = 34;}
+                        if ( (synpred88_InternalPerspectiveDsl()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index31_1);
+                        input.seek(index32_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(), 32, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA36 extends DFA {
+    class DFA37 extends DFA {
 
-        public DFA36(BaseRecognizer recognizer) {
+        public DFA37(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 36;
+            this.decisionNumber = 37;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -84083,56 +84321,56 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3860:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+            return "3881: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;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA36_1 = input.LA(1);
+                        int LA37_1 = input.LA(1);
 
                          
-                        int index36_1 = input.index();
+                        int index37_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred92_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred93_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index36_1);
+                        input.seek(index37_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA36_2 = input.LA(1);
+                        int LA37_2 = input.LA(1);
 
                          
-                        int index36_2 = input.index();
+                        int index37_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred92_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred93_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index36_2);
+                        input.seek(index37_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 36, _s, input);
+                new NoViableAltException(getDescription(), 37, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA39 extends DFA {
+    class DFA40 extends DFA {
 
-        public DFA39(BaseRecognizer recognizer) {
+        public DFA40(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 39;
+            this.decisionNumber = 40;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -84142,57 +84380,57 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3941:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+            return "3962: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;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA39_1 = input.LA(1);
+                        int LA40_1 = input.LA(1);
 
                          
-                        int index39_1 = input.index();
+                        int index40_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred98_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred99_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index39_1);
+                        input.seek(index40_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA39_2 = input.LA(1);
+                        int LA40_2 = input.LA(1);
 
                          
-                        int index39_2 = input.index();
+                        int index40_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred98_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred99_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index39_2);
+                        input.seek(index40_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 39, _s, input);
+                new NoViableAltException(getDescription(), 40, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     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\u0085\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\5\1\0\1\1\1\3\1\6\1\2\1\4\2\uffff}>";
+    static final String dfa_44s = "\1\uffff\1\4\1\3\1\0\1\6\1\5\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\3\uffff\2\10\50\uffff\1\10\1\uffff\32\10\5\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\3\uffff\2\10\50\uffff\1\10\1\uffff\32\10\6\uffff\2\10\1\uffff\2\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -84210,11 +84448,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA72 extends DFA {
+    class DFA73 extends DFA {
 
-        public DFA72(BaseRecognizer recognizer) {
+        public DFA73(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 72;
+            this.decisionNumber = 73;
             this.eot = dfa_21;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -84224,132 +84462,132 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "9684:2: ( rule__XAssignment__Group_1_1__0 )?";
+            return "9732: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 LA72_2 = input.LA(1);
+                        int LA73_3 = input.LA(1);
 
                          
-                        int index72_2 = input.index();
+                        int index73_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index72_2);
+                        input.seek(index73_3);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA72_3 = input.LA(1);
+                        int LA73_6 = input.LA(1);
 
                          
-                        int index72_3 = input.index();
+                        int index73_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index72_3);
+                        input.seek(index73_6);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA72_6 = input.LA(1);
+                        int LA73_7 = input.LA(1);
 
                          
-                        int index72_6 = input.index();
+                        int index73_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index72_6);
+                        input.seek(index73_7);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA72_4 = input.LA(1);
+                        int LA73_2 = input.LA(1);
 
                          
-                        int index72_4 = input.index();
+                        int index73_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index72_4);
+                        input.seek(index73_2);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA72_7 = input.LA(1);
+                        int LA73_1 = input.LA(1);
 
                          
-                        int index72_7 = input.index();
+                        int index73_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index72_7);
+                        input.seek(index73_1);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA72_1 = input.LA(1);
+                        int LA73_5 = input.LA(1);
 
                          
-                        int index72_1 = input.index();
+                        int index73_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index72_1);
+                        input.seek(index73_5);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA72_5 = input.LA(1);
+                        int LA73_4 = input.LA(1);
 
                          
-                        int index72_5 = input.index();
+                        int index73_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index72_5);
+                        input.seek(index73_4);
                         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(), 73, _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\u0085\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\6\1\2\1\7\1\0\1\3\1\5\1\4\1\1\1\uffff}>";
+    static final String dfa_50s = "\2\uffff\1\7\1\6\1\5\1\2\1\1\1\0\1\4\1\3\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\3\uffff\2\1\50\uffff\1\1\1\uffff\32\1\5\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\3\uffff\2\1\50\uffff\1\1\1\uffff\32\1\6\uffff\2\1\1\uffff\2\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -84368,11 +84606,11 @@
     static final short[] dfa_50 = DFA.unpackEncodedString(dfa_50s);
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA78 extends DFA {
+    class DFA79 extends DFA {
 
-        public DFA78(BaseRecognizer recognizer) {
+        public DFA79(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 78;
+            this.decisionNumber = 79;
             this.eot = dfa_15;
             this.eof = dfa_46;
             this.min = dfa_47;
@@ -84382,136 +84620,136 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "()* loopback of 10980:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+            return "()* loopback of 11028: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 LA78_5 = input.LA(1);
+                        int LA79_7 = input.LA(1);
 
                          
-                        int index78_5 = input.index();
+                        int index79_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_5);
+                        input.seek(index79_7);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA78_9 = input.LA(1);
+                        int LA79_6 = input.LA(1);
 
                          
-                        int index78_9 = input.index();
+                        int index79_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_9);
+                        input.seek(index79_6);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA78_3 = input.LA(1);
+                        int LA79_5 = input.LA(1);
 
                          
-                        int index78_3 = input.index();
+                        int index79_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_3);
+                        input.seek(index79_5);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA78_6 = input.LA(1);
+                        int LA79_9 = input.LA(1);
 
                          
-                        int index78_6 = input.index();
+                        int index79_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_6);
+                        input.seek(index79_9);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA78_8 = input.LA(1);
+                        int LA79_8 = input.LA(1);
 
                          
-                        int index78_8 = input.index();
+                        int index79_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_8);
+                        input.seek(index79_8);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA78_7 = input.LA(1);
+                        int LA79_4 = input.LA(1);
 
                          
-                        int index78_7 = input.index();
+                        int index79_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_7);
+                        input.seek(index79_4);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA78_2 = input.LA(1);
+                        int LA79_3 = input.LA(1);
 
                          
-                        int index78_2 = input.index();
+                        int index79_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_2);
+                        input.seek(index79_3);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA78_4 = input.LA(1);
+                        int LA79_2 = input.LA(1);
 
                          
-                        int index78_4 = input.index();
+                        int index79_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred137_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index78_4);
+                        input.seek(index79_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 78, _s, input);
+                new NoViableAltException(getDescription(), 79, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -84519,11 +84757,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\u0085\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\3\uffff\2\2\50\uffff\1\2\1\uffff\1\1\31\2\5\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\3\uffff\2\2\50\uffff\1\2\1\uffff\1\1\31\2\6\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -84611,11 +84849,11 @@
     static final short[] dfa_57 = DFA.unpackEncodedString(dfa_57s);
     static final short[][] dfa_58 = unpackEncodedStringArray(dfa_58s);
 
-    class DFA85 extends DFA {
+    class DFA86 extends DFA {
 
-        public DFA85(BaseRecognizer recognizer) {
+        public DFA86(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 85;
+            this.decisionNumber = 86;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -84625,37 +84863,37 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "12574:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+            return "12622: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 LA85_1 = input.LA(1);
+                        int LA86_1 = input.LA(1);
 
                          
-                        int index85_1 = input.index();
+                        int index86_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred144_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred145_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index85_1);
+                        input.seek(index86_1);
                         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(), 86, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_59s = {
-            "\5\2\5\uffff\45\2\3\uffff\2\2\50\uffff\1\2\1\uffff\5\2\1\1\24\2\5\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\3\uffff\2\2\50\uffff\1\2\1\uffff\5\2\1\1\24\2\6\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -84736,11 +84974,11 @@
     };
     static final short[][] dfa_59 = unpackEncodedStringArray(dfa_59s);
 
-    class DFA86 extends DFA {
+    class DFA87 extends DFA {
 
-        public DFA86(BaseRecognizer recognizer) {
+        public DFA87(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 86;
+            this.decisionNumber = 87;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -84750,42 +84988,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "12600:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+            return "12648: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 LA86_1 = input.LA(1);
+                        int LA87_1 = input.LA(1);
 
                          
-                        int index86_1 = input.index();
+                        int index87_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred145_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred146_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index86_1);
+                        input.seek(index87_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 86, _s, input);
+                new NoViableAltException(getDescription(), 87, _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\u0085\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\3\uffff\1\5\53\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\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\3\uffff\1\5\53\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\11\uffff\1\3\2\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -84832,11 +85070,11 @@
     static final short[] dfa_64 = DFA.unpackEncodedString(dfa_64s);
     static final short[][] dfa_65 = unpackEncodedStringArray(dfa_65s);
 
-    class DFA94 extends DFA {
+    class DFA95 extends DFA {
 
-        public DFA94(BaseRecognizer recognizer) {
+        public DFA95(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 94;
+            this.decisionNumber = 95;
             this.eot = dfa_60;
             this.eof = dfa_60;
             this.min = dfa_61;
@@ -84846,57 +85084,57 @@
             this.transition = dfa_65;
         }
         public String getDescription() {
-            return "13573:2: ( rule__XClosure__Group_1__0 )?";
+            return "13621: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 LA94_1 = input.LA(1);
+                        int LA95_1 = input.LA(1);
 
                          
-                        int index94_1 = input.index();
+                        int index95_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred153_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred154_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index94_1);
+                        input.seek(index95_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA94_2 = input.LA(1);
+                        int LA95_2 = input.LA(1);
 
                          
-                        int index94_2 = input.index();
+                        int index95_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred153_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred154_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index94_2);
+                        input.seek(index95_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 94, _s, input);
+                new NoViableAltException(getDescription(), 95, _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\u0085\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\3\uffff\1\4\53\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\12\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\3\uffff\1\4\53\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\13\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -84939,11 +85177,11 @@
     static final short[] dfa_70 = DFA.unpackEncodedString(dfa_70s);
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA104 extends DFA {
+    class DFA105 extends DFA {
 
-        public DFA104(BaseRecognizer recognizer) {
+        public DFA105(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 104;
+            this.decisionNumber = 105;
             this.eot = dfa_66;
             this.eof = dfa_66;
             this.min = dfa_67;
@@ -84953,90 +85191,46 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "15004:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
+            return "15052: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 LA104_1 = input.LA(1);
+                        int LA105_1 = input.LA(1);
 
                          
-                        int index104_1 = input.index();
+                        int index105_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred163_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred164_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index104_1);
+                        input.seek(index105_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA104_2 = input.LA(1);
+                        int LA105_2 = input.LA(1);
 
                          
-                        int index104_2 = input.index();
+                        int index105_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred163_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred164_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index104_2);
+                        input.seek(index105_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 104, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
-    class DFA117 extends DFA {
-
-        public DFA117(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 117;
-            this.eot = dfa_52;
-            this.eof = dfa_53;
-            this.min = dfa_54;
-            this.max = dfa_55;
-            this.accept = dfa_56;
-            this.special = dfa_57;
-            this.transition = dfa_58;
-        }
-        public String getDescription() {
-            return "17137: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 LA117_1 = input.LA(1);
-
-                         
-                        int index117_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred176_InternalPerspectiveDsl()) ) {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);
+                new NoViableAltException(getDescription(), 105, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -85053,10 +85247,10 @@
             this.max = dfa_55;
             this.accept = dfa_56;
             this.special = dfa_57;
-            this.transition = dfa_59;
+            this.transition = dfa_58;
         }
         public String getDescription() {
-            return "17163:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+            return "17185:2: ( rule__XFeatureCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -85085,8 +85279,52 @@
             throw nvae;
         }
     }
+
+    class DFA119 extends DFA {
+
+        public DFA119(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 119;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_59;
+        }
+        public String getDescription() {
+            return "17211: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 LA119_1 = input.LA(1);
+
+                         
+                        int index119_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred178_InternalPerspectiveDsl()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index119_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 119, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
     static final String[] dfa_72s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\3\uffff\2\2\50\uffff\1\2\1\uffff\32\2\5\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\3\uffff\2\2\50\uffff\1\2\1\uffff\32\2\6\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -85167,50 +85405,6 @@
     };
     static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);
 
-    class DFA122 extends DFA {
-
-        public DFA122(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 122;
-            this.eot = dfa_52;
-            this.eof = dfa_53;
-            this.min = dfa_54;
-            this.max = dfa_55;
-            this.accept = dfa_56;
-            this.special = dfa_57;
-            this.transition = dfa_72;
-        }
-        public String getDescription() {
-            return "17623: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 LA122_1 = input.LA(1);
-
-                         
-                        int index122_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred181_InternalPerspectiveDsl()) ) {s = 77;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index122_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 122, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA123 extends DFA {
 
         public DFA123(BaseRecognizer recognizer) {
@@ -85222,10 +85416,10 @@
             this.max = dfa_55;
             this.accept = dfa_56;
             this.special = dfa_57;
-            this.transition = dfa_58;
+            this.transition = dfa_72;
         }
         public String getDescription() {
-            return "17650:2: ( rule__XConstructorCall__Group_4__0 )?";
+            return "17671:2: ( rule__XConstructorCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -85266,10 +85460,10 @@
             this.max = dfa_55;
             this.accept = dfa_56;
             this.special = dfa_57;
-            this.transition = dfa_59;
+            this.transition = dfa_58;
         }
         public String getDescription() {
-            return "17676:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+            return "17698:2: ( rule__XConstructorCall__Group_4__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -85298,13 +85492,57 @@
             throw nvae;
         }
     }
+
+    class DFA125 extends DFA {
+
+        public DFA125(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 125;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_59;
+        }
+        public String getDescription() {
+            return "17724: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 LA125_1 = input.LA(1);
+
+                         
+                        int index125_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred184_InternalPerspectiveDsl()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index125_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 125, _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\u0085\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\3\uffff\1\12\1\41\50\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\5\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\3\uffff\1\12\1\41\50\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\6\uffff\2\41\1\uffff\1\41\1\22",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -85390,11 +85628,11 @@
     static final short[] dfa_77 = DFA.unpackEncodedString(dfa_77s);
     static final short[][] dfa_78 = unpackEncodedStringArray(dfa_78s);
 
-    class DFA129 extends DFA {
+    class DFA130 extends DFA {
 
-        public DFA129(BaseRecognizer recognizer) {
+        public DFA130(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 129;
+            this.decisionNumber = 130;
             this.eot = dfa_52;
             this.eof = dfa_73;
             this.min = dfa_74;
@@ -85404,496 +85642,496 @@
             this.transition = dfa_78;
         }
         public String getDescription() {
-            return "18567:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+            return "18615: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 LA129_1 = input.LA(1);
+                        int LA130_1 = input.LA(1);
 
                          
-                        int index129_1 = input.index();
+                        int index130_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_1);
+                        input.seek(index130_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA129_2 = input.LA(1);
+                        int LA130_2 = input.LA(1);
 
                          
-                        int index129_2 = input.index();
+                        int index130_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_2);
+                        input.seek(index130_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA129_3 = input.LA(1);
+                        int LA130_3 = input.LA(1);
 
                          
-                        int index129_3 = input.index();
+                        int index130_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_3);
+                        input.seek(index130_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA129_4 = input.LA(1);
+                        int LA130_4 = input.LA(1);
 
                          
-                        int index129_4 = input.index();
+                        int index130_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_4);
+                        input.seek(index130_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA129_5 = input.LA(1);
+                        int LA130_5 = input.LA(1);
 
                          
-                        int index129_5 = input.index();
+                        int index130_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_5);
+                        input.seek(index130_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA129_6 = input.LA(1);
+                        int LA130_6 = input.LA(1);
 
                          
-                        int index129_6 = input.index();
+                        int index130_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_6);
+                        input.seek(index130_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA129_7 = input.LA(1);
+                        int LA130_7 = input.LA(1);
 
                          
-                        int index129_7 = input.index();
+                        int index130_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_7);
+                        input.seek(index130_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA129_8 = input.LA(1);
+                        int LA130_8 = input.LA(1);
 
                          
-                        int index129_8 = input.index();
+                        int index130_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_8);
+                        input.seek(index130_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA129_9 = input.LA(1);
+                        int LA130_9 = input.LA(1);
 
                          
-                        int index129_9 = input.index();
+                        int index130_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_9);
+                        input.seek(index130_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA129_10 = input.LA(1);
+                        int LA130_10 = input.LA(1);
 
                          
-                        int index129_10 = input.index();
+                        int index130_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_10);
+                        input.seek(index130_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA129_11 = input.LA(1);
+                        int LA130_11 = input.LA(1);
 
                          
-                        int index129_11 = input.index();
+                        int index130_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_11);
+                        input.seek(index130_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA129_12 = input.LA(1);
+                        int LA130_12 = input.LA(1);
 
                          
-                        int index129_12 = input.index();
+                        int index130_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_12);
+                        input.seek(index130_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA129_13 = input.LA(1);
+                        int LA130_13 = input.LA(1);
 
                          
-                        int index129_13 = input.index();
+                        int index130_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_13);
+                        input.seek(index130_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA129_14 = input.LA(1);
+                        int LA130_14 = input.LA(1);
 
                          
-                        int index129_14 = input.index();
+                        int index130_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_14);
+                        input.seek(index130_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA129_15 = input.LA(1);
+                        int LA130_15 = input.LA(1);
 
                          
-                        int index129_15 = input.index();
+                        int index130_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_15);
+                        input.seek(index130_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA129_16 = input.LA(1);
+                        int LA130_16 = input.LA(1);
 
                          
-                        int index129_16 = input.index();
+                        int index130_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_16);
+                        input.seek(index130_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA129_17 = input.LA(1);
+                        int LA130_17 = input.LA(1);
 
                          
-                        int index129_17 = input.index();
+                        int index130_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_17);
+                        input.seek(index130_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA129_18 = input.LA(1);
+                        int LA130_18 = input.LA(1);
 
                          
-                        int index129_18 = input.index();
+                        int index130_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_18);
+                        input.seek(index130_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA129_19 = input.LA(1);
+                        int LA130_19 = input.LA(1);
 
                          
-                        int index129_19 = input.index();
+                        int index130_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_19);
+                        input.seek(index130_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA129_20 = input.LA(1);
+                        int LA130_20 = input.LA(1);
 
                          
-                        int index129_20 = input.index();
+                        int index130_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_20);
+                        input.seek(index130_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA129_21 = input.LA(1);
+                        int LA130_21 = input.LA(1);
 
                          
-                        int index129_21 = input.index();
+                        int index130_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_21);
+                        input.seek(index130_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA129_22 = input.LA(1);
+                        int LA130_22 = input.LA(1);
 
                          
-                        int index129_22 = input.index();
+                        int index130_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_22);
+                        input.seek(index130_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA129_23 = input.LA(1);
+                        int LA130_23 = input.LA(1);
 
                          
-                        int index129_23 = input.index();
+                        int index130_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_23);
+                        input.seek(index130_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA129_24 = input.LA(1);
+                        int LA130_24 = input.LA(1);
 
                          
-                        int index129_24 = input.index();
+                        int index130_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_24);
+                        input.seek(index130_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA129_25 = input.LA(1);
+                        int LA130_25 = input.LA(1);
 
                          
-                        int index129_25 = input.index();
+                        int index130_25 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_25);
+                        input.seek(index130_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA129_26 = input.LA(1);
+                        int LA130_26 = input.LA(1);
 
                          
-                        int index129_26 = input.index();
+                        int index130_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_26);
+                        input.seek(index130_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA129_27 = input.LA(1);
+                        int LA130_27 = input.LA(1);
 
                          
-                        int index129_27 = input.index();
+                        int index130_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_27);
+                        input.seek(index130_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA129_28 = input.LA(1);
+                        int LA130_28 = input.LA(1);
 
                          
-                        int index129_28 = input.index();
+                        int index130_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_28);
+                        input.seek(index130_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA129_29 = input.LA(1);
+                        int LA130_29 = input.LA(1);
 
                          
-                        int index129_29 = input.index();
+                        int index130_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_29);
+                        input.seek(index130_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA129_30 = input.LA(1);
+                        int LA130_30 = input.LA(1);
 
                          
-                        int index129_30 = input.index();
+                        int index130_30 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_30);
+                        input.seek(index130_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA129_31 = input.LA(1);
+                        int LA130_31 = input.LA(1);
 
                          
-                        int index129_31 = input.index();
+                        int index130_31 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_31);
+                        input.seek(index130_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA129_32 = input.LA(1);
+                        int LA130_32 = input.LA(1);
 
                          
-                        int index129_32 = input.index();
+                        int index130_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred189_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index129_32);
+                        input.seek(index130_32);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 129, _s, input);
+                new NoViableAltException(getDescription(), 130, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -85901,11 +86139,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\u0085\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\3\uffff\2\2\50\uffff\1\2\1\uffff\32\2\1\uffff\1\2\3\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\3\uffff\2\2\50\uffff\1\2\1\uffff\32\2\1\uffff\1\2\4\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -85994,11 +86232,11 @@
     static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
     static final short[][] dfa_85 = unpackEncodedStringArray(dfa_85s);
 
-    class DFA138 extends DFA {
+    class DFA139 extends DFA {
 
-        public DFA138(BaseRecognizer recognizer) {
+        public DFA139(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 138;
+            this.decisionNumber = 139;
             this.eot = dfa_79;
             this.eof = dfa_80;
             this.min = dfa_81;
@@ -86008,41 +86246,41 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "19924:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
+            return "19972: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 LA138_1 = input.LA(1);
+                        int LA139_1 = input.LA(1);
 
                          
-                        int index138_1 = input.index();
+                        int index139_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred197_InternalPerspectiveDsl()) ) {s = 78;}
+                        if ( (synpred198_InternalPerspectiveDsl()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index138_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(), 138, _s, input);
+                new NoViableAltException(getDescription(), 139, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA141 extends DFA {
+    class DFA142 extends DFA {
 
-        public DFA141(BaseRecognizer recognizer) {
+        public DFA142(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 141;
+            this.decisionNumber = 142;
             this.eot = dfa_79;
             this.eof = dfa_80;
             this.min = dfa_81;
@@ -86052,31 +86290,31 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "20194:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+            return "20242: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 LA141_1 = input.LA(1);
+                        int LA142_1 = input.LA(1);
 
                          
-                        int index141_1 = input.index();
+                        int index142_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred200_InternalPerspectiveDsl()) ) {s = 78;}
+                        if ( (synpred201_InternalPerspectiveDsl()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index141_1);
+                        input.seek(index142_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 141, _s, input);
+                new NoViableAltException(getDescription(), 142, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -86133,20 +86371,20 @@
     public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
     public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
     public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000001L});
     public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000400000000010L,0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000400000000010L,0x0000000000000000L,0x0000000000000002L});
     public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
     public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0001000000000010L});
     public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000001000000010L});
     public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
     public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14CE00000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14CE00000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
     public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14C600000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14C600000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14E600000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14E600000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
     public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
     public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0001E00000000010L});
@@ -86176,42 +86414,42 @@
     public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
     public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
     public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000060000000000L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000000000000006L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000080000000002L,0x0000000000000000L,0x0000000000000006L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x000000000000000CL});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000080000000002L,0x0000000000000000L,0x000000000000000CL});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000000000000004L});
     public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0003E00008000010L});
     public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000000L,0x0000008400000000L});
     public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000080000010L,0x1000000400000000L});
     public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000004000000L,0x0000001000000000L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0047E10C880001F0L,0x05FF14CE00000000L,0x0000000000000028L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x00C7E10C080001F0L,0x05FF14C600000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0047F10C880001F0L,0x05FF14C600000000L,0x0000000000000038L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0047E10C880001F0L,0x05FF14CE00000000L,0x0000000000000050L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x00C7E10C080001F0L,0x05FF14C600000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0047F10C880001F0L,0x05FF14C600000000L,0x0000000000000070L});
     public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000080000010L,0x0000000400000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0047F10C080001F2L,0x05FF14C600000000L,0x0000000000000030L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000080000010L,0x0000000400000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0047F10C080001F2L,0x05FF14C600000000L,0x0000000000000060L});
     public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
     public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
     public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
     public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0047E10C880001F0L,0x05FF14C600000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0047E10C880001F0L,0x05FF14C600000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0080000080000010L,0x0000E01400000000L});
     public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000080000012L,0x0000A01400000000L});
     public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
     public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000080000010L,0x0000A01400000000L});
     public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
-    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0047F10C080001F0L,0x05FF14C700000000L,0x0000000000000030L});
-    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14C700000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0047F10C080001F0L,0x05FF14C600000000L,0x0000000000000030L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0047F10C080001F0L,0x05FF14C700000000L,0x0000000000000060L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0047E10C080001F0L,0x05FF14C700000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0047F10C080001F0L,0x05FF14C600000000L,0x0000000000000060L});
     public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
     public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
-    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x00C7F10C080001F0L,0x05FF14C600000000L,0x0000000000000030L});
-    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000100000000000L,0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x00C7F10C080001F0L,0x05FF14C600000000L,0x0000000000000060L});
+    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000100000000000L,0x0000000000000000L,0x0000000000000020L});
     public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
     public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000000008000000L,0x0000008400000000L});
-    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
     public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x00000000000001C0L});
-    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x00040000000001E0L,0x003000C000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x00040000000001E0L,0x003000C000000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000000000L,0x0000008800000000L});
     public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
     public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java
index cb61326..32c9e75 100644
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java
+++ b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java
@@ -195,6 +195,9 @@
 	public void completePerspectiveBrowser_Url(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completePerspectiveBrowser_CubeView(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 
 	public void complete_PerspectiveModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
@@ -259,6 +262,9 @@
 	public void complete_PerspectiveWelcome(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_PerspectiveSaiku(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_PerspectiveSearch(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/contentassist/PerspectiveDslProposalProvider.xtend b/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/contentassist/PerspectiveDslProposalProvider.xtend
index 76e0d07..4c4932a 100644
--- a/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/contentassist/PerspectiveDslProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/contentassist/PerspectiveDslProposalProvider.xtend
@@ -60,7 +60,7 @@
 		var imageSelectorDialog = new ImageSelectorDialog(shell, 16);
 		imageSelectorDialog.setFilterExtensions(extensions)
 		var imageFileName = imageSelectorDialog.open(true);
-		return "\"".concat(imageFileName).concat("\"");
+		return if (imageFileName !== null) "\"".concat(imageFileName).concat("\"") else "";
 	}
 
 }
diff --git a/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/IconNameTextApplier.java b/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/IconNameTextApplier.java
index 2f18a94..95f65a8 100644
--- a/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/IconNameTextApplier.java
+++ b/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/IconNameTextApplier.java
@@ -47,6 +47,12 @@
     ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(shell, 16);
     imageSelectorDialog.setFilterExtensions(this.extensions);
     String imageFileName = imageSelectorDialog.open(true);
-    return "\"".concat(imageFileName).concat("\"");
+    String _xifexpression = null;
+    if ((imageFileName != null)) {
+      _xifexpression = "\"".concat(imageFileName).concat("\"");
+    } else {
+      _xifexpression = "";
+    }
+    return _xifexpression;
   }
 }
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveBrowser.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveBrowser.java
index c0a75e0..bfff0b6 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveBrowser.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveBrowser.java
@@ -26,6 +26,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.perspective.PerspectiveBrowser#getUrl <em>Url</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.perspective.PerspectiveBrowser#isCubeView <em>Cube View</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage#getPerspectiveBrowser()
@@ -59,4 +60,30 @@
 	 */
 	void setUrl(String value);
 
+	/**
+	 * Returns the value of the '<em><b>Cube View</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cube View</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cube View</em>' attribute.
+	 * @see #setCubeView(boolean)
+	 * @see org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage#getPerspectiveBrowser_CubeView()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isCubeView();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.perspective.PerspectiveBrowser#isCubeView <em>Cube View</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cube View</em>' attribute.
+	 * @see #isCubeView()
+	 * @generated
+	 */
+	void setCubeView(boolean value);
+
 } // PerspectiveBrowser
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java
index 94c976a..af619ba 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java
@@ -233,6 +233,15 @@
 	PerspectiveWelcome createPerspectiveWelcome();
 
 	/**
+	 * Returns a new object of class '<em>Perspective Saiku</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Perspective Saiku</em>'.
+	 * @generated
+	 */
+	PerspectiveSaiku createPerspectiveSaiku();
+
+	/**
 	 * Returns a new object of class '<em>Perspective Search</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java
index 47b032b..b42f151 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java
@@ -39,7 +39,7 @@
  * <!-- end-user-doc -->
  * @see org.eclipse.osbp.xtext.perspective.PerspectiveDslFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='perspective' modelName='PerspectiveDsl' prefix='PerspectiveDsl' 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\tJoerg Riegel - Initial implementation \n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='perspective' modelName='PerspectiveDsl' prefix='PerspectiveDsl' updateClasspath='false' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License 2.0  \r\n which accompanies this distribution, and is available at \r\n https://www.eclipse.org/legal/epl-2.0/ \r\n \r\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\tJoerg Riegel - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='perspectivedsl'"
  * @generated
  */
@@ -203,7 +203,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PERSPECTIVE_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int PERSPECTIVE_PACKAGE___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Perspective Package</em>' class.
@@ -1396,6 +1396,43 @@
 	int PERSPECTIVE_WELCOME_OPERATION_COUNT = PERSPECTIVE_VIEW_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveSaikuImpl <em>Perspective Saiku</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveSaikuImpl
+	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveSaiku()
+	 * @generated
+	 */
+	int PERSPECTIVE_SAIKU = 23;
+
+	/**
+	 * The number of structural features of the '<em>Perspective Saiku</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSPECTIVE_SAIKU_FEATURE_COUNT = PERSPECTIVE_VIEW_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSPECTIVE_SAIKU___ERESOLVE_PROXY__INTERNALEOBJECT = PERSPECTIVE_VIEW___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Perspective Saiku</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSPECTIVE_SAIKU_OPERATION_COUNT = PERSPECTIVE_VIEW_OPERATION_COUNT + 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveSearchImpl <em>Perspective Search</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1403,7 +1440,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveSearch()
 	 * @generated
 	 */
-	int PERSPECTIVE_SEARCH = 23;
+	int PERSPECTIVE_SEARCH = 24;
 
 	/**
 	 * The feature id for the '<em><b>Dto Ref</b></em>' reference.
@@ -1467,7 +1504,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveDataInterchange()
 	 * @generated
 	 */
-	int PERSPECTIVE_DATA_INTERCHANGE = 24;
+	int PERSPECTIVE_DATA_INTERCHANGE = 25;
 
 	/**
 	 * The feature id for the '<em><b>Ref</b></em>' reference.
@@ -1513,7 +1550,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveTitle()
 	 * @generated
 	 */
-	int PERSPECTIVE_TITLE = 25;
+	int PERSPECTIVE_TITLE = 26;
 
 	/**
 	 * The feature id for the '<em><b>Html Name</b></em>' attribute.
@@ -1559,7 +1596,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveDashboard()
 	 * @generated
 	 */
-	int PERSPECTIVE_DASHBOARD = 26;
+	int PERSPECTIVE_DASHBOARD = 27;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1605,7 +1642,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveBrowser()
 	 * @generated
 	 */
-	int PERSPECTIVE_BROWSER = 27;
+	int PERSPECTIVE_BROWSER = 28;
 
 	/**
 	 * The feature id for the '<em><b>Url</b></em>' attribute.
@@ -1617,13 +1654,22 @@
 	int PERSPECTIVE_BROWSER__URL = PERSPECTIVE_VIEW_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Cube View</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSPECTIVE_BROWSER__CUBE_VIEW = PERSPECTIVE_VIEW_FEATURE_COUNT + 1;
+
+	/**
 	 * The number of structural features of the '<em>Perspective Browser</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PERSPECTIVE_BROWSER_FEATURE_COUNT = PERSPECTIVE_VIEW_FEATURE_COUNT + 1;
+	int PERSPECTIVE_BROWSER_FEATURE_COUNT = PERSPECTIVE_VIEW_FEATURE_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -1651,7 +1697,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getSashOrientation()
 	 * @generated
 	 */
-	int SASH_ORIENTATION = 28;
+	int SASH_ORIENTATION = 29;
 
 	/**
 	 * The meta object id for the '<em>Internal EObject</em>' data type.
@@ -1661,7 +1707,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getInternalEObject()
 	 * @generated
 	 */
-	int INTERNAL_EOBJECT = 29;
+	int INTERNAL_EOBJECT = 30;
 
 
 	/**
@@ -2334,6 +2380,16 @@
 	EClass getPerspectiveWelcome();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveSaiku <em>Perspective Saiku</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Perspective Saiku</em>'.
+	 * @see org.eclipse.osbp.xtext.perspective.PerspectiveSaiku
+	 * @generated
+	 */
+	EClass getPerspectiveSaiku();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveSearch <em>Perspective Search</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2461,6 +2517,17 @@
 	EAttribute getPerspectiveBrowser_Url();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.perspective.PerspectiveBrowser#isCubeView <em>Cube View</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cube View</em>'.
+	 * @see org.eclipse.osbp.xtext.perspective.PerspectiveBrowser#isCubeView()
+	 * @see #getPerspectiveBrowser()
+	 * @generated
+	 */
+	EAttribute getPerspectiveBrowser_CubeView();
+
+	/**
 	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.perspective.SashOrientation <em>Sash Orientation</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3055,6 +3122,16 @@
 		EClass PERSPECTIVE_WELCOME = eINSTANCE.getPerspectiveWelcome();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveSaikuImpl <em>Perspective Saiku</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveSaikuImpl
+		 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveSaiku()
+		 * @generated
+		 */
+		EClass PERSPECTIVE_SAIKU = eINSTANCE.getPerspectiveSaiku();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveSearchImpl <em>Perspective Search</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -3161,6 +3238,14 @@
 		EAttribute PERSPECTIVE_BROWSER__URL = eINSTANCE.getPerspectiveBrowser_Url();
 
 		/**
+		 * The meta object literal for the '<em><b>Cube View</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PERSPECTIVE_BROWSER__CUBE_VIEW = eINSTANCE.getPerspectiveBrowser_CubeView();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.perspective.SashOrientation <em>Sash Orientation</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveSaiku.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveSaiku.java
new file mode 100644
index 0000000..4cf7b34
--- /dev/null
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveSaiku.java
@@ -0,0 +1,30 @@
+/**
+ * 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.perspective;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Perspective Saiku</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage#getPerspectiveSaiku()
+ * @model
+ * @generated
+ */
+public interface PerspectiveSaiku extends PerspectiveView {
+} // PerspectiveSaiku
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveBrowserImpl.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveBrowserImpl.java
index 5c0d4e5..1e0d4c5 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveBrowserImpl.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveBrowserImpl.java
@@ -33,6 +33,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveBrowserImpl#getUrl <em>Url</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveBrowserImpl#isCubeView <em>Cube View</em>}</li>
  * </ul>
  *
  * @generated
@@ -59,6 +60,26 @@
 	protected String url = URL_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #isCubeView() <em>Cube View</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCubeView()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CUBE_VIEW_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCubeView() <em>Cube View</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCubeView()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean cubeView = CUBE_VIEW_EDEFAULT;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -103,11 +124,34 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean isCubeView() {
+		return cubeView;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCubeView(boolean newCubeView) {
+		boolean oldCubeView = cubeView;
+		cubeView = newCubeView;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PerspectiveDslPackage.PERSPECTIVE_BROWSER__CUBE_VIEW, oldCubeView, cubeView));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__URL:
 				return getUrl();
+			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__CUBE_VIEW:
+				return isCubeView();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -123,6 +167,9 @@
 			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__URL:
 				setUrl((String)newValue);
 				return;
+			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__CUBE_VIEW:
+				setCubeView((Boolean)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -138,6 +185,9 @@
 			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__URL:
 				setUrl(URL_EDEFAULT);
 				return;
+			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__CUBE_VIEW:
+				setCubeView(CUBE_VIEW_EDEFAULT);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -152,6 +202,8 @@
 		switch (featureID) {
 			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__URL:
 				return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url);
+			case PerspectiveDslPackage.PERSPECTIVE_BROWSER__CUBE_VIEW:
+				return cubeView != CUBE_VIEW_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -168,6 +220,8 @@
 		StringBuffer result = new StringBuffer(super.toString());
 		result.append(" (url: ");
 		result.append(url);
+		result.append(", cubeView: ");
+		result.append(cubeView);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java
index 9a9b740..b80c00a 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java
@@ -93,6 +93,7 @@
 			case PerspectiveDslPackage.PERSPECTIVE_BPMN: return createPerspectiveBPMN();
 			case PerspectiveDslPackage.PERSPECTIVE_KANBAN: return createPerspectiveKanban();
 			case PerspectiveDslPackage.PERSPECTIVE_WELCOME: return createPerspectiveWelcome();
+			case PerspectiveDslPackage.PERSPECTIVE_SAIKU: return createPerspectiveSaiku();
 			case PerspectiveDslPackage.PERSPECTIVE_SEARCH: return createPerspectiveSearch();
 			case PerspectiveDslPackage.PERSPECTIVE_DATA_INTERCHANGE: return createPerspectiveDataInterchange();
 			case PerspectiveDslPackage.PERSPECTIVE_TITLE: return createPerspectiveTitle();
@@ -362,6 +363,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public PerspectiveSaiku createPerspectiveSaiku() {
+		PerspectiveSaikuImpl perspectiveSaiku = new PerspectiveSaikuImpl();
+		return perspectiveSaiku;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public PerspectiveSearch createPerspectiveSearch() {
 		PerspectiveSearchImpl perspectiveSearch = new PerspectiveSearchImpl();
 		return perspectiveSearch;
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java
index 7688701..920c063 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java
@@ -65,6 +65,7 @@
 import org.eclipse.osbp.xtext.perspective.PerspectivePart;
 import org.eclipse.osbp.xtext.perspective.PerspectivePartStack;
 import org.eclipse.osbp.xtext.perspective.PerspectiveReport;
+import org.eclipse.osbp.xtext.perspective.PerspectiveSaiku;
 import org.eclipse.osbp.xtext.perspective.PerspectiveSashContainer;
 import org.eclipse.osbp.xtext.perspective.PerspectiveSearch;
 import org.eclipse.osbp.xtext.perspective.PerspectiveSelection;
@@ -258,6 +259,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass perspectiveSaikuEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass perspectiveSearchEClass = null;
 
 	/**
@@ -943,6 +951,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getPerspectiveSaiku() {
+		return perspectiveSaikuEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getPerspectiveSearch() {
 		return perspectiveSearchEClass;
 	}
@@ -1051,6 +1068,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getPerspectiveBrowser_CubeView() {
+		return (EAttribute)perspectiveBrowserEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EEnum getSashOrientation() {
 		return sashOrientationEEnum;
 	}
@@ -1178,6 +1204,8 @@
 
 		perspectiveWelcomeEClass = createEClass(PERSPECTIVE_WELCOME);
 
+		perspectiveSaikuEClass = createEClass(PERSPECTIVE_SAIKU);
+
 		perspectiveSearchEClass = createEClass(PERSPECTIVE_SEARCH);
 		createEReference(perspectiveSearchEClass, PERSPECTIVE_SEARCH__DTO_REF);
 		createEAttribute(perspectiveSearchEClass, PERSPECTIVE_SEARCH__DEPTH);
@@ -1194,6 +1222,7 @@
 
 		perspectiveBrowserEClass = createEClass(PERSPECTIVE_BROWSER);
 		createEAttribute(perspectiveBrowserEClass, PERSPECTIVE_BROWSER__URL);
+		createEAttribute(perspectiveBrowserEClass, PERSPECTIVE_BROWSER__CUBE_VIEW);
 
 		// Create enums
 		sashOrientationEEnum = createEEnum(SASH_ORIENTATION);
@@ -1266,6 +1295,7 @@
 		perspectiveBPMNEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveKanbanEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveWelcomeEClass.getESuperTypes().add(this.getPerspectiveView());
+		perspectiveSaikuEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveSearchEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveDataInterchangeEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveTitleEClass.getESuperTypes().add(this.getPerspectiveView());
@@ -1361,6 +1391,8 @@
 
 		initEClass(perspectiveWelcomeEClass, PerspectiveWelcome.class, "PerspectiveWelcome", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
+		initEClass(perspectiveSaikuEClass, PerspectiveSaiku.class, "PerspectiveSaiku", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
 		initEClass(perspectiveSearchEClass, PerspectiveSearch.class, "PerspectiveSearch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getPerspectiveSearch_DtoRef(), theOSBPDtoPackage.getLDto(), null, "dtoRef", null, 0, 1, PerspectiveSearch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPerspectiveSearch_Depth(), theEcorePackage.getEInt(), "depth", null, 0, 1, PerspectiveSearch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1377,6 +1409,7 @@
 
 		initEClass(perspectiveBrowserEClass, PerspectiveBrowser.class, "PerspectiveBrowser", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getPerspectiveBrowser_Url(), theEcorePackage.getEString(), "url", null, 0, 1, PerspectiveBrowser.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPerspectiveBrowser_CubeView(), theEcorePackage.getEBoolean(), "cubeView", null, 0, 1, PerspectiveBrowser.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		// Initialize enums and add enum literals
 		initEEnum(sashOrientationEEnum, SashOrientation.class, "SashOrientation");
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveSaikuImpl.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveSaikuImpl.java
new file mode 100644
index 0000000..ebab138
--- /dev/null
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveSaikuImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.perspective.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage;
+import org.eclipse.osbp.xtext.perspective.PerspectiveSaiku;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Perspective Saiku</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class PerspectiveSaikuImpl extends PerspectiveLazyResolverImpl implements PerspectiveSaiku {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PerspectiveSaikuImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return PerspectiveDslPackage.Literals.PERSPECTIVE_SAIKU;
+	}
+
+} //PerspectiveSaikuImpl
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java
index ebe40c4..b2a6e6c 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java
@@ -176,6 +176,10 @@
 				return createPerspectiveWelcomeAdapter();
 			}
 			@Override
+			public Adapter casePerspectiveSaiku(PerspectiveSaiku object) {
+				return createPerspectiveSaikuAdapter();
+			}
+			@Override
 			public Adapter casePerspectiveSearch(PerspectiveSearch object) {
 				return createPerspectiveSearchAdapter();
 			}
@@ -546,6 +550,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveSaiku <em>Perspective Saiku</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.perspective.PerspectiveSaiku
+	 * @generated
+	 */
+	public Adapter createPerspectiveSaikuAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveSearch <em>Perspective Search</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java
index 363b81e..4a47c7a 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java
@@ -257,6 +257,14 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case PerspectiveDslPackage.PERSPECTIVE_SAIKU: {
+				PerspectiveSaiku perspectiveSaiku = (PerspectiveSaiku)theEObject;
+				T result = casePerspectiveSaiku(perspectiveSaiku);
+				if (result == null) result = casePerspectiveView(perspectiveSaiku);
+				if (result == null) result = casePerspectiveLazyResolver(perspectiveSaiku);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case PerspectiveDslPackage.PERSPECTIVE_SEARCH: {
 				PerspectiveSearch perspectiveSearch = (PerspectiveSearch)theEObject;
 				T result = casePerspectiveSearch(perspectiveSearch);
@@ -647,6 +655,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Perspective Saiku</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Perspective Saiku</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePerspectiveSaiku(PerspectiveSaiku object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Perspective Search</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore b/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore
index 5007302..684b58e 100644
--- a/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore
+++ b/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore
@@ -154,6 +154,9 @@
 class PerspectiveWelcome extends PerspectiveView {
 }
 
+class PerspectiveSaiku extends PerspectiveView {
+}
+
 class PerspectiveSearch extends PerspectiveView {
 	refers LDto dtoRef
 	int depth
@@ -174,6 +177,7 @@
 
 class PerspectiveBrowser extends PerspectiveView {
 	String url
+	boolean cubeView
 }
 
 enum SashOrientation {
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin
index 20c3431..cf04b6f 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin
Binary files differ
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g
index fe8a2a7..1d5fd1e 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g
@@ -2262,26 +2262,45 @@
 		{
 			newLeafNode(otherlv_1, grammarAccess.getPerspectiveBrowserAccess().getBrowserKeyword_1());
 		}
-		otherlv_2='url'
-		{
-			newLeafNode(otherlv_2, grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2());
-		}
 		(
 			(
-				lv_url_3_0=RULE_STRING
+				otherlv_2='url'
 				{
-					newLeafNode(lv_url_3_0, grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_3_0());
+					newLeafNode(otherlv_2, grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2_0_0());
 				}
-				{
-					if ($current==null) {
-						$current = createModelElement(grammarAccess.getPerspectiveBrowserRule());
+				(
+					(
+						lv_url_3_0=RULE_STRING
+						{
+							newLeafNode(lv_url_3_0, grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_2_0_1_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getPerspectiveBrowserRule());
+							}
+							setWithLastConsumed(
+								$current,
+								"url",
+								lv_url_3_0,
+								"org.eclipse.xtext.xbase.Xtype.STRING");
+						}
+					)
+				)
+			)
+			    |
+			(
+				(
+					lv_cubeView_4_0='cubeView'
+					{
+						newLeafNode(lv_cubeView_4_0, grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0());
 					}
-					setWithLastConsumed(
-						$current,
-						"url",
-						lv_url_3_0,
-						"org.eclipse.xtext.xbase.Xtype.STRING");
-				}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getPerspectiveBrowserRule());
+						}
+						setWithLastConsumed($current, "cubeView", true, "cubeView");
+					}
+				)
 			)
 		)
 	)
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens
index c014121..1378b8b 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens
@@ -1,83 +1,84 @@
-'!'=98
-'!='=83
-'!=='=85
-'#'=69
-'%'=97
-'%='=76
-'&&'=81
-'&'=131
-'('=65
-')'=67
-'*'=61
-'**'=95
-'*='=74
-'+'=93
-'++'=100
-'+='=72
-','=66
-'-'=94
-'--'=101
-'-='=73
-'->'=87
-'.'=102
-'..'=89
-'..<'=88
-'/'=96
-'/='=75
-':'=109
-'::'=103
-';'=63
-'<'=77
-'<>'=91
-'='=68
-'=='=82
-'==='=84
-'=>'=90
-'>'=78
-'>='=79
-'?'=130
-'?.'=104
-'?:'=92
-'@'=64
-'['=70
-']'=71
+'!'=99
+'!='=84
+'!=='=86
+'#'=70
+'%'=98
+'%='=77
+'&&'=82
+'&'=132
+'('=66
+')'=68
+'*'=62
+'**'=96
+'*='=75
+'+'=94
+'++'=101
+'+='=73
+','=67
+'-'=95
+'--'=102
+'-='=74
+'->'=88
+'.'=103
+'..'=90
+'..<'=89
+'/'=97
+'/='=76
+':'=110
+'::'=104
+';'=64
+'<'=78
+'<>'=92
+'='=69
+'=='=83
+'==='=85
+'=>'=91
+'>'=79
+'>='=80
+'?'=131
+'?.'=105
+'?:'=93
+'@'=65
+'['=71
+']'=72
 'accessibility'=21
 'allowedSources'=35
-'as'=99
+'as'=100
 'bpmn'=44
 'browser'=56
 'card'=47
-'case'=111
-'catch'=129
+'case'=112
+'catch'=130
 'chart'=39
+'cubeView'=58
 'dataInterchange'=53
-'default'=110
+'default'=111
 'depth'=51
 'describedBy'=17
 'dialog'=43
-'do'=114
+'do'=115
 'editableTable'=38
-'else'=107
+'else'=108
 'eventManager'=23
-'extends'=117
-'extension'=60
-'false'=120
+'extends'=118
+'extension'=61
+'false'=121
 'filterColumns'=52
-'finally'=127
-'for'=112
-'horizontal'=132
+'finally'=128
+'for'=113
+'horizontal'=133
 'icon'=20
 'iconURI'=31
-'if'=106
-'import'=58
+'if'=107
+'import'=59
 'in'=50
-'instanceof'=86
+'instanceof'=87
 'isClosable'=33
 'kanban'=45
 'name'=55
-'new'=119
-'ns'=62
-'null'=122
+'new'=120
+'ns'=63
+'null'=123
 'of'=46
 'organigram'=41
 'orientation'=25
@@ -88,36 +89,36 @@
 'process'=18
 'readOnlyTable'=37
 'report'=40
-'return'=125
+'return'=126
 'sashContainer'=24
 'search'=49
 'select'=36
 'selectedElement'=26
 'spaceVolume'=27
-'static'=59
-'super'=118
-'switch'=108
+'static'=60
+'super'=119
+'switch'=109
 'synchronize'=29
-'synchronized'=128
+'synchronized'=129
 'targetPart'=34
-'throw'=124
+'throw'=125
 'title'=54
 'toolbar'=22
 'topology'=42
-'true'=121
-'try'=126
-'typeof'=123
+'true'=122
+'try'=127
+'typeof'=124
 'url'=57
 'usertask'=19
-'val'=116
-'var'=115
-'vertical'=133
+'val'=117
+'var'=116
+'vertical'=134
 'view'=32
 'welcome'=48
-'while'=113
+'while'=114
 '{'=14
-'|'=105
-'||'=80
+'|'=106
+'||'=81
 '}'=15
 RULE_ANY_OTHER=12
 RULE_DECIMAL=8
@@ -162,6 +163,7 @@
 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.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java
index 3bb62fc..d10aa05 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java
@@ -27,6 +27,7 @@
     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;
@@ -1105,10 +1106,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:56:7: ( 'import' )
-            // InternalPerspectiveDsl.g:56:9: 'import'
+            // InternalPerspectiveDsl.g:56:7: ( 'cubeView' )
+            // InternalPerspectiveDsl.g:56:9: 'cubeView'
             {
-            match("import"); 
+            match("cubeView"); 
 
 
             }
@@ -1126,10 +1127,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:57:7: ( 'static' )
-            // InternalPerspectiveDsl.g:57:9: 'static'
+            // InternalPerspectiveDsl.g:57:7: ( 'import' )
+            // InternalPerspectiveDsl.g:57:9: 'import'
             {
-            match("static"); 
+            match("import"); 
 
 
             }
@@ -1147,10 +1148,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:58:7: ( 'extension' )
-            // InternalPerspectiveDsl.g:58:9: 'extension'
+            // InternalPerspectiveDsl.g:58:7: ( 'static' )
+            // InternalPerspectiveDsl.g:58:9: 'static'
             {
-            match("extension"); 
+            match("static"); 
 
 
             }
@@ -1168,10 +1169,11 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:59:7: ( '*' )
-            // InternalPerspectiveDsl.g:59:9: '*'
+            // InternalPerspectiveDsl.g:59:7: ( 'extension' )
+            // InternalPerspectiveDsl.g:59:9: 'extension'
             {
-            match('*'); 
+            match("extension"); 
+
 
             }
 
@@ -1188,11 +1190,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:60:7: ( 'ns' )
-            // InternalPerspectiveDsl.g:60:9: 'ns'
+            // InternalPerspectiveDsl.g:60:7: ( '*' )
+            // InternalPerspectiveDsl.g:60:9: '*'
             {
-            match("ns"); 
-
+            match('*'); 
 
             }
 
@@ -1209,10 +1210,11 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:61:7: ( ';' )
-            // InternalPerspectiveDsl.g:61:9: ';'
+            // InternalPerspectiveDsl.g:61:7: ( 'ns' )
+            // InternalPerspectiveDsl.g:61:9: 'ns'
             {
-            match(';'); 
+            match("ns"); 
+
 
             }
 
@@ -1229,10 +1231,10 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:62:7: ( '@' )
-            // InternalPerspectiveDsl.g:62:9: '@'
+            // InternalPerspectiveDsl.g:62:7: ( ';' )
+            // InternalPerspectiveDsl.g:62:9: ';'
             {
-            match('@'); 
+            match(';'); 
 
             }
 
@@ -1249,10 +1251,10 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:63:7: ( '(' )
-            // InternalPerspectiveDsl.g:63:9: '('
+            // InternalPerspectiveDsl.g:63:7: ( '@' )
+            // InternalPerspectiveDsl.g:63:9: '@'
             {
-            match('('); 
+            match('@'); 
 
             }
 
@@ -1269,10 +1271,10 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:64:7: ( ',' )
-            // InternalPerspectiveDsl.g:64:9: ','
+            // InternalPerspectiveDsl.g:64:7: ( '(' )
+            // InternalPerspectiveDsl.g:64:9: '('
             {
-            match(','); 
+            match('('); 
 
             }
 
@@ -1289,10 +1291,10 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:65:7: ( ')' )
-            // InternalPerspectiveDsl.g:65:9: ')'
+            // InternalPerspectiveDsl.g:65:7: ( ',' )
+            // InternalPerspectiveDsl.g:65:9: ','
             {
-            match(')'); 
+            match(','); 
 
             }
 
@@ -1309,10 +1311,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:66:7: ( '=' )
-            // InternalPerspectiveDsl.g:66:9: '='
+            // InternalPerspectiveDsl.g:66:7: ( ')' )
+            // InternalPerspectiveDsl.g:66:9: ')'
             {
-            match('='); 
+            match(')'); 
 
             }
 
@@ -1329,10 +1331,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:67:7: ( '#' )
-            // InternalPerspectiveDsl.g:67:9: '#'
+            // InternalPerspectiveDsl.g:67:7: ( '=' )
+            // InternalPerspectiveDsl.g:67:9: '='
             {
-            match('#'); 
+            match('='); 
 
             }
 
@@ -1349,10 +1351,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:68:7: ( '[' )
-            // InternalPerspectiveDsl.g:68:9: '['
+            // InternalPerspectiveDsl.g:68:7: ( '#' )
+            // InternalPerspectiveDsl.g:68:9: '#'
             {
-            match('['); 
+            match('#'); 
 
             }
 
@@ -1369,10 +1371,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:69:7: ( ']' )
-            // InternalPerspectiveDsl.g:69:9: ']'
+            // InternalPerspectiveDsl.g:69:7: ( '[' )
+            // InternalPerspectiveDsl.g:69:9: '['
             {
-            match(']'); 
+            match('['); 
 
             }
 
@@ -1389,11 +1391,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:70:7: ( '+=' )
-            // InternalPerspectiveDsl.g:70:9: '+='
+            // InternalPerspectiveDsl.g:70:7: ( ']' )
+            // InternalPerspectiveDsl.g:70:9: ']'
             {
-            match("+="); 
-
+            match(']'); 
 
             }
 
@@ -1410,10 +1411,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:71:7: ( '-=' )
-            // InternalPerspectiveDsl.g:71:9: '-='
+            // InternalPerspectiveDsl.g:71:7: ( '+=' )
+            // InternalPerspectiveDsl.g:71:9: '+='
             {
-            match("-="); 
+            match("+="); 
 
 
             }
@@ -1431,10 +1432,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:72:7: ( '*=' )
-            // InternalPerspectiveDsl.g:72:9: '*='
+            // InternalPerspectiveDsl.g:72:7: ( '-=' )
+            // InternalPerspectiveDsl.g:72:9: '-='
             {
-            match("*="); 
+            match("-="); 
 
 
             }
@@ -1452,10 +1453,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:73:7: ( '/=' )
-            // InternalPerspectiveDsl.g:73:9: '/='
+            // InternalPerspectiveDsl.g:73:7: ( '*=' )
+            // InternalPerspectiveDsl.g:73:9: '*='
             {
-            match("/="); 
+            match("*="); 
 
 
             }
@@ -1473,10 +1474,10 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:74:7: ( '%=' )
-            // InternalPerspectiveDsl.g:74:9: '%='
+            // InternalPerspectiveDsl.g:74:7: ( '/=' )
+            // InternalPerspectiveDsl.g:74:9: '/='
             {
-            match("%="); 
+            match("/="); 
 
 
             }
@@ -1494,10 +1495,11 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:75:7: ( '<' )
-            // InternalPerspectiveDsl.g:75:9: '<'
+            // InternalPerspectiveDsl.g:75:7: ( '%=' )
+            // InternalPerspectiveDsl.g:75:9: '%='
             {
-            match('<'); 
+            match("%="); 
+
 
             }
 
@@ -1514,10 +1516,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:76:7: ( '>' )
-            // InternalPerspectiveDsl.g:76:9: '>'
+            // InternalPerspectiveDsl.g:76:7: ( '<' )
+            // InternalPerspectiveDsl.g:76:9: '<'
             {
-            match('>'); 
+            match('<'); 
 
             }
 
@@ -1534,11 +1536,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:77:7: ( '>=' )
-            // InternalPerspectiveDsl.g:77:9: '>='
+            // InternalPerspectiveDsl.g:77:7: ( '>' )
+            // InternalPerspectiveDsl.g:77:9: '>'
             {
-            match(">="); 
-
+            match('>'); 
 
             }
 
@@ -1555,10 +1556,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:78:7: ( '||' )
-            // InternalPerspectiveDsl.g:78:9: '||'
+            // InternalPerspectiveDsl.g:78:7: ( '>=' )
+            // InternalPerspectiveDsl.g:78:9: '>='
             {
-            match("||"); 
+            match(">="); 
 
 
             }
@@ -1576,10 +1577,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:79:7: ( '&&' )
-            // InternalPerspectiveDsl.g:79:9: '&&'
+            // InternalPerspectiveDsl.g:79:7: ( '||' )
+            // InternalPerspectiveDsl.g:79:9: '||'
             {
-            match("&&"); 
+            match("||"); 
 
 
             }
@@ -1597,10 +1598,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:80:7: ( '==' )
-            // InternalPerspectiveDsl.g:80:9: '=='
+            // InternalPerspectiveDsl.g:80:7: ( '&&' )
+            // InternalPerspectiveDsl.g:80:9: '&&'
             {
-            match("=="); 
+            match("&&"); 
 
 
             }
@@ -1618,10 +1619,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:81:7: ( '!=' )
-            // InternalPerspectiveDsl.g:81:9: '!='
+            // InternalPerspectiveDsl.g:81:7: ( '==' )
+            // InternalPerspectiveDsl.g:81:9: '=='
             {
-            match("!="); 
+            match("=="); 
 
 
             }
@@ -1639,10 +1640,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:82:7: ( '===' )
-            // InternalPerspectiveDsl.g:82:9: '==='
+            // InternalPerspectiveDsl.g:82:7: ( '!=' )
+            // InternalPerspectiveDsl.g:82:9: '!='
             {
-            match("==="); 
+            match("!="); 
 
 
             }
@@ -1660,10 +1661,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:83:7: ( '!==' )
-            // InternalPerspectiveDsl.g:83:9: '!=='
+            // InternalPerspectiveDsl.g:83:7: ( '===' )
+            // InternalPerspectiveDsl.g:83:9: '==='
             {
-            match("!=="); 
+            match("==="); 
 
 
             }
@@ -1681,10 +1682,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:84:7: ( 'instanceof' )
-            // InternalPerspectiveDsl.g:84:9: 'instanceof'
+            // InternalPerspectiveDsl.g:84:7: ( '!==' )
+            // InternalPerspectiveDsl.g:84:9: '!=='
             {
-            match("instanceof"); 
+            match("!=="); 
 
 
             }
@@ -1702,10 +1703,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:85:7: ( '->' )
-            // InternalPerspectiveDsl.g:85:9: '->'
+            // InternalPerspectiveDsl.g:85:7: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:85:9: 'instanceof'
             {
-            match("->"); 
+            match("instanceof"); 
 
 
             }
@@ -1723,10 +1724,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:86:7: ( '..<' )
-            // InternalPerspectiveDsl.g:86:9: '..<'
+            // InternalPerspectiveDsl.g:86:7: ( '->' )
+            // InternalPerspectiveDsl.g:86:9: '->'
             {
-            match("..<"); 
+            match("->"); 
 
 
             }
@@ -1744,10 +1745,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:87:7: ( '..' )
-            // InternalPerspectiveDsl.g:87:9: '..'
+            // InternalPerspectiveDsl.g:87:7: ( '..<' )
+            // InternalPerspectiveDsl.g:87:9: '..<'
             {
-            match(".."); 
+            match("..<"); 
 
 
             }
@@ -1765,10 +1766,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:88:7: ( '=>' )
-            // InternalPerspectiveDsl.g:88:9: '=>'
+            // InternalPerspectiveDsl.g:88:7: ( '..' )
+            // InternalPerspectiveDsl.g:88:9: '..'
             {
-            match("=>"); 
+            match(".."); 
 
 
             }
@@ -1786,10 +1787,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:89:7: ( '<>' )
-            // InternalPerspectiveDsl.g:89:9: '<>'
+            // InternalPerspectiveDsl.g:89:7: ( '=>' )
+            // InternalPerspectiveDsl.g:89:9: '=>'
             {
-            match("<>"); 
+            match("=>"); 
 
 
             }
@@ -1807,10 +1808,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:90:7: ( '?:' )
-            // InternalPerspectiveDsl.g:90:9: '?:'
+            // InternalPerspectiveDsl.g:90:7: ( '<>' )
+            // InternalPerspectiveDsl.g:90:9: '<>'
             {
-            match("?:"); 
+            match("<>"); 
 
 
             }
@@ -1828,10 +1829,11 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:91:7: ( '+' )
-            // InternalPerspectiveDsl.g:91:9: '+'
+            // InternalPerspectiveDsl.g:91:7: ( '?:' )
+            // InternalPerspectiveDsl.g:91:9: '?:'
             {
-            match('+'); 
+            match("?:"); 
+
 
             }
 
@@ -1848,10 +1850,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:92:7: ( '-' )
-            // InternalPerspectiveDsl.g:92:9: '-'
+            // InternalPerspectiveDsl.g:92:7: ( '+' )
+            // InternalPerspectiveDsl.g:92:9: '+'
             {
-            match('-'); 
+            match('+'); 
 
             }
 
@@ -1868,11 +1870,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:93:7: ( '**' )
-            // InternalPerspectiveDsl.g:93:9: '**'
+            // InternalPerspectiveDsl.g:93:7: ( '-' )
+            // InternalPerspectiveDsl.g:93:9: '-'
             {
-            match("**"); 
-
+            match('-'); 
 
             }
 
@@ -1889,10 +1890,11 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:94:7: ( '/' )
-            // InternalPerspectiveDsl.g:94:9: '/'
+            // InternalPerspectiveDsl.g:94:7: ( '**' )
+            // InternalPerspectiveDsl.g:94:9: '**'
             {
-            match('/'); 
+            match("**"); 
+
 
             }
 
@@ -1909,10 +1911,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:95:7: ( '%' )
-            // InternalPerspectiveDsl.g:95:9: '%'
+            // InternalPerspectiveDsl.g:95:7: ( '/' )
+            // InternalPerspectiveDsl.g:95:9: '/'
             {
-            match('%'); 
+            match('/'); 
 
             }
 
@@ -1929,10 +1931,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:96:7: ( '!' )
-            // InternalPerspectiveDsl.g:96:9: '!'
+            // InternalPerspectiveDsl.g:96:7: ( '%' )
+            // InternalPerspectiveDsl.g:96:9: '%'
             {
-            match('!'); 
+            match('%'); 
 
             }
 
@@ -1949,11 +1951,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:97:7: ( 'as' )
-            // InternalPerspectiveDsl.g:97:9: 'as'
+            // InternalPerspectiveDsl.g:97:7: ( '!' )
+            // InternalPerspectiveDsl.g:97:9: '!'
             {
-            match("as"); 
-
+            match('!'); 
 
             }
 
@@ -1970,10 +1971,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:98:8: ( '++' )
-            // InternalPerspectiveDsl.g:98:10: '++'
+            // InternalPerspectiveDsl.g:98:8: ( 'as' )
+            // InternalPerspectiveDsl.g:98:10: 'as'
             {
-            match("++"); 
+            match("as"); 
 
 
             }
@@ -1991,10 +1992,10 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:99:8: ( '--' )
-            // InternalPerspectiveDsl.g:99:10: '--'
+            // InternalPerspectiveDsl.g:99:8: ( '++' )
+            // InternalPerspectiveDsl.g:99:10: '++'
             {
-            match("--"); 
+            match("++"); 
 
 
             }
@@ -2012,10 +2013,11 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:100:8: ( '.' )
-            // InternalPerspectiveDsl.g:100:10: '.'
+            // InternalPerspectiveDsl.g:100:8: ( '--' )
+            // InternalPerspectiveDsl.g:100:10: '--'
             {
-            match('.'); 
+            match("--"); 
+
 
             }
 
@@ -2032,11 +2034,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:101:8: ( '::' )
-            // InternalPerspectiveDsl.g:101:10: '::'
+            // InternalPerspectiveDsl.g:101:8: ( '.' )
+            // InternalPerspectiveDsl.g:101:10: '.'
             {
-            match("::"); 
-
+            match('.'); 
 
             }
 
@@ -2053,10 +2054,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:102:8: ( '?.' )
-            // InternalPerspectiveDsl.g:102:10: '?.'
+            // InternalPerspectiveDsl.g:102:8: ( '::' )
+            // InternalPerspectiveDsl.g:102:10: '::'
             {
-            match("?."); 
+            match("::"); 
 
 
             }
@@ -2074,10 +2075,11 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:103:8: ( '|' )
-            // InternalPerspectiveDsl.g:103:10: '|'
+            // InternalPerspectiveDsl.g:103:8: ( '?.' )
+            // InternalPerspectiveDsl.g:103:10: '?.'
             {
-            match('|'); 
+            match("?."); 
+
 
             }
 
@@ -2094,11 +2096,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:104:8: ( 'if' )
-            // InternalPerspectiveDsl.g:104:10: 'if'
+            // InternalPerspectiveDsl.g:104:8: ( '|' )
+            // InternalPerspectiveDsl.g:104:10: '|'
             {
-            match("if"); 
-
+            match('|'); 
 
             }
 
@@ -2115,10 +2116,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:105:8: ( 'else' )
-            // InternalPerspectiveDsl.g:105:10: 'else'
+            // InternalPerspectiveDsl.g:105:8: ( 'if' )
+            // InternalPerspectiveDsl.g:105:10: 'if'
             {
-            match("else"); 
+            match("if"); 
 
 
             }
@@ -2136,10 +2137,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:106:8: ( 'switch' )
-            // InternalPerspectiveDsl.g:106:10: 'switch'
+            // InternalPerspectiveDsl.g:106:8: ( 'else' )
+            // InternalPerspectiveDsl.g:106:10: 'else'
             {
-            match("switch"); 
+            match("else"); 
 
 
             }
@@ -2157,10 +2158,11 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:107:8: ( ':' )
-            // InternalPerspectiveDsl.g:107:10: ':'
+            // InternalPerspectiveDsl.g:107:8: ( 'switch' )
+            // InternalPerspectiveDsl.g:107:10: 'switch'
             {
-            match(':'); 
+            match("switch"); 
+
 
             }
 
@@ -2177,11 +2179,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:108:8: ( 'default' )
-            // InternalPerspectiveDsl.g:108:10: 'default'
+            // InternalPerspectiveDsl.g:108:8: ( ':' )
+            // InternalPerspectiveDsl.g:108:10: ':'
             {
-            match("default"); 
-
+            match(':'); 
 
             }
 
@@ -2198,10 +2199,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:109:8: ( 'case' )
-            // InternalPerspectiveDsl.g:109:10: 'case'
+            // InternalPerspectiveDsl.g:109:8: ( 'default' )
+            // InternalPerspectiveDsl.g:109:10: 'default'
             {
-            match("case"); 
+            match("default"); 
 
 
             }
@@ -2219,10 +2220,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:110:8: ( 'for' )
-            // InternalPerspectiveDsl.g:110:10: 'for'
+            // InternalPerspectiveDsl.g:110:8: ( 'case' )
+            // InternalPerspectiveDsl.g:110:10: 'case'
             {
-            match("for"); 
+            match("case"); 
 
 
             }
@@ -2240,10 +2241,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:111:8: ( 'while' )
-            // InternalPerspectiveDsl.g:111:10: 'while'
+            // InternalPerspectiveDsl.g:111:8: ( 'for' )
+            // InternalPerspectiveDsl.g:111:10: 'for'
             {
-            match("while"); 
+            match("for"); 
 
 
             }
@@ -2261,10 +2262,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:112:8: ( 'do' )
-            // InternalPerspectiveDsl.g:112:10: 'do'
+            // InternalPerspectiveDsl.g:112:8: ( 'while' )
+            // InternalPerspectiveDsl.g:112:10: 'while'
             {
-            match("do"); 
+            match("while"); 
 
 
             }
@@ -2282,10 +2283,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:113:8: ( 'var' )
-            // InternalPerspectiveDsl.g:113:10: 'var'
+            // InternalPerspectiveDsl.g:113:8: ( 'do' )
+            // InternalPerspectiveDsl.g:113:10: 'do'
             {
-            match("var"); 
+            match("do"); 
 
 
             }
@@ -2303,10 +2304,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:114:8: ( 'val' )
-            // InternalPerspectiveDsl.g:114:10: 'val'
+            // InternalPerspectiveDsl.g:114:8: ( 'var' )
+            // InternalPerspectiveDsl.g:114:10: 'var'
             {
-            match("val"); 
+            match("var"); 
 
 
             }
@@ -2324,10 +2325,10 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:115:8: ( 'extends' )
-            // InternalPerspectiveDsl.g:115:10: 'extends'
+            // InternalPerspectiveDsl.g:115:8: ( 'val' )
+            // InternalPerspectiveDsl.g:115:10: 'val'
             {
-            match("extends"); 
+            match("val"); 
 
 
             }
@@ -2345,10 +2346,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:116:8: ( 'super' )
-            // InternalPerspectiveDsl.g:116:10: 'super'
+            // InternalPerspectiveDsl.g:116:8: ( 'extends' )
+            // InternalPerspectiveDsl.g:116:10: 'extends'
             {
-            match("super"); 
+            match("extends"); 
 
 
             }
@@ -2366,10 +2367,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:117:8: ( 'new' )
-            // InternalPerspectiveDsl.g:117:10: 'new'
+            // InternalPerspectiveDsl.g:117:8: ( 'super' )
+            // InternalPerspectiveDsl.g:117:10: 'super'
             {
-            match("new"); 
+            match("super"); 
 
 
             }
@@ -2387,10 +2388,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:118:8: ( 'false' )
-            // InternalPerspectiveDsl.g:118:10: 'false'
+            // InternalPerspectiveDsl.g:118:8: ( 'new' )
+            // InternalPerspectiveDsl.g:118:10: 'new'
             {
-            match("false"); 
+            match("new"); 
 
 
             }
@@ -2408,10 +2409,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:119:8: ( 'true' )
-            // InternalPerspectiveDsl.g:119:10: 'true'
+            // InternalPerspectiveDsl.g:119:8: ( 'false' )
+            // InternalPerspectiveDsl.g:119:10: 'false'
             {
-            match("true"); 
+            match("false"); 
 
 
             }
@@ -2429,10 +2430,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:120:8: ( 'null' )
-            // InternalPerspectiveDsl.g:120:10: 'null'
+            // InternalPerspectiveDsl.g:120:8: ( 'true' )
+            // InternalPerspectiveDsl.g:120:10: 'true'
             {
-            match("null"); 
+            match("true"); 
 
 
             }
@@ -2450,10 +2451,10 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:121:8: ( 'typeof' )
-            // InternalPerspectiveDsl.g:121:10: 'typeof'
+            // InternalPerspectiveDsl.g:121:8: ( 'null' )
+            // InternalPerspectiveDsl.g:121:10: 'null'
             {
-            match("typeof"); 
+            match("null"); 
 
 
             }
@@ -2471,10 +2472,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:122:8: ( 'throw' )
-            // InternalPerspectiveDsl.g:122:10: 'throw'
+            // InternalPerspectiveDsl.g:122:8: ( 'typeof' )
+            // InternalPerspectiveDsl.g:122:10: 'typeof'
             {
-            match("throw"); 
+            match("typeof"); 
 
 
             }
@@ -2492,10 +2493,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:123:8: ( 'return' )
-            // InternalPerspectiveDsl.g:123:10: 'return'
+            // InternalPerspectiveDsl.g:123:8: ( 'throw' )
+            // InternalPerspectiveDsl.g:123:10: 'throw'
             {
-            match("return"); 
+            match("throw"); 
 
 
             }
@@ -2513,10 +2514,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:124:8: ( 'try' )
-            // InternalPerspectiveDsl.g:124:10: 'try'
+            // InternalPerspectiveDsl.g:124:8: ( 'return' )
+            // InternalPerspectiveDsl.g:124:10: 'return'
             {
-            match("try"); 
+            match("return"); 
 
 
             }
@@ -2534,10 +2535,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:125:8: ( 'finally' )
-            // InternalPerspectiveDsl.g:125:10: 'finally'
+            // InternalPerspectiveDsl.g:125:8: ( 'try' )
+            // InternalPerspectiveDsl.g:125:10: 'try'
             {
-            match("finally"); 
+            match("try"); 
 
 
             }
@@ -2555,10 +2556,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:126:8: ( 'synchronized' )
-            // InternalPerspectiveDsl.g:126:10: 'synchronized'
+            // InternalPerspectiveDsl.g:126:8: ( 'finally' )
+            // InternalPerspectiveDsl.g:126:10: 'finally'
             {
-            match("synchronized"); 
+            match("finally"); 
 
 
             }
@@ -2576,10 +2577,10 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:127:8: ( 'catch' )
-            // InternalPerspectiveDsl.g:127:10: 'catch'
+            // InternalPerspectiveDsl.g:127:8: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:127:10: 'synchronized'
             {
-            match("catch"); 
+            match("synchronized"); 
 
 
             }
@@ -2597,10 +2598,11 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:128:8: ( '?' )
-            // InternalPerspectiveDsl.g:128:10: '?'
+            // InternalPerspectiveDsl.g:128:8: ( 'catch' )
+            // InternalPerspectiveDsl.g:128:10: 'catch'
             {
-            match('?'); 
+            match("catch"); 
+
 
             }
 
@@ -2617,10 +2619,10 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:129:8: ( '&' )
-            // InternalPerspectiveDsl.g:129:10: '&'
+            // InternalPerspectiveDsl.g:129:8: ( '?' )
+            // InternalPerspectiveDsl.g:129:10: '?'
             {
-            match('&'); 
+            match('?'); 
 
             }
 
@@ -2637,11 +2639,10 @@
         try {
             int _type = T__132;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:130:8: ( 'horizontal' )
-            // InternalPerspectiveDsl.g:130:10: 'horizontal'
+            // InternalPerspectiveDsl.g:130:8: ( '&' )
+            // InternalPerspectiveDsl.g:130:10: '&'
             {
-            match("horizontal"); 
-
+            match('&'); 
 
             }
 
@@ -2658,10 +2659,10 @@
         try {
             int _type = T__133;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:131:8: ( 'vertical' )
-            // InternalPerspectiveDsl.g:131:10: 'vertical'
+            // InternalPerspectiveDsl.g:131:8: ( 'horizontal' )
+            // InternalPerspectiveDsl.g:131:10: 'horizontal'
             {
-            match("vertical"); 
+            match("horizontal"); 
 
 
             }
@@ -2674,15 +2675,36 @@
     }
     // $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;
+            // InternalPerspectiveDsl.g:132:8: ( 'vertical' )
+            // InternalPerspectiveDsl.g:132:10: 'vertical'
+            {
+            match("vertical"); 
+
+
+            }
+
+            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;
-            // InternalPerspectiveDsl.g:9226:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalPerspectiveDsl.g:9226:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:9245:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalPerspectiveDsl.g:9245:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalPerspectiveDsl.g:9226:12: ( '0x' | '0X' )
+            // InternalPerspectiveDsl.g:9245:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2710,7 +2732,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9226:13: '0x'
+                    // InternalPerspectiveDsl.g:9245:13: '0x'
                     {
                     match("0x"); 
 
@@ -2718,7 +2740,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:9226:18: '0X'
+                    // InternalPerspectiveDsl.g:9245:18: '0X'
                     {
                     match("0X"); 
 
@@ -2728,7 +2750,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:9226:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalPerspectiveDsl.g:9245:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2766,7 +2788,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalPerspectiveDsl.g:9226:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:9245:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2775,10 +2797,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9226:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:9245:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalPerspectiveDsl.g:9226:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:9245:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2796,7 +2818,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:9226:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalPerspectiveDsl.g:9245:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2820,7 +2842,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:9226:84: ( 'l' | 'L' )
+                            // InternalPerspectiveDsl.g:9245:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2859,11 +2881,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9228:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalPerspectiveDsl.g:9228:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:9247:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalPerspectiveDsl.g:9247:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalPerspectiveDsl.g:9228:21: ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:9247:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2912,11 +2934,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9230:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalPerspectiveDsl.g:9230:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:9249:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalPerspectiveDsl.g:9249:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalPerspectiveDsl.g:9230:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalPerspectiveDsl.g:9249:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2925,7 +2947,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9230:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalPerspectiveDsl.g:9249:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2936,7 +2958,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalPerspectiveDsl.g:9230:36: ( '+' | '-' )?
+                    // InternalPerspectiveDsl.g:9249:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2969,7 +2991,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:9230:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:9249:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2981,7 +3003,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9230:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalPerspectiveDsl.g:9249:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -3005,7 +3027,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:9230:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalPerspectiveDsl.g:9249: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();
@@ -3038,10 +3060,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9232:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalPerspectiveDsl.g:9232:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:9251:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalPerspectiveDsl.g:9251:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalPerspectiveDsl.g:9232:11: ( '^' )?
+            // InternalPerspectiveDsl.g:9251:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3050,7 +3072,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9232:11: '^'
+                    // InternalPerspectiveDsl.g:9251:11: '^'
                     {
                     match('^'); 
 
@@ -3068,7 +3090,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalPerspectiveDsl.g:9232:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:9251:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -3117,10 +3139,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9234:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalPerspectiveDsl.g:9234:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:9253:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalPerspectiveDsl.g:9253:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalPerspectiveDsl.g:9234:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:9253:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -3138,10 +3160,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9234:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalPerspectiveDsl.g:9253:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalPerspectiveDsl.g:9234:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalPerspectiveDsl.g:9253:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -3157,7 +3179,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:9234:21: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:9253:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3165,7 +3187,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:9234:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalPerspectiveDsl.g:9253:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3185,7 +3207,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:9234:44: ( '\"' )?
+                    // InternalPerspectiveDsl.g:9253:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3194,7 +3216,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:9234:44: '\"'
+                            // InternalPerspectiveDsl.g:9253:44: '\"'
                             {
                             match('\"'); 
 
@@ -3207,10 +3229,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:9234:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalPerspectiveDsl.g:9253:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalPerspectiveDsl.g:9234:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalPerspectiveDsl.g:9253:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3226,7 +3248,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:9234:55: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:9253:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3234,7 +3256,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:9234:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalPerspectiveDsl.g:9253:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3254,7 +3276,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:9234:79: ( '\\'' )?
+                    // InternalPerspectiveDsl.g:9253:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3263,7 +3285,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:9234:79: '\\''
+                            // InternalPerspectiveDsl.g:9253:79: '\\''
                             {
                             match('\''); 
 
@@ -3294,12 +3316,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9236:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalPerspectiveDsl.g:9236:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalPerspectiveDsl.g:9255:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalPerspectiveDsl.g:9255:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalPerspectiveDsl.g:9236:24: ( options {greedy=false; } : . )*
+            // InternalPerspectiveDsl.g:9255:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3324,7 +3346,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9236:52: .
+            	    // InternalPerspectiveDsl.g:9255:52: .
             	    {
             	    matchAny(); 
 
@@ -3354,12 +3376,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9238:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalPerspectiveDsl.g:9238:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:9257:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalPerspectiveDsl.g:9257:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalPerspectiveDsl.g:9238:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalPerspectiveDsl.g:9257:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3372,7 +3394,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9238:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalPerspectiveDsl.g:9257: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();
@@ -3392,7 +3414,7 @@
                 }
             } while (true);
 
-            // InternalPerspectiveDsl.g:9238:40: ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:9257:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3401,9 +3423,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9238:41: ( '\\r' )? '\\n'
+                    // InternalPerspectiveDsl.g:9257:41: ( '\\r' )? '\\n'
                     {
-                    // InternalPerspectiveDsl.g:9238:41: ( '\\r' )?
+                    // InternalPerspectiveDsl.g:9257:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3412,7 +3434,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:9238:41: '\\r'
+                            // InternalPerspectiveDsl.g:9257:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3444,10 +3466,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9240:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalPerspectiveDsl.g:9240:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:9259:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalPerspectiveDsl.g:9259:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalPerspectiveDsl.g:9240:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:9259:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3501,8 +3523,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:9242:16: ( . )
-            // InternalPerspectiveDsl.g:9242:18: .
+            // InternalPerspectiveDsl.g:9261:16: ( . )
+            // InternalPerspectiveDsl.g:9261:18: .
             {
             matchAny(); 
 
@@ -3517,8 +3539,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalPerspectiveDsl.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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=130;
+        // InternalPerspectiveDsl.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 :
@@ -4369,63 +4391,70 @@
                 }
                 break;
             case 122 :
-                // InternalPerspectiveDsl.g:1:770: RULE_HEX
+                // InternalPerspectiveDsl.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // InternalPerspectiveDsl.g:1:777: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 123 :
-                // InternalPerspectiveDsl.g:1:779: RULE_INT
+            case 124 :
+                // InternalPerspectiveDsl.g:1:786: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 124 :
-                // InternalPerspectiveDsl.g:1:788: RULE_DECIMAL
+            case 125 :
+                // InternalPerspectiveDsl.g:1:795: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 125 :
-                // InternalPerspectiveDsl.g:1:801: RULE_ID
+            case 126 :
+                // InternalPerspectiveDsl.g:1:808: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 126 :
-                // InternalPerspectiveDsl.g:1:809: RULE_STRING
+            case 127 :
+                // InternalPerspectiveDsl.g:1:816: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 127 :
-                // InternalPerspectiveDsl.g:1:821: RULE_ML_COMMENT
+            case 128 :
+                // InternalPerspectiveDsl.g:1:828: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 128 :
-                // InternalPerspectiveDsl.g:1:837: RULE_SL_COMMENT
+            case 129 :
+                // InternalPerspectiveDsl.g:1:844: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 129 :
-                // InternalPerspectiveDsl.g:1:853: RULE_WS
+            case 130 :
+                // InternalPerspectiveDsl.g:1:860: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 130 :
-                // InternalPerspectiveDsl.g:1:861: RULE_ANY_OTHER
+            case 131 :
+                // InternalPerspectiveDsl.g:1:868: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -4439,17 +4468,17 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\66\2\uffff\20\66\1\156\5\uffff\1\166\3\uffff\1\174\1\u0080\1\u0084\1\u0086\1\u0088\1\u008a\1\u008c\1\u008e\1\u0090\1\u0092\1\u0095\1\u0097\1\66\2\u009a\1\62\5\uffff\3\66\3\uffff\3\66\1\u00a8\4\66\1\u00ae\1\66\1\u00b0\2\66\1\u00b3\22\66\1\u00ca\17\66\1\u00e0\2\66\10\uffff\1\u00e4\32\uffff\1\u00e6\1\uffff\1\u00e8\6\uffff\1\66\2\uffff\1\u009a\3\uffff\11\66\1\uffff\1\66\1\u00f4\3\66\1\uffff\1\66\1\uffff\2\66\1\uffff\5\66\1\u0100\20\66\1\uffff\1\66\1\u0112\1\u0113\17\66\1\u0123\2\66\1\uffff\1\u0126\1\66\6\uffff\2\66\1\u012b\10\66\1\uffff\1\u0135\11\66\1\u013f\1\uffff\5\66\1\u0145\12\66\1\u0150\2\uffff\5\66\1\u0156\1\u0157\1\66\1\u0159\6\66\1\uffff\1\66\1\u0161\1\uffff\1\u0162\3\66\1\uffff\3\66\1\u0169\5\66\1\uffff\10\66\1\u0177\1\uffff\1\66\1\u0179\3\66\1\uffff\7\66\1\u0185\2\66\1\uffff\4\66\1\u018c\2\uffff\1\u018d\1\uffff\3\66\1\u0191\2\66\1\u0194\2\uffff\6\66\1\uffff\1\66\1\u019c\5\66\1\u01a2\5\66\1\uffff\1\u01a8\1\uffff\5\66\1\u01af\1\u01b0\2\66\1\u01b3\1\u01b4\1\uffff\4\66\1\u01b9\1\u01ba\2\uffff\1\66\1\u01bc\1\66\1\uffff\2\66\1\uffff\1\66\1\u01c1\2\66\1\u01c4\1\66\1\u01c6\1\uffff\2\66\1\u01c9\2\66\1\uffff\2\66\1\u01ce\2\66\1\uffff\3\66\1\u01d4\2\66\2\uffff\2\66\2\uffff\4\66\2\uffff\1\u01dd\1\uffff\1\u01de\1\66\1\u01e0\1\66\1\uffff\2\66\1\uffff\1\66\1\uffff\1\66\1\u01e6\1\uffff\4\66\1\uffff\1\u01eb\4\66\1\uffff\6\66\1\u01f6\1\66\2\uffff\1\66\1\uffff\1\66\1\u01fa\3\66\1\uffff\4\66\1\uffff\3\66\1\u0205\6\66\1\uffff\3\66\1\uffff\3\66\1\u0212\1\u0213\2\66\1\u0216\2\66\1\uffff\5\66\1\u021e\2\66\1\u0221\1\u0222\1\u0223\1\66\2\uffff\2\66\1\uffff\4\66\1\u022b\1\u022d\1\u022e\1\uffff\2\66\3\uffff\3\66\1\u0234\3\66\1\uffff\1\u0238\2\uffff\3\66\1\u023c\1\66\1\uffff\1\u023e\1\u023f\1\66\1\uffff\1\u0241\1\u0242\1\66\1\uffff\1\u0244\2\uffff\1\66\2\uffff\1\u0246\1\uffff\1\u0247\2\uffff";
+        "\1\uffff\1\66\2\uffff\20\66\1\157\5\uffff\1\167\3\uffff\1\175\1\u0081\1\u0085\1\u0087\1\u0089\1\u008b\1\u008d\1\u008f\1\u0091\1\u0093\1\u0096\1\u0098\1\66\2\u009c\1\62\5\uffff\3\66\3\uffff\3\66\1\u00a9\4\66\1\u00af\1\66\1\u00b1\2\66\1\u00b4\22\66\1\u00cb\20\66\1\u00e2\2\66\10\uffff\1\u00e6\32\uffff\1\u00e8\1\uffff\1\u00ea\6\uffff\1\66\1\uffff\1\u009c\4\uffff\11\66\1\uffff\1\66\1\u00f6\3\66\1\uffff\1\66\1\uffff\2\66\1\uffff\5\66\1\u0102\20\66\1\uffff\1\66\1\u0114\1\u0115\20\66\1\u0126\2\66\1\uffff\1\u0129\1\66\6\uffff\2\66\1\u012e\10\66\1\uffff\1\u0138\11\66\1\u0142\1\uffff\5\66\1\u0148\12\66\1\u0153\2\uffff\5\66\1\u0159\1\u015a\2\66\1\u015d\6\66\1\uffff\1\66\1\u0165\1\uffff\1\u0166\3\66\1\uffff\3\66\1\u016d\5\66\1\uffff\10\66\1\u017b\1\uffff\1\66\1\u017d\3\66\1\uffff\7\66\1\u0189\2\66\1\uffff\4\66\1\u0190\2\uffff\1\u0191\1\66\1\uffff\3\66\1\u0196\2\66\1\u0199\2\uffff\6\66\1\uffff\1\66\1\u01a1\5\66\1\u01a7\5\66\1\uffff\1\u01ad\1\uffff\5\66\1\u01b4\1\u01b5\2\66\1\u01b8\1\u01b9\1\uffff\4\66\1\u01be\1\u01bf\2\uffff\2\66\1\u01c2\1\66\1\uffff\2\66\1\uffff\1\66\1\u01c7\2\66\1\u01ca\1\66\1\u01cc\1\uffff\2\66\1\u01cf\2\66\1\uffff\2\66\1\u01d4\2\66\1\uffff\3\66\1\u01da\2\66\2\uffff\2\66\2\uffff\4\66\2\uffff\1\66\1\u01e4\1\uffff\1\u01e5\1\66\1\u01e7\1\66\1\uffff\2\66\1\uffff\1\66\1\uffff\1\66\1\u01ed\1\uffff\4\66\1\uffff\1\u01f2\4\66\1\uffff\6\66\1\u01fd\1\66\1\u01ff\2\uffff\1\66\1\uffff\1\66\1\u0202\3\66\1\uffff\4\66\1\uffff\3\66\1\u020d\6\66\1\uffff\1\66\1\uffff\2\66\1\uffff\3\66\1\u021a\1\u021b\2\66\1\u021e\2\66\1\uffff\5\66\1\u0226\2\66\1\u0229\1\u022a\1\u022b\1\66\2\uffff\2\66\1\uffff\4\66\1\u0233\1\u0235\1\u0236\1\uffff\2\66\3\uffff\3\66\1\u023c\3\66\1\uffff\1\u0240\2\uffff\3\66\1\u0244\1\66\1\uffff\1\u0246\1\u0247\1\66\1\uffff\1\u0249\1\u024a\1\66\1\uffff\1\u024c\2\uffff\1\66\2\uffff\1\u024e\1\uffff\1\u024f\2\uffff";
     static final String DFA21_eofS =
-        "\u0248\uffff";
+        "\u0250\uffff";
     static final String DFA21_minS =
-        "\1\0\1\141\2\uffff\1\141\1\162\2\143\1\141\1\144\1\141\1\146\1\141\1\145\1\141\1\160\1\141\1\145\2\141\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\2\56\1\72\1\157\2\60\1\44\5\uffff\1\143\1\162\1\157\3\uffff\1\146\1\141\1\164\1\44\1\145\1\154\1\157\1\103\1\44\1\160\1\44\1\143\1\154\1\44\1\157\1\162\1\164\1\165\1\160\1\162\1\145\1\151\1\164\2\163\2\141\1\156\1\141\1\151\1\160\1\147\1\44\1\145\1\154\1\162\2\141\1\162\1\155\1\157\1\156\1\154\1\151\1\154\1\162\1\154\1\155\1\44\1\167\1\154\10\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\2\uffff\1\60\3\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\44\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\44\1\145\1\157\1\156\1\164\2\145\1\150\1\145\1\162\2\143\2\164\2\145\1\141\1\uffff\1\167\2\44\1\164\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\156\1\167\1\142\1\143\1\154\1\164\1\141\1\44\1\163\1\145\1\uffff\1\44\1\154\6\uffff\1\151\1\141\1\44\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\uffff\1\44\1\157\1\141\1\162\1\163\1\167\1\142\1\154\2\145\1\44\1\uffff\1\157\1\167\1\164\1\141\1\156\1\44\1\103\2\143\1\145\1\150\1\151\1\143\1\162\2\156\1\44\2\uffff\1\151\1\117\2\162\1\164\2\44\1\150\1\44\1\163\1\141\1\157\2\145\1\154\1\uffff\1\145\1\44\1\uffff\1\44\1\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\44\1\154\1\147\1\156\1\141\1\122\1\uffff\1\163\1\156\1\164\1\163\1\145\1\141\1\157\1\164\1\44\1\uffff\1\146\1\44\1\115\1\142\1\144\1\uffff\1\157\1\164\1\150\1\126\1\162\1\143\1\150\1\44\1\164\1\151\1\uffff\1\143\1\156\1\164\1\156\1\44\2\uffff\1\44\1\uffff\1\145\1\156\1\155\1\44\1\162\1\154\1\44\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\44\1\164\1\163\1\111\1\141\1\143\1\44\1\151\1\144\1\162\1\147\1\120\1\uffff\1\44\1\uffff\1\141\1\154\1\151\1\163\1\156\2\44\2\157\2\44\1\uffff\1\141\1\147\1\141\1\154\2\44\2\uffff\1\162\1\44\1\145\1\uffff\1\103\1\171\1\uffff\1\156\1\44\1\143\1\164\1\44\1\145\1\44\1\uffff\1\145\1\153\1\44\1\142\1\145\1\uffff\1\142\1\123\1\44\1\171\1\141\1\uffff\1\156\1\145\1\157\1\44\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\164\1\162\1\154\1\171\2\uffff\1\44\1\uffff\1\44\1\157\1\44\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\44\1\uffff\1\154\1\157\1\151\1\157\1\uffff\1\44\1\162\1\141\1\124\1\156\1\uffff\1\141\1\105\1\165\2\151\1\141\1\44\1\124\2\uffff\1\154\1\uffff\1\141\1\44\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\165\1\uffff\1\164\1\147\1\141\1\44\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\141\1\165\1\154\1\uffff\1\145\1\171\1\150\2\44\1\151\1\162\1\44\1\145\1\142\1\uffff\1\156\3\145\1\156\1\44\1\142\1\155\3\44\1\141\2\uffff\1\164\1\143\1\uffff\1\162\1\154\1\145\1\155\3\44\1\uffff\1\154\1\156\3\uffff\1\156\1\171\1\145\1\44\1\145\1\162\1\145\1\uffff\1\44\2\uffff\1\145\1\163\1\147\1\44\1\163\1\uffff\2\44\1\156\1\uffff\2\44\1\145\1\uffff\1\44\2\uffff\1\164\2\uffff\1\44\1\uffff\1\44\2\uffff";
+        "\1\0\1\141\2\uffff\1\141\1\162\2\143\1\141\1\144\1\141\1\146\1\141\1\145\1\141\1\160\1\141\1\145\2\141\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\2\56\1\72\1\157\2\60\1\44\5\uffff\1\143\1\162\1\157\3\uffff\1\146\1\141\1\164\1\44\1\145\1\154\1\157\1\103\1\44\1\160\1\44\1\143\1\154\1\44\1\157\1\162\1\164\1\165\1\160\1\162\1\145\1\151\1\164\2\163\2\141\1\156\1\141\1\151\1\160\1\147\1\44\1\145\1\154\1\162\2\141\1\162\1\142\1\155\1\157\1\156\1\154\1\151\1\154\1\162\1\154\1\155\1\44\1\167\1\154\10\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\1\uffff\1\60\4\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\44\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\44\1\145\1\157\1\156\1\164\2\145\1\150\1\145\1\162\2\143\2\164\2\145\1\141\1\uffff\1\167\2\44\1\164\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\145\1\156\1\167\1\142\1\143\1\154\1\164\1\141\1\44\1\163\1\145\1\uffff\1\44\1\154\6\uffff\1\151\1\141\1\44\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\uffff\1\44\1\157\1\141\1\162\1\163\1\167\1\142\1\154\2\145\1\44\1\uffff\1\157\1\167\1\164\1\141\1\156\1\44\1\103\2\143\1\145\1\150\1\151\1\143\1\162\2\156\1\44\2\uffff\1\151\1\117\2\162\1\164\2\44\1\150\1\126\1\44\1\163\1\141\1\157\2\145\1\154\1\uffff\1\145\1\44\1\uffff\1\44\1\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\44\1\154\1\147\1\156\1\141\1\122\1\uffff\1\163\1\156\1\164\1\163\1\145\1\141\1\157\1\164\1\44\1\uffff\1\146\1\44\1\115\1\142\1\144\1\uffff\1\157\1\164\1\150\1\126\1\162\1\143\1\150\1\44\1\164\1\151\1\uffff\1\143\1\156\1\164\1\156\1\44\2\uffff\1\44\1\151\1\uffff\1\145\1\156\1\155\1\44\1\162\1\154\1\44\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\44\1\164\1\163\1\111\1\141\1\143\1\44\1\151\1\144\1\162\1\147\1\120\1\uffff\1\44\1\uffff\1\141\1\154\1\151\1\163\1\156\2\44\2\157\2\44\1\uffff\1\141\1\147\1\141\1\154\2\44\2\uffff\1\145\1\162\1\44\1\145\1\uffff\1\103\1\171\1\uffff\1\156\1\44\1\143\1\164\1\44\1\145\1\44\1\uffff\1\145\1\153\1\44\1\142\1\145\1\uffff\1\142\1\123\1\44\1\171\1\141\1\uffff\1\156\1\145\1\157\1\44\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\164\1\162\1\154\1\171\2\uffff\1\167\1\44\1\uffff\1\44\1\157\1\44\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\44\1\uffff\1\154\1\157\1\151\1\157\1\uffff\1\44\1\162\1\141\1\124\1\156\1\uffff\1\141\1\105\1\165\2\151\1\141\1\44\1\124\1\44\2\uffff\1\154\1\uffff\1\141\1\44\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\165\1\uffff\1\164\1\147\1\141\1\44\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\141\1\uffff\1\165\1\154\1\uffff\1\145\1\171\1\150\2\44\1\151\1\162\1\44\1\145\1\142\1\uffff\1\156\3\145\1\156\1\44\1\142\1\155\3\44\1\141\2\uffff\1\164\1\143\1\uffff\1\162\1\154\1\145\1\155\3\44\1\uffff\1\154\1\156\3\uffff\1\156\1\171\1\145\1\44\1\145\1\162\1\145\1\uffff\1\44\2\uffff\1\145\1\163\1\147\1\44\1\163\1\uffff\2\44\1\156\1\uffff\2\44\1\145\1\uffff\1\44\2\uffff\1\164\2\uffff\1\44\1\uffff\1\44\2\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\162\2\uffff\1\157\3\163\1\171\1\170\1\171\1\162\1\151\1\145\1\150\1\162\1\141\1\150\1\157\1\165\1\75\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\1\56\2\72\1\157\1\170\1\154\1\172\5\uffff\2\162\1\157\3\uffff\1\163\1\141\1\164\1\172\1\145\1\154\1\157\1\103\1\172\1\160\1\172\1\143\1\154\1\172\1\160\1\162\1\164\1\171\1\160\1\162\1\145\1\151\1\164\2\163\1\154\1\141\1\156\1\141\1\151\1\160\1\151\1\172\1\145\2\162\1\164\1\141\1\164\1\155\1\157\1\156\1\154\1\151\1\156\1\162\1\154\1\155\1\172\1\167\1\154\10\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\2\uffff\1\154\3\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\172\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\172\1\145\1\157\1\156\1\164\2\145\1\150\1\145\1\162\2\143\2\164\2\145\1\141\1\uffff\1\167\2\172\1\164\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\156\1\167\1\142\1\143\1\154\1\164\1\141\1\172\1\163\1\145\1\uffff\1\172\1\154\6\uffff\1\151\1\141\1\172\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\uffff\1\172\1\157\1\141\1\162\1\163\1\167\1\142\1\154\2\145\1\172\1\uffff\1\157\1\167\1\164\1\141\1\156\1\172\1\103\2\143\1\145\1\150\1\151\1\143\1\162\2\156\1\172\2\uffff\1\151\1\117\2\162\1\164\2\172\1\150\1\172\1\163\1\141\1\157\2\145\1\154\1\uffff\1\145\1\172\1\uffff\2\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\172\1\154\1\147\1\156\1\141\1\122\1\uffff\1\163\1\156\1\164\1\163\1\145\1\141\1\157\1\164\1\172\1\uffff\1\146\1\172\1\115\1\142\1\163\1\uffff\1\157\1\164\1\150\1\126\1\162\1\143\1\150\1\172\1\164\1\151\1\uffff\1\143\1\156\1\164\1\156\1\172\2\uffff\1\172\1\uffff\1\145\1\156\1\155\1\172\1\162\1\154\1\172\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\172\1\164\1\163\1\111\1\141\1\143\1\172\1\151\1\144\1\162\1\147\1\120\1\uffff\1\172\1\uffff\1\141\1\154\1\151\1\163\1\156\2\172\2\157\2\172\1\uffff\1\141\1\147\1\141\1\154\2\172\2\uffff\1\162\1\172\1\145\1\uffff\1\103\1\171\1\uffff\1\156\1\172\1\143\1\164\1\172\1\145\1\172\1\uffff\1\145\1\153\1\172\1\142\1\145\1\uffff\1\142\1\123\1\172\1\171\1\141\1\uffff\1\156\1\145\1\157\1\172\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\164\1\162\1\154\1\171\2\uffff\1\172\1\uffff\1\172\1\157\1\172\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\172\1\uffff\1\154\1\157\1\151\1\157\1\uffff\1\172\1\162\1\141\1\124\1\156\1\uffff\1\141\1\105\1\165\2\151\1\141\1\172\1\124\2\uffff\1\154\1\uffff\1\141\1\172\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\165\1\uffff\1\164\1\147\1\141\1\172\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\141\1\165\1\154\1\uffff\1\145\1\171\1\150\2\172\1\151\1\162\1\172\1\145\1\142\1\uffff\1\156\3\145\1\156\1\172\1\142\1\155\3\172\1\141\2\uffff\1\164\1\143\1\uffff\1\162\1\154\1\145\1\155\3\172\1\uffff\1\154\1\156\3\uffff\1\156\1\171\1\145\1\172\1\145\1\162\1\145\1\uffff\1\172\2\uffff\1\145\1\163\1\147\1\172\1\163\1\uffff\2\172\1\156\1\uffff\2\172\1\145\1\uffff\1\172\2\uffff\1\164\2\uffff\1\172\1\uffff\1\172\2\uffff";
+        "\1\uffff\1\162\2\uffff\1\157\3\163\1\171\1\170\1\171\1\162\1\151\1\145\1\165\1\162\1\141\1\150\1\157\1\165\1\75\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\1\56\2\72\1\157\1\170\1\154\1\172\5\uffff\2\162\1\157\3\uffff\1\163\1\141\1\164\1\172\1\145\1\154\1\157\1\103\1\172\1\160\1\172\1\143\1\154\1\172\1\160\1\162\1\164\1\171\1\160\1\162\1\145\1\151\1\164\2\163\1\154\1\141\1\156\1\141\1\151\1\160\1\151\1\172\1\145\2\162\1\164\1\141\1\164\1\142\1\155\1\157\1\156\1\154\1\151\1\156\1\162\1\154\1\155\1\172\1\167\1\154\10\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\1\uffff\1\154\4\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\172\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\172\1\145\1\157\1\156\1\164\2\145\1\150\1\145\1\162\2\143\2\164\2\145\1\141\1\uffff\1\167\2\172\1\164\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\145\1\156\1\167\1\142\1\143\1\154\1\164\1\141\1\172\1\163\1\145\1\uffff\1\172\1\154\6\uffff\1\151\1\141\1\172\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\uffff\1\172\1\157\1\141\1\162\1\163\1\167\1\142\1\154\2\145\1\172\1\uffff\1\157\1\167\1\164\1\141\1\156\1\172\1\103\2\143\1\145\1\150\1\151\1\143\1\162\2\156\1\172\2\uffff\1\151\1\117\2\162\1\164\2\172\1\150\1\126\1\172\1\163\1\141\1\157\2\145\1\154\1\uffff\1\145\1\172\1\uffff\2\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\172\1\154\1\147\1\156\1\141\1\122\1\uffff\1\163\1\156\1\164\1\163\1\145\1\141\1\157\1\164\1\172\1\uffff\1\146\1\172\1\115\1\142\1\163\1\uffff\1\157\1\164\1\150\1\126\1\162\1\143\1\150\1\172\1\164\1\151\1\uffff\1\143\1\156\1\164\1\156\1\172\2\uffff\1\172\1\151\1\uffff\1\145\1\156\1\155\1\172\1\162\1\154\1\172\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\172\1\164\1\163\1\111\1\141\1\143\1\172\1\151\1\144\1\162\1\147\1\120\1\uffff\1\172\1\uffff\1\141\1\154\1\151\1\163\1\156\2\172\2\157\2\172\1\uffff\1\141\1\147\1\141\1\154\2\172\2\uffff\1\145\1\162\1\172\1\145\1\uffff\1\103\1\171\1\uffff\1\156\1\172\1\143\1\164\1\172\1\145\1\172\1\uffff\1\145\1\153\1\172\1\142\1\145\1\uffff\1\142\1\123\1\172\1\171\1\141\1\uffff\1\156\1\145\1\157\1\172\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\164\1\162\1\154\1\171\2\uffff\1\167\1\172\1\uffff\1\172\1\157\1\172\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\172\1\uffff\1\154\1\157\1\151\1\157\1\uffff\1\172\1\162\1\141\1\124\1\156\1\uffff\1\141\1\105\1\165\2\151\1\141\1\172\1\124\1\172\2\uffff\1\154\1\uffff\1\141\1\172\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\165\1\uffff\1\164\1\147\1\141\1\172\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\141\1\uffff\1\165\1\154\1\uffff\1\145\1\171\1\150\2\172\1\151\1\162\1\172\1\145\1\142\1\uffff\1\156\3\145\1\156\1\172\1\142\1\155\3\172\1\141\2\uffff\1\164\1\143\1\uffff\1\162\1\154\1\145\1\155\3\172\1\uffff\1\154\1\156\3\uffff\1\156\1\171\1\145\1\172\1\145\1\162\1\145\1\uffff\1\172\2\uffff\1\145\1\163\1\147\1\172\1\163\1\uffff\2\172\1\156\1\uffff\2\172\1\145\1\uffff\1\172\2\uffff\1\164\2\uffff\1\172\1\uffff\1\172\2\uffff";
     static final String DFA21_acceptS =
-        "\2\uffff\1\2\1\3\21\uffff\1\63\1\64\1\65\1\66\1\67\1\uffff\1\71\1\72\1\73\20\uffff\1\175\2\176\1\u0081\1\u0082\3\uffff\1\175\1\2\1\3\63\uffff\1\76\1\123\1\61\1\63\1\64\1\65\1\66\1\67\1\uffff\1\116\1\70\1\71\1\72\1\73\1\74\1\130\1\121\1\75\1\113\1\131\1\122\1\77\1\177\1\u0080\1\124\1\100\1\125\1\117\1\101\1\103\1\102\1\104\1\135\1\105\1\167\1\uffff\1\126\1\uffff\1\132\1\120\1\134\1\166\1\133\1\141\1\uffff\1\172\1\173\1\uffff\1\174\1\176\1\u0081\11\uffff\1\146\5\uffff\1\46\1\uffff\1\136\2\uffff\1\127\26\uffff\1\42\25\uffff\1\62\2\uffff\1\110\1\106\1\111\1\107\1\114\1\115\13\uffff\1\55\13\uffff\1\162\21\uffff\1\147\1\150\17\uffff\1\144\2\uffff\1\153\4\uffff\1\22\11\uffff\1\10\11\uffff\1\155\5\uffff\1\137\12\uffff\1\24\5\uffff\1\43\1\143\1\uffff\1\40\7\uffff\1\53\1\156\6\uffff\1\47\15\uffff\1\52\1\uffff\1\160\13\uffff\1\152\6\uffff\1\33\1\165\3\uffff\1\145\2\uffff\1\154\7\uffff\1\37\5\uffff\1\56\5\uffff\1\157\6\uffff\1\30\1\45\2\uffff\1\57\1\140\4\uffff\1\34\1\161\1\uffff\1\41\4\uffff\1\1\2\uffff\1\6\1\uffff\1\142\2\uffff\1\23\4\uffff\1\12\5\uffff\1\151\10\uffff\1\54\1\44\1\uffff\1\163\5\uffff\1\7\4\uffff\1\36\12\uffff\1\171\3\uffff\1\20\12\uffff\1\60\14\uffff\1\25\1\112\2\uffff\1\26\7\uffff\1\35\2\uffff\1\170\1\4\1\5\7\uffff\1\17\1\uffff\1\21\1\15\5\uffff\1\13\3\uffff\1\164\3\uffff\1\11\1\uffff\1\32\1\14\1\uffff\1\31\1\50\1\uffff\1\27\1\uffff\1\51\1\16";
+        "\2\uffff\1\2\1\3\21\uffff\1\64\1\65\1\66\1\67\1\70\1\uffff\1\72\1\73\1\74\20\uffff\1\176\2\177\1\u0082\1\u0083\3\uffff\1\176\1\2\1\3\64\uffff\1\77\1\124\1\62\1\64\1\65\1\66\1\67\1\70\1\uffff\1\117\1\71\1\72\1\73\1\74\1\75\1\131\1\122\1\76\1\114\1\132\1\123\1\100\1\u0080\1\u0081\1\125\1\101\1\126\1\120\1\102\1\104\1\103\1\105\1\136\1\106\1\170\1\uffff\1\127\1\uffff\1\133\1\121\1\135\1\167\1\134\1\142\1\uffff\1\173\1\uffff\1\174\1\175\1\177\1\u0082\11\uffff\1\147\5\uffff\1\46\1\uffff\1\137\2\uffff\1\130\26\uffff\1\42\26\uffff\1\63\2\uffff\1\111\1\107\1\112\1\110\1\115\1\116\13\uffff\1\55\13\uffff\1\163\21\uffff\1\150\1\151\20\uffff\1\145\2\uffff\1\154\4\uffff\1\22\11\uffff\1\10\11\uffff\1\156\5\uffff\1\140\12\uffff\1\24\5\uffff\1\43\1\144\2\uffff\1\40\7\uffff\1\53\1\157\6\uffff\1\47\15\uffff\1\52\1\uffff\1\161\13\uffff\1\153\6\uffff\1\33\1\166\4\uffff\1\146\2\uffff\1\155\7\uffff\1\37\5\uffff\1\57\5\uffff\1\160\6\uffff\1\30\1\45\2\uffff\1\60\1\141\4\uffff\1\34\1\162\2\uffff\1\41\4\uffff\1\1\2\uffff\1\6\1\uffff\1\143\2\uffff\1\23\4\uffff\1\12\5\uffff\1\152\11\uffff\1\54\1\44\1\uffff\1\164\5\uffff\1\7\4\uffff\1\36\12\uffff\1\172\1\uffff\1\56\2\uffff\1\20\12\uffff\1\61\14\uffff\1\25\1\113\2\uffff\1\26\7\uffff\1\35\2\uffff\1\171\1\4\1\5\7\uffff\1\17\1\uffff\1\21\1\15\5\uffff\1\13\3\uffff\1\165\3\uffff\1\11\1\uffff\1\32\1\14\1\uffff\1\31\1\50\1\uffff\1\27\1\uffff\1\51\1\16";
     static final String DFA21_specialS =
-        "\1\0\u0247\uffff}>";
+        "\1\0\u024f\uffff}>";
     static final String[] DFA21_transitionS = {
             "\11\62\2\61\2\62\1\61\22\62\1\61\1\46\1\57\1\33\1\56\1\41\1\45\1\60\1\27\1\31\1\24\1\36\1\30\1\37\1\47\1\40\1\53\11\54\1\51\1\25\1\42\1\32\1\43\1\50\1\26\32\56\1\34\1\62\1\35\1\55\1\56\1\62\1\7\1\17\1\16\1\4\1\11\1\22\1\56\1\52\1\6\1\56\1\20\2\56\1\23\1\13\1\1\1\56\1\15\1\12\1\10\1\5\1\14\1\21\3\56\1\2\1\44\1\3\uff82\62",
             "\1\63\3\uffff\1\64\14\uffff\1\65",
@@ -4465,127 +4494,101 @@
             "\1\131\13\uffff\1\130",
             "\1\133\3\uffff\1\134\3\uffff\1\132",
             "\1\135",
-            "\1\137\6\uffff\1\136",
-            "\1\140\1\uffff\1\141",
-            "\1\142",
-            "\1\143\2\uffff\1\144",
-            "\1\147\7\uffff\1\145\5\uffff\1\146",
-            "\1\150\3\uffff\1\152\15\uffff\1\151\1\uffff\1\153",
-            "\1\155\22\uffff\1\154",
+            "\1\137\6\uffff\1\136\14\uffff\1\140",
+            "\1\141\1\uffff\1\142",
+            "\1\143",
+            "\1\144\2\uffff\1\145",
+            "\1\150\7\uffff\1\146\5\uffff\1\147",
+            "\1\151\3\uffff\1\153\15\uffff\1\152\1\uffff\1\154",
+            "\1\156\22\uffff\1\155",
             "",
             "",
             "",
             "",
             "",
-            "\1\164\1\165",
+            "\1\165\1\166",
             "",
             "",
             "",
-            "\1\173\21\uffff\1\172",
-            "\1\177\17\uffff\1\175\1\176",
-            "\1\u0082\4\uffff\1\u0083\15\uffff\1\u0081",
-            "\1\u0085",
-            "\1\u0087",
-            "\1\u0089",
-            "\1\u008b",
-            "\1\u008d",
-            "\1\u008f",
-            "\1\u0091",
-            "\1\u0094\13\uffff\1\u0093",
-            "\1\u0096",
-            "\1\u0098",
-            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099\6\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099",
-            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
+            "\1\174\21\uffff\1\173",
+            "\1\u0080\17\uffff\1\176\1\177",
+            "\1\u0083\4\uffff\1\u0084\15\uffff\1\u0082",
+            "\1\u0086",
+            "\1\u0088",
+            "\1\u008a",
+            "\1\u008c",
+            "\1\u008e",
+            "\1\u0090",
+            "\1\u0092",
+            "\1\u0095\13\uffff\1\u0094",
+            "\1\u0097",
+            "\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\66\34\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
             "",
             "",
             "",
             "",
-            "\1\u009f\16\uffff\1\u00a0",
-            "\1\u00a1",
+            "\1\u00a0\16\uffff\1\u00a1",
             "\1\u00a2",
+            "\1\u00a3",
             "",
             "",
             "",
-            "\1\u00a5\11\uffff\1\u00a4\2\uffff\1\u00a3",
-            "\1\u00a6",
+            "\1\u00a6\11\uffff\1\u00a5\2\uffff\1\u00a4",
             "\1\u00a7",
+            "\1\u00a8",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00a9",
             "\1\u00aa",
             "\1\u00ab",
             "\1\u00ac",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\22\66\1\u00ad\7\66",
-            "\1\u00af",
+            "\1\u00ad",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\22\66\1\u00ae\7\66",
+            "\1\u00b0",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00b1",
             "\1\u00b2",
+            "\1\u00b3",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00b4\1\u00b5",
-            "\1\u00b6",
+            "\1\u00b5\1\u00b6",
             "\1\u00b7",
-            "\1\u00b8\3\uffff\1\u00b9",
-            "\1\u00ba",
+            "\1\u00b8",
+            "\1\u00b9\3\uffff\1\u00ba",
             "\1\u00bb",
             "\1\u00bc",
             "\1\u00bd",
             "\1\u00be",
             "\1\u00bf",
             "\1\u00c0",
-            "\1\u00c2\12\uffff\1\u00c1",
-            "\1\u00c3",
+            "\1\u00c1",
+            "\1\u00c3\12\uffff\1\u00c2",
             "\1\u00c4",
             "\1\u00c5",
             "\1\u00c6",
             "\1\u00c7",
-            "\1\u00c9\1\uffff\1\u00c8",
+            "\1\u00c8",
+            "\1\u00ca\1\uffff\1\u00c9",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00cb",
-            "\1\u00cd\5\uffff\1\u00cc",
-            "\1\u00ce",
-            "\1\u00cf\16\uffff\1\u00d0\3\uffff\1\u00d1",
-            "\1\u00d2",
-            "\1\u00d3\1\u00d4\1\u00d5",
-            "\1\u00d6",
+            "\1\u00cc",
+            "\1\u00ce\5\uffff\1\u00cd",
+            "\1\u00cf",
+            "\1\u00d0\16\uffff\1\u00d1\3\uffff\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d4\1\u00d5\1\u00d6",
             "\1\u00d7",
             "\1\u00d8",
             "\1\u00d9",
             "\1\u00da",
-            "\1\u00db\1\uffff\1\u00dc",
-            "\1\u00dd",
-            "\1\u00de",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd\1\uffff\1\u00de",
             "\1\u00df",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u00e0",
             "\1\u00e1",
-            "\1\u00e2",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u00e3",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\1\u00e4",
             "",
             "",
             "",
@@ -4596,22 +4599,47 @@
             "",
             "\1\u00e5",
             "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00e7",
             "",
-            "",
-            "",
-            "",
-            "",
-            "",
             "\1\u00e9",
             "",
             "",
-            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
             "",
             "",
             "",
-            "\1\u00ea",
+            "",
             "\1\u00eb",
+            "",
+            "\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\u00ec",
             "\1\u00ed",
             "\1\u00ee",
@@ -4619,26 +4647,26 @@
             "\1\u00f0",
             "\1\u00f1",
             "\1\u00f2",
-            "",
             "\1\u00f3",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u00f4",
+            "",
             "\1\u00f5",
-            "\1\u00f6",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u00f7",
-            "",
             "\1\u00f8",
-            "",
             "\1\u00f9",
+            "",
             "\1\u00fa",
             "",
             "\1\u00fb",
             "\1\u00fc",
+            "",
             "\1\u00fd",
             "\1\u00fe",
             "\1\u00ff",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0100",
             "\1\u0101",
-            "\1\u0102",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0103",
             "\1\u0104",
             "\1\u0105",
@@ -4653,12 +4681,12 @@
             "\1\u010e",
             "\1\u010f",
             "\1\u0110",
-            "",
             "\1\u0111",
+            "\1\u0112",
+            "",
+            "\1\u0113",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u0114",
-            "\1\u0115",
             "\1\u0116",
             "\1\u0117",
             "\1\u0118",
@@ -4672,51 +4700,51 @@
             "\1\u0120",
             "\1\u0121",
             "\1\u0122",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0123",
             "\1\u0124",
             "\1\u0125",
-            "",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0127",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
             "\1\u0128",
-            "\1\u0129",
-            "\1\66\13\uffff\12\66\7\uffff\22\66\1\u012a\7\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u012a",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u012b",
             "\1\u012c",
-            "\1\u012d",
-            "\1\u012e",
+            "\1\66\13\uffff\12\66\7\uffff\22\66\1\u012d\7\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u012f",
             "\1\u0130",
             "\1\u0131",
             "\1\u0132",
             "\1\u0133",
-            "",
-            "\1\66\13\uffff\12\66\7\uffff\24\66\1\u0134\5\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0134",
+            "\1\u0135",
             "\1\u0136",
-            "\1\u0137",
-            "\1\u0138",
+            "",
+            "\1\66\13\uffff\12\66\7\uffff\24\66\1\u0137\5\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0139",
             "\1\u013a",
             "\1\u013b",
             "\1\u013c",
             "\1\u013d",
             "\1\u013e",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
+            "\1\u013f",
             "\1\u0140",
             "\1\u0141",
-            "\1\u0142",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
             "\1\u0143",
             "\1\u0144",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0145",
             "\1\u0146",
             "\1\u0147",
-            "\1\u0148",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0149",
             "\1\u014a",
             "\1\u014b",
@@ -4724,290 +4752,288 @@
             "\1\u014d",
             "\1\u014e",
             "\1\u014f",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
-            "",
+            "\1\u0150",
             "\1\u0151",
             "\1\u0152",
-            "\1\u0153",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "",
             "\1\u0154",
             "\1\u0155",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0156",
+            "\1\u0157",
             "\1\u0158",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u015a",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u015b",
             "\1\u015c",
-            "\1\u015d",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u015e",
             "\1\u015f",
-            "",
             "\1\u0160",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0161",
+            "\1\u0162",
             "\1\u0163",
-            "\1\u0164",
-            "\1\u0165",
             "",
-            "\1\u0166",
+            "\1\u0164",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0167",
             "\1\u0168",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0169",
+            "",
             "\1\u016a",
             "\1\u016b",
             "\1\u016c",
-            "\1\u016d",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u016e",
-            "",
             "\1\u016f",
             "\1\u0170",
             "\1\u0171",
             "\1\u0172",
+            "",
             "\1\u0173",
             "\1\u0174",
             "\1\u0175",
             "\1\u0176",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
+            "\1\u0177",
             "\1\u0178",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0179",
             "\1\u017a",
-            "\1\u017b",
-            "\1\u017d\16\uffff\1\u017c",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
+            "\1\u017c",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u017e",
             "\1\u017f",
-            "\1\u0180",
-            "\1\u0181",
+            "\1\u0181\16\uffff\1\u0180",
+            "",
             "\1\u0182",
             "\1\u0183",
             "\1\u0184",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0185",
             "\1\u0186",
             "\1\u0187",
-            "",
             "\1\u0188",
-            "\1\u0189",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u018a",
             "\1\u018b",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
-            "",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
+            "\1\u018c",
+            "\1\u018d",
             "\1\u018e",
             "\1\u018f",
-            "\1\u0190",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0192",
+            "",
             "\1\u0193",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
-            "",
+            "\1\u0194",
             "\1\u0195",
-            "\1\u0196",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0197",
             "\1\u0198",
-            "\1\u0199",
-            "\1\u019a",
-            "",
-            "\1\u019b",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "",
+            "\1\u019a",
+            "\1\u019b",
+            "\1\u019c",
             "\1\u019d",
             "\1\u019e",
             "\1\u019f",
+            "",
             "\1\u01a0",
-            "\1\u01a1",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01a2",
             "\1\u01a3",
             "\1\u01a4",
             "\1\u01a5",
             "\1\u01a6",
-            "\1\u01a7",
-            "",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
+            "\1\u01a8",
             "\1\u01a9",
             "\1\u01aa",
             "\1\u01ab",
             "\1\u01ac",
-            "\1\u01ad",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\4\66\1\u01ae\25\66",
+            "",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\u01b0",
             "\1\u01b1",
             "\1\u01b2",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\4\66\1\u01b3\25\66",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
-            "\1\u01b5",
             "\1\u01b6",
             "\1\u01b7",
-            "\1\u01b8",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
-            "",
+            "\1\u01ba",
             "\1\u01bb",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01bc",
             "\1\u01bd",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
-            "\1\u01be",
-            "\1\u01bf",
             "",
             "\1\u01c0",
+            "\1\u01c1",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u01c2",
             "\1\u01c3",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\1\u01c4",
             "\1\u01c5",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
-            "\1\u01c7",
+            "\1\u01c6",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u01c8",
+            "\1\u01c9",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u01ca",
             "\1\u01cb",
-            "",
-            "\1\u01cc",
-            "\1\u01cd",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u01cf",
-            "\1\u01d0",
             "",
+            "\1\u01cd",
+            "\1\u01ce",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01d0",
             "\1\u01d1",
+            "",
             "\1\u01d2",
             "\1\u01d3",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u01d5",
             "\1\u01d6",
             "",
-            "",
             "\1\u01d7",
             "\1\u01d8",
-            "",
-            "",
             "\1\u01d9",
-            "\1\u01da",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u01db",
             "\1\u01dc",
             "",
             "",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01dd",
+            "\1\u01de",
             "",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
             "\1\u01df",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01e0",
             "\1\u01e1",
-            "",
             "\1\u01e2",
+            "",
+            "",
             "\1\u01e3",
-            "",
-            "\1\u01e4",
-            "",
-            "\1\u01e5",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
-            "\1\u01e7",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01e6",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u01e8",
+            "",
             "\1\u01e9",
             "\1\u01ea",
             "",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01eb",
+            "",
             "\1\u01ec",
-            "\1\u01ed",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
             "\1\u01ee",
             "\1\u01ef",
-            "",
             "\1\u01f0",
             "\1\u01f1",
-            "\1\u01f2",
+            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u01f3",
             "\1\u01f4",
             "\1\u01f5",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01f6",
+            "",
             "\1\u01f7",
-            "",
-            "",
             "\1\u01f8",
-            "",
             "\1\u01f9",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u01fa",
             "\1\u01fb",
             "\1\u01fc",
-            "\1\u01fd",
-            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u01fe",
-            "\1\u01ff",
-            "\1\u0200",
-            "\1\u0201",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
-            "\1\u0202",
+            "",
+            "\1\u0200",
+            "",
+            "\1\u0201",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0203",
             "\1\u0204",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0205",
+            "",
             "\1\u0206",
             "\1\u0207",
             "\1\u0208",
             "\1\u0209",
+            "",
             "\1\u020a",
             "\1\u020b",
-            "",
             "\1\u020c",
-            "\1\u020d",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u020e",
-            "",
             "\1\u020f",
             "\1\u0210",
             "\1\u0211",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0212",
+            "\1\u0213",
+            "",
             "\1\u0214",
+            "",
             "\1\u0215",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0216",
+            "",
             "\1\u0217",
             "\1\u0218",
-            "",
             "\1\u0219",
-            "\1\u021a",
-            "\1\u021b",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u021c",
             "\1\u021d",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u021f",
             "\1\u0220",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\1\u0221",
+            "\1\u0222",
+            "\1\u0223",
             "\1\u0224",
-            "",
-            "",
             "\1\u0225",
-            "\1\u0226",
-            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u0227",
             "\1\u0228",
-            "\1\u0229",
-            "\1\u022a",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\3\66\1\u022c\26\66",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u022c",
+            "",
+            "",
+            "\1\u022d",
+            "\1\u022e",
             "",
             "\1\u022f",
             "\1\u0230",
-            "",
-            "",
-            "",
             "\1\u0231",
             "\1\u0232",
-            "\1\u0233",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u0235",
-            "\1\u0236",
-            "\1\u0237",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\3\66\1\u0234\26\66",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0237",
+            "\1\u0238",
+            "",
             "",
             "",
             "\1\u0239",
@@ -5015,19 +5041,30 @@
             "\1\u023b",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "\1\u023d",
+            "\1\u023e",
+            "\1\u023f",
             "",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u0240",
             "",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\1\u0241",
+            "\1\u0242",
             "\1\u0243",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0245",
+            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0248",
+            "",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u024b",
             "",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
             "",
-            "\1\u0245",
+            "\1\u024d",
             "",
             "",
             "\1\66\13\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
@@ -5067,7 +5104,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 | T__132 | T__133 | 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.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java
index be3ac50..9f13196 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalPerspectiveDslParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'perspective'", "'describedBy'", "'process'", "'usertask'", "'icon'", "'accessibility'", "'toolbar'", "'eventManager'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'synchronize'", "'part'", "'iconURI'", "'view'", "'isClosable'", "'targetPart'", "'allowedSources'", "'select'", "'readOnlyTable'", "'editableTable'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'title'", "'name'", "'browser'", "'url'", "'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'", "'?'", "'&'", "'horizontal'", "'vertical'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'perspective'", "'describedBy'", "'process'", "'usertask'", "'icon'", "'accessibility'", "'toolbar'", "'eventManager'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'synchronize'", "'part'", "'iconURI'", "'view'", "'isClosable'", "'targetPart'", "'allowedSources'", "'select'", "'readOnlyTable'", "'editableTable'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'title'", "'name'", "'browser'", "'url'", "'cubeView'", "'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'", "'?'", "'&'", "'horizontal'", "'vertical'"
     };
     public static final int RULE_HEX=7;
     public static final int T__50=50;
@@ -57,6 +57,7 @@
     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;
@@ -277,7 +278,7 @@
             int alt1=2;
             int LA1_0 = input.LA(1);
 
-            if ( (LA1_0==58) ) {
+            if ( (LA1_0==59) ) {
                 alt1=1;
             }
             switch (alt1) {
@@ -6277,23 +6278,24 @@
 
 
     // $ANTLR start "rulePerspectiveBrowser"
-    // InternalPerspectiveDsl.g:2246:1: rulePerspectiveBrowser returns [EObject current=null] : ( () otherlv_1= 'browser' otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) ;
+    // InternalPerspectiveDsl.g:2246:1: rulePerspectiveBrowser returns [EObject current=null] : ( () otherlv_1= 'browser' ( (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) | ( (lv_cubeView_4_0= 'cubeView' ) ) ) ) ;
     public final EObject rulePerspectiveBrowser() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token otherlv_2=null;
         Token lv_url_3_0=null;
+        Token lv_cubeView_4_0=null;
 
 
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2252:2: ( ( () otherlv_1= 'browser' otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) )
-            // InternalPerspectiveDsl.g:2253:2: ( () otherlv_1= 'browser' otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) )
+            // InternalPerspectiveDsl.g:2252:2: ( ( () otherlv_1= 'browser' ( (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) | ( (lv_cubeView_4_0= 'cubeView' ) ) ) ) )
+            // InternalPerspectiveDsl.g:2253:2: ( () otherlv_1= 'browser' ( (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) | ( (lv_cubeView_4_0= 'cubeView' ) ) ) )
             {
-            // InternalPerspectiveDsl.g:2253:2: ( () otherlv_1= 'browser' otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) )
-            // InternalPerspectiveDsl.g:2254:3: () otherlv_1= 'browser' otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) )
+            // InternalPerspectiveDsl.g:2253:2: ( () otherlv_1= 'browser' ( (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) | ( (lv_cubeView_4_0= 'cubeView' ) ) ) )
+            // InternalPerspectiveDsl.g:2254:3: () otherlv_1= 'browser' ( (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) | ( (lv_cubeView_4_0= 'cubeView' ) ) )
             {
             // InternalPerspectiveDsl.g:2254:3: ()
             // InternalPerspectiveDsl.g:2255:4: 
@@ -6314,39 +6316,104 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveBrowserAccess().getBrowserKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,57,FOLLOW_8); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
+            // InternalPerspectiveDsl.g:2265:3: ( (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) ) | ( (lv_cubeView_4_0= 'cubeView' ) ) )
+            int alt20=2;
+            int LA20_0 = input.LA(1);
 
-              			newLeafNode(otherlv_2, grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2());
-              		
+            if ( (LA20_0==57) ) {
+                alt20=1;
             }
-            // InternalPerspectiveDsl.g:2269:3: ( (lv_url_3_0= RULE_STRING ) )
-            // InternalPerspectiveDsl.g:2270:4: (lv_url_3_0= RULE_STRING )
-            {
-            // InternalPerspectiveDsl.g:2270:4: (lv_url_3_0= RULE_STRING )
-            // InternalPerspectiveDsl.g:2271:5: lv_url_3_0= RULE_STRING
-            {
-            lv_url_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					newLeafNode(lv_url_3_0, grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_3_0());
-              				
+            else if ( (LA20_0==58) ) {
+                alt20=2;
             }
-            if ( state.backtracking==0 ) {
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 20, 0, input);
 
-              					if (current==null) {
-              						current = createModelElement(grammarAccess.getPerspectiveBrowserRule());
-              					}
-              					setWithLastConsumed(
-              						current,
-              						"url",
-              						lv_url_3_0,
-              						"org.eclipse.xtext.xbase.Xtype.STRING");
-              				
+                throw nvae;
             }
+            switch (alt20) {
+                case 1 :
+                    // InternalPerspectiveDsl.g:2266:4: (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) )
+                    {
+                    // InternalPerspectiveDsl.g:2266:4: (otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) ) )
+                    // InternalPerspectiveDsl.g:2267:5: otherlv_2= 'url' ( (lv_url_3_0= RULE_STRING ) )
+                    {
+                    otherlv_2=(Token)match(input,57,FOLLOW_8); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
 
-            }
+                      					newLeafNode(otherlv_2, grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2_0_0());
+                      				
+                    }
+                    // InternalPerspectiveDsl.g:2271:5: ( (lv_url_3_0= RULE_STRING ) )
+                    // InternalPerspectiveDsl.g:2272:6: (lv_url_3_0= RULE_STRING )
+                    {
+                    // InternalPerspectiveDsl.g:2272:6: (lv_url_3_0= RULE_STRING )
+                    // InternalPerspectiveDsl.g:2273:7: lv_url_3_0= RULE_STRING
+                    {
+                    lv_url_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
 
+                      							newLeafNode(lv_url_3_0, grammarAccess.getPerspectiveBrowserAccess().getUrlSTRINGTerminalRuleCall_2_0_1_0());
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getPerspectiveBrowserRule());
+                      							}
+                      							setWithLastConsumed(
+                      								current,
+                      								"url",
+                      								lv_url_3_0,
+                      								"org.eclipse.xtext.xbase.Xtype.STRING");
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalPerspectiveDsl.g:2291:4: ( (lv_cubeView_4_0= 'cubeView' ) )
+                    {
+                    // InternalPerspectiveDsl.g:2291:4: ( (lv_cubeView_4_0= 'cubeView' ) )
+                    // InternalPerspectiveDsl.g:2292:5: (lv_cubeView_4_0= 'cubeView' )
+                    {
+                    // InternalPerspectiveDsl.g:2292:5: (lv_cubeView_4_0= 'cubeView' )
+                    // InternalPerspectiveDsl.g:2293:6: lv_cubeView_4_0= 'cubeView'
+                    {
+                    lv_cubeView_4_0=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_cubeView_4_0, grammarAccess.getPerspectiveBrowserAccess().getCubeViewCubeViewKeyword_2_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getPerspectiveBrowserRule());
+                      						}
+                      						setWithLastConsumed(current, "cubeView", true, "cubeView");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
 
             }
 
@@ -6375,7 +6442,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalPerspectiveDsl.g:2291:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
+    // InternalPerspectiveDsl.g:2310:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
     public final String entryRuleTRANSLATABLEID() throws RecognitionException {
         String current = null;
 
@@ -6383,8 +6450,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2291:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
-            // InternalPerspectiveDsl.g:2292:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
+            // InternalPerspectiveDsl.g:2310:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
+            // InternalPerspectiveDsl.g:2311:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -6415,7 +6482,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalPerspectiveDsl.g:2298:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalPerspectiveDsl.g:2317:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLEID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6425,8 +6492,8 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2304:2: (this_ID_0= RULE_ID )
-            // InternalPerspectiveDsl.g:2305:2: this_ID_0= RULE_ID
+            // InternalPerspectiveDsl.g:2323:2: (this_ID_0= RULE_ID )
+            // InternalPerspectiveDsl.g:2324: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 ) {
@@ -6461,7 +6528,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // InternalPerspectiveDsl.g:2315:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
+    // InternalPerspectiveDsl.g:2334:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
     public final String entryRuleTRANSLATABLESTRING() throws RecognitionException {
         String current = null;
 
@@ -6469,8 +6536,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2315:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
-            // InternalPerspectiveDsl.g:2316:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
+            // InternalPerspectiveDsl.g:2334:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
+            // InternalPerspectiveDsl.g:2335:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); 
@@ -6501,7 +6568,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLESTRING"
-    // InternalPerspectiveDsl.g:2322:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+    // InternalPerspectiveDsl.g:2341:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLESTRING() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6511,8 +6578,8 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2328:2: (this_STRING_0= RULE_STRING )
-            // InternalPerspectiveDsl.g:2329:2: this_STRING_0= RULE_STRING
+            // InternalPerspectiveDsl.g:2347:2: (this_STRING_0= RULE_STRING )
+            // InternalPerspectiveDsl.g:2348: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 ) {
@@ -6547,7 +6614,7 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalPerspectiveDsl.g:2339:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+    // InternalPerspectiveDsl.g:2358:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
     public final EObject entryRuleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -6555,8 +6622,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2339:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
-            // InternalPerspectiveDsl.g:2340:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+            // InternalPerspectiveDsl.g:2358:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+            // InternalPerspectiveDsl.g:2359:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportDeclarationRule()); 
@@ -6587,7 +6654,7 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalPerspectiveDsl.g:2346: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= ';' )? ) ;
+    // InternalPerspectiveDsl.g:2365: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;
 
@@ -6608,14 +6675,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2352: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= ';' )? ) )
-            // InternalPerspectiveDsl.g:2353: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= ';' )? )
+            // InternalPerspectiveDsl.g:2371: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= ';' )? ) )
+            // InternalPerspectiveDsl.g:2372: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= ';' )? )
             {
-            // InternalPerspectiveDsl.g:2353: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= ';' )? )
-            // InternalPerspectiveDsl.g:2354: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= ';' )?
+            // InternalPerspectiveDsl.g:2372: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= ';' )? )
+            // InternalPerspectiveDsl.g:2373: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= ';' )?
             {
-            // InternalPerspectiveDsl.g:2354:3: ()
-            // InternalPerspectiveDsl.g:2355:4: 
+            // InternalPerspectiveDsl.g:2373:3: ()
+            // InternalPerspectiveDsl.g:2374:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -6627,29 +6694,29 @@
 
             }
 
-            otherlv_1=(Token)match(input,58,FOLLOW_31); if (state.failed) return current;
+            otherlv_1=(Token)match(input,59,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:2365: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 alt22=4;
-            alt22 = dfa22.predict(input);
-            switch (alt22) {
+            // InternalPerspectiveDsl.g:2384: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 alt23=4;
+            alt23 = dfa23.predict(input);
+            switch (alt23) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2366:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalPerspectiveDsl.g:2385:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:2366:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
-                    // InternalPerspectiveDsl.g:2367:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    // InternalPerspectiveDsl.g:2385:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalPerspectiveDsl.g:2386:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
                     {
-                    // InternalPerspectiveDsl.g:2367:5: ( (lv_static_2_0= 'static' ) )
-                    // InternalPerspectiveDsl.g:2368:6: (lv_static_2_0= 'static' )
+                    // InternalPerspectiveDsl.g:2386:5: ( (lv_static_2_0= 'static' ) )
+                    // InternalPerspectiveDsl.g:2387:6: (lv_static_2_0= 'static' )
                     {
-                    // InternalPerspectiveDsl.g:2368:6: (lv_static_2_0= 'static' )
-                    // InternalPerspectiveDsl.g:2369:7: lv_static_2_0= 'static'
+                    // InternalPerspectiveDsl.g:2387:6: (lv_static_2_0= 'static' )
+                    // InternalPerspectiveDsl.g:2388:7: lv_static_2_0= 'static'
                     {
-                    lv_static_2_0=(Token)match(input,59,FOLLOW_32); if (state.failed) return current;
+                    lv_static_2_0=(Token)match(input,60,FOLLOW_32); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
@@ -6669,21 +6736,21 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2381:5: ( (lv_extension_3_0= 'extension' ) )?
-                    int alt20=2;
-                    int LA20_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:2400:5: ( (lv_extension_3_0= 'extension' ) )?
+                    int alt21=2;
+                    int LA21_0 = input.LA(1);
 
-                    if ( (LA20_0==60) ) {
-                        alt20=1;
+                    if ( (LA21_0==61) ) {
+                        alt21=1;
                     }
-                    switch (alt20) {
+                    switch (alt21) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2382:6: (lv_extension_3_0= 'extension' )
+                            // InternalPerspectiveDsl.g:2401:6: (lv_extension_3_0= 'extension' )
                             {
-                            // InternalPerspectiveDsl.g:2382:6: (lv_extension_3_0= 'extension' )
-                            // InternalPerspectiveDsl.g:2383:7: lv_extension_3_0= 'extension'
+                            // InternalPerspectiveDsl.g:2401:6: (lv_extension_3_0= 'extension' )
+                            // InternalPerspectiveDsl.g:2402:7: lv_extension_3_0= 'extension'
                             {
-                            lv_extension_3_0=(Token)match(input,60,FOLLOW_32); if (state.failed) return current;
+                            lv_extension_3_0=(Token)match(input,61,FOLLOW_32); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
@@ -6706,11 +6773,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2395:5: ( ( ruleQualifiedNameInStaticImport ) )
-                    // InternalPerspectiveDsl.g:2396:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalPerspectiveDsl.g:2414:5: ( ( ruleQualifiedNameInStaticImport ) )
+                    // InternalPerspectiveDsl.g:2415:6: ( ruleQualifiedNameInStaticImport )
                     {
-                    // InternalPerspectiveDsl.g:2396:6: ( ruleQualifiedNameInStaticImport )
-                    // InternalPerspectiveDsl.g:2397:7: ruleQualifiedNameInStaticImport
+                    // InternalPerspectiveDsl.g:2415:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalPerspectiveDsl.g:2416:7: ruleQualifiedNameInStaticImport
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6740,34 +6807,34 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2411:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
-                    int alt21=2;
-                    int LA21_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:2430:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    int alt22=2;
+                    int LA22_0 = input.LA(1);
 
-                    if ( (LA21_0==61) ) {
-                        alt21=1;
+                    if ( (LA22_0==62) ) {
+                        alt22=1;
                     }
-                    else if ( (LA21_0==RULE_ID) ) {
-                        alt21=2;
+                    else if ( (LA22_0==RULE_ID) ) {
+                        alt22=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 21, 0, input);
+                            new NoViableAltException("", 22, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt21) {
+                    switch (alt22) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2412:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalPerspectiveDsl.g:2431:6: ( (lv_wildcard_5_0= '*' ) )
                             {
-                            // InternalPerspectiveDsl.g:2412:6: ( (lv_wildcard_5_0= '*' ) )
-                            // InternalPerspectiveDsl.g:2413:7: (lv_wildcard_5_0= '*' )
+                            // InternalPerspectiveDsl.g:2431:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalPerspectiveDsl.g:2432:7: (lv_wildcard_5_0= '*' )
                             {
-                            // InternalPerspectiveDsl.g:2413:7: (lv_wildcard_5_0= '*' )
-                            // InternalPerspectiveDsl.g:2414:8: lv_wildcard_5_0= '*'
+                            // InternalPerspectiveDsl.g:2432:7: (lv_wildcard_5_0= '*' )
+                            // InternalPerspectiveDsl.g:2433:8: lv_wildcard_5_0= '*'
                             {
-                            lv_wildcard_5_0=(Token)match(input,61,FOLLOW_34); if (state.failed) return current;
+                            lv_wildcard_5_0=(Token)match(input,62,FOLLOW_34); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
@@ -6791,13 +6858,13 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:2427:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalPerspectiveDsl.g:2446:6: ( (lv_memberName_6_0= ruleValidID ) )
                             {
-                            // InternalPerspectiveDsl.g:2427:6: ( (lv_memberName_6_0= ruleValidID ) )
-                            // InternalPerspectiveDsl.g:2428:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalPerspectiveDsl.g:2446:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalPerspectiveDsl.g:2447:7: (lv_memberName_6_0= ruleValidID )
                             {
-                            // InternalPerspectiveDsl.g:2428:7: (lv_memberName_6_0= ruleValidID )
-                            // InternalPerspectiveDsl.g:2429:8: lv_memberName_6_0= ruleValidID
+                            // InternalPerspectiveDsl.g:2447:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalPerspectiveDsl.g:2448:8: lv_memberName_6_0= ruleValidID
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6841,13 +6908,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2449:4: ( ( ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2468:4: ( ( ruleQualifiedName ) )
                     {
-                    // InternalPerspectiveDsl.g:2449:4: ( ( ruleQualifiedName ) )
-                    // InternalPerspectiveDsl.g:2450:5: ( ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2468:4: ( ( ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2469:5: ( ruleQualifiedName )
                     {
-                    // InternalPerspectiveDsl.g:2450:5: ( ruleQualifiedName )
-                    // InternalPerspectiveDsl.g:2451:6: ruleQualifiedName
+                    // InternalPerspectiveDsl.g:2469:5: ( ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2470:6: ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6881,13 +6948,13 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:2466:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalPerspectiveDsl.g:2485:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
                     {
-                    // InternalPerspectiveDsl.g:2466:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
-                    // InternalPerspectiveDsl.g:2467:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalPerspectiveDsl.g:2485:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalPerspectiveDsl.g:2486:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
                     {
-                    // InternalPerspectiveDsl.g:2467:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
-                    // InternalPerspectiveDsl.g:2468:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
+                    // InternalPerspectiveDsl.g:2486:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalPerspectiveDsl.g:2487:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6922,18 +6989,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:2486:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalPerspectiveDsl.g:2505:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
                     {
-                    // InternalPerspectiveDsl.g:2486:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
-                    // InternalPerspectiveDsl.g:2487:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2505:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalPerspectiveDsl.g:2506:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
                     {
-                    // InternalPerspectiveDsl.g:2487:5: ( (lv_fqnImport_9_0= 'ns' ) )
-                    // InternalPerspectiveDsl.g:2488:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalPerspectiveDsl.g:2506:5: ( (lv_fqnImport_9_0= 'ns' ) )
+                    // InternalPerspectiveDsl.g:2507:6: (lv_fqnImport_9_0= 'ns' )
                     {
-                    // InternalPerspectiveDsl.g:2488:6: (lv_fqnImport_9_0= 'ns' )
-                    // InternalPerspectiveDsl.g:2489:7: lv_fqnImport_9_0= 'ns'
+                    // InternalPerspectiveDsl.g:2507:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalPerspectiveDsl.g:2508:7: lv_fqnImport_9_0= 'ns'
                     {
-                    lv_fqnImport_9_0=(Token)match(input,62,FOLLOW_4); if (state.failed) return current;
+                    lv_fqnImport_9_0=(Token)match(input,63,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
@@ -6953,11 +7020,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2501:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
-                    // InternalPerspectiveDsl.g:2502:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2520:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2521:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
                     {
-                    // InternalPerspectiveDsl.g:2502:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
-                    // InternalPerspectiveDsl.g:2503:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
+                    // InternalPerspectiveDsl.g:2521:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2522:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6997,18 +7064,18 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2522:3: (otherlv_11= ';' )?
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:2541:3: (otherlv_11= ';' )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
 
-            if ( (LA23_0==63) ) {
-                alt23=1;
+            if ( (LA24_0==64) ) {
+                alt24=1;
             }
-            switch (alt23) {
+            switch (alt24) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2523:4: otherlv_11= ';'
+                    // InternalPerspectiveDsl.g:2542:4: otherlv_11= ';'
                     {
-                    otherlv_11=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+                    otherlv_11=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
@@ -7045,7 +7112,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalPerspectiveDsl.g:2532:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    // InternalPerspectiveDsl.g:2551:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
     public final EObject entryRuleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -7053,8 +7120,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2532:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
-            // InternalPerspectiveDsl.g:2533:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            // InternalPerspectiveDsl.g:2551:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // InternalPerspectiveDsl.g:2552:2: iv_ruleXAnnotation= ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationRule()); 
@@ -7085,7 +7152,7 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalPerspectiveDsl.g:2539: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= ')' )? ) ;
+    // InternalPerspectiveDsl.g:2558: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;
 
@@ -7104,14 +7171,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2545: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= ')' )? ) )
-            // InternalPerspectiveDsl.g:2546: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= ')' )? )
+            // InternalPerspectiveDsl.g:2564: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= ')' )? ) )
+            // InternalPerspectiveDsl.g:2565: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= ')' )? )
             {
-            // InternalPerspectiveDsl.g:2546: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= ')' )? )
-            // InternalPerspectiveDsl.g:2547: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= ')' )?
+            // InternalPerspectiveDsl.g:2565: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= ')' )? )
+            // InternalPerspectiveDsl.g:2566: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= ')' )?
             {
-            // InternalPerspectiveDsl.g:2547:3: ()
-            // InternalPerspectiveDsl.g:2548:4: 
+            // InternalPerspectiveDsl.g:2566:3: ()
+            // InternalPerspectiveDsl.g:2567:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -7123,17 +7190,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,64,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,65,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:2558:3: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:2559:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:2577:3: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:2578:4: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:2559:4: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:2560:5: ruleQualifiedName
+            // InternalPerspectiveDsl.g:2578:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:2579:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -7163,21 +7230,21 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2574: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 alt26=2;
-            int LA26_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:2593: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 alt27=2;
+            int LA27_0 = input.LA(1);
 
-            if ( (LA26_0==65) && (synpred1_InternalPerspectiveDsl())) {
-                alt26=1;
+            if ( (LA27_0==66) && (synpred1_InternalPerspectiveDsl())) {
+                alt27=1;
             }
-            switch (alt26) {
+            switch (alt27) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2575:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    // InternalPerspectiveDsl.g:2594:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
                     {
-                    // InternalPerspectiveDsl.g:2575:4: ( ( '(' )=>otherlv_3= '(' )
-                    // InternalPerspectiveDsl.g:2576:5: ( '(' )=>otherlv_3= '('
+                    // InternalPerspectiveDsl.g:2594:4: ( ( '(' )=>otherlv_3= '(' )
+                    // InternalPerspectiveDsl.g:2595:5: ( '(' )=>otherlv_3= '('
                     {
-                    otherlv_3=(Token)match(input,65,FOLLOW_36); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,66,FOLLOW_36); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
@@ -7186,21 +7253,21 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2582:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
-                    int alt25=3;
-                    alt25 = dfa25.predict(input);
-                    switch (alt25) {
+                    // InternalPerspectiveDsl.g:2601:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt26=3;
+                    alt26 = dfa26.predict(input);
+                    switch (alt26) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2583:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalPerspectiveDsl.g:2602:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
                             {
-                            // InternalPerspectiveDsl.g:2583:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
-                            // InternalPerspectiveDsl.g:2584:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            // InternalPerspectiveDsl.g:2602:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalPerspectiveDsl.g:2603:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:2584:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
-                            // InternalPerspectiveDsl.g:2585:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalPerspectiveDsl.g:2603:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // InternalPerspectiveDsl.g:2604:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
                             {
-                            // InternalPerspectiveDsl.g:2594:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
-                            // InternalPerspectiveDsl.g:2595:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            // InternalPerspectiveDsl.g:2613:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalPerspectiveDsl.g:2614:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7231,32 +7298,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2612:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
-                            loop24:
+                            // InternalPerspectiveDsl.g:2631:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop25:
                             do {
-                                int alt24=2;
-                                int LA24_0 = input.LA(1);
+                                int alt25=2;
+                                int LA25_0 = input.LA(1);
 
-                                if ( (LA24_0==66) ) {
-                                    alt24=1;
+                                if ( (LA25_0==67) ) {
+                                    alt25=1;
                                 }
 
 
-                                switch (alt24) {
+                                switch (alt25) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2613:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalPerspectiveDsl.g:2632:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
                             	    {
-                            	    otherlv_5=(Token)match(input,66,FOLLOW_4); if (state.failed) return current;
+                            	    otherlv_5=(Token)match(input,67,FOLLOW_4); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
                             	      						
                             	    }
-                            	    // InternalPerspectiveDsl.g:2617:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
-                            	    // InternalPerspectiveDsl.g:2618:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalPerspectiveDsl.g:2636:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalPerspectiveDsl.g:2637:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2627:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
-                            	    // InternalPerspectiveDsl.g:2628:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    // InternalPerspectiveDsl.g:2646:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalPerspectiveDsl.g:2647:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -7292,7 +7359,7 @@
                             	    break;
 
                             	default :
-                            	    break loop24;
+                            	    break loop25;
                                 }
                             } while (true);
 
@@ -7303,13 +7370,13 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:2648:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalPerspectiveDsl.g:2667:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
                             {
-                            // InternalPerspectiveDsl.g:2648:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
-                            // InternalPerspectiveDsl.g:2649:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalPerspectiveDsl.g:2667:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalPerspectiveDsl.g:2668:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
                             {
-                            // InternalPerspectiveDsl.g:2649:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
-                            // InternalPerspectiveDsl.g:2650:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            // InternalPerspectiveDsl.g:2668:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalPerspectiveDsl.g:2669:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7346,7 +7413,7 @@
 
                     }
 
-                    otherlv_8=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    otherlv_8=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
@@ -7383,7 +7450,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalPerspectiveDsl.g:2677:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    // InternalPerspectiveDsl.g:2696:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
     public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -7391,8 +7458,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2677:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
-            // InternalPerspectiveDsl.g:2678:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            // InternalPerspectiveDsl.g:2696:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // InternalPerspectiveDsl.g:2697:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -7423,7 +7490,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalPerspectiveDsl.g:2684:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    // InternalPerspectiveDsl.g:2703:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
     public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -7435,23 +7502,23 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2690:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
-            // InternalPerspectiveDsl.g:2691:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalPerspectiveDsl.g:2709:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // InternalPerspectiveDsl.g:2710:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
             {
-            // InternalPerspectiveDsl.g:2691:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
-            // InternalPerspectiveDsl.g:2692:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalPerspectiveDsl.g:2710:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalPerspectiveDsl.g:2711:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
             {
-            // InternalPerspectiveDsl.g:2692:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
-            // InternalPerspectiveDsl.g:2693:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalPerspectiveDsl.g:2711:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // InternalPerspectiveDsl.g:2712:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
             {
-            // InternalPerspectiveDsl.g:2702:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
-            // InternalPerspectiveDsl.g:2703:5: ( ( ruleValidID ) ) otherlv_1= '='
+            // InternalPerspectiveDsl.g:2721:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalPerspectiveDsl.g:2722:5: ( ( ruleValidID ) ) otherlv_1= '='
             {
-            // InternalPerspectiveDsl.g:2703:5: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:2704:6: ( ruleValidID )
+            // InternalPerspectiveDsl.g:2722:5: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:2723:6: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:2704:6: ( ruleValidID )
-            // InternalPerspectiveDsl.g:2705:7: ruleValidID
+            // InternalPerspectiveDsl.g:2723:6: ( ruleValidID )
+            // InternalPerspectiveDsl.g:2724:7: ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -7481,7 +7548,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,68,FOLLOW_40); if (state.failed) return current;
+            otherlv_1=(Token)match(input,69,FOLLOW_40); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
@@ -7493,11 +7560,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2725:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
-            // InternalPerspectiveDsl.g:2726:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:2744:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalPerspectiveDsl.g:2745:4: (lv_value_2_0= ruleXAnnotationElementValue )
             {
-            // InternalPerspectiveDsl.g:2726:4: (lv_value_2_0= ruleXAnnotationElementValue )
-            // InternalPerspectiveDsl.g:2727:5: lv_value_2_0= ruleXAnnotationElementValue
+            // InternalPerspectiveDsl.g:2745:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:2746:5: lv_value_2_0= ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
 
@@ -7553,7 +7620,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalPerspectiveDsl.g:2748:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalPerspectiveDsl.g:2767:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
     public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -7561,8 +7628,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2748:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalPerspectiveDsl.g:2749:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            // InternalPerspectiveDsl.g:2767:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalPerspectiveDsl.g:2768:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -7593,7 +7660,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalPerspectiveDsl.g:2755: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 ) ) )+ )? ) ) ;
+    // InternalPerspectiveDsl.g:2774: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;
 
@@ -7615,27 +7682,27 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2761: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 ) ) )+ )? ) ) )
-            // InternalPerspectiveDsl.g:2762: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 ) ) )+ )? ) )
+            // InternalPerspectiveDsl.g:2780: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 ) ) )+ )? ) ) )
+            // InternalPerspectiveDsl.g:2781: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 ) ) )+ )? ) )
             {
-            // InternalPerspectiveDsl.g:2762: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 alt31=2;
-            alt31 = dfa31.predict(input);
-            switch (alt31) {
+            // InternalPerspectiveDsl.g:2781: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 alt32=2;
+            alt32 = dfa32.predict(input);
+            switch (alt32) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2763:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2782:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalPerspectiveDsl.g:2763:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalPerspectiveDsl.g:2764:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalPerspectiveDsl.g:2782:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2783:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalPerspectiveDsl.g:2764:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalPerspectiveDsl.g:2765:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2783:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalPerspectiveDsl.g:2784:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalPerspectiveDsl.g:2772:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalPerspectiveDsl.g:2773:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalPerspectiveDsl.g:2791:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2792:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalPerspectiveDsl.g:2773:6: ()
-                    // InternalPerspectiveDsl.g:2774:7: 
+                    // InternalPerspectiveDsl.g:2792:6: ()
+                    // InternalPerspectiveDsl.g:2793:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7647,13 +7714,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,69,FOLLOW_41); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,70,FOLLOW_41); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,70,FOLLOW_42); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,71,FOLLOW_42); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -7665,22 +7732,22 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2790:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt28=2;
-                    int LA28_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:2809:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt29=2;
+                    int LA29_0 = input.LA(1);
 
-                    if ( ((LA28_0>=RULE_ID && LA28_0<=RULE_DECIMAL)||LA28_0==14||(LA28_0>=58 && LA28_0<=60)||(LA28_0>=64 && LA28_0<=65)||(LA28_0>=69 && LA28_0<=70)||LA28_0==77||(LA28_0>=93 && LA28_0<=94)||LA28_0==98||LA28_0==106||LA28_0==108||(LA28_0>=112 && LA28_0<=114)||(LA28_0>=117 && LA28_0<=126)||LA28_0==128) ) {
-                        alt28=1;
+                    if ( ((LA29_0>=RULE_ID && LA29_0<=RULE_DECIMAL)||LA29_0==14||(LA29_0>=59 && LA29_0<=61)||(LA29_0>=65 && LA29_0<=66)||(LA29_0>=70 && LA29_0<=71)||LA29_0==78||(LA29_0>=94 && LA29_0<=95)||LA29_0==99||LA29_0==107||LA29_0==109||(LA29_0>=113 && LA29_0<=115)||(LA29_0>=118 && LA29_0<=127)||LA29_0==129) ) {
+                        alt29=1;
                     }
-                    switch (alt28) {
+                    switch (alt29) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2791:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalPerspectiveDsl.g:2810:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:2791:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalPerspectiveDsl.g:2792:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2810:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalPerspectiveDsl.g:2811:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalPerspectiveDsl.g:2792:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalPerspectiveDsl.g:2793:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalPerspectiveDsl.g:2811:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2812:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7711,32 +7778,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2810:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop27:
+                            // InternalPerspectiveDsl.g:2829:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop28:
                             do {
-                                int alt27=2;
-                                int LA27_0 = input.LA(1);
+                                int alt28=2;
+                                int LA28_0 = input.LA(1);
 
-                                if ( (LA27_0==66) ) {
-                                    alt27=1;
+                                if ( (LA28_0==67) ) {
+                                    alt28=1;
                                 }
 
 
-                                switch (alt27) {
+                                switch (alt28) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2811:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2830:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,66,FOLLOW_40); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,67,FOLLOW_40); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalPerspectiveDsl.g:2815:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalPerspectiveDsl.g:2816:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2834:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2835:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2816:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalPerspectiveDsl.g:2817:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalPerspectiveDsl.g:2835:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2836:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -7772,7 +7839,7 @@
                             	    break;
 
                             	default :
-                            	    break loop27;
+                            	    break loop28;
                                 }
                             } while (true);
 
@@ -7782,7 +7849,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
@@ -7795,10 +7862,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2842:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalPerspectiveDsl.g:2861:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
                     {
-                    // InternalPerspectiveDsl.g:2842:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
-                    // InternalPerspectiveDsl.g:2843:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    // InternalPerspectiveDsl.g:2861:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalPerspectiveDsl.g:2862:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7816,19 +7883,19 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalPerspectiveDsl.g:2851:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
-                    int alt30=2;
-                    int LA30_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:2870:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt31=2;
+                    int LA31_0 = input.LA(1);
 
-                    if ( (LA30_0==66) ) {
-                        alt30=1;
+                    if ( (LA31_0==67) ) {
+                        alt31=1;
                     }
-                    switch (alt30) {
+                    switch (alt31) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2852:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            // InternalPerspectiveDsl.g:2871:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
                             {
-                            // InternalPerspectiveDsl.g:2852:5: ()
-                            // InternalPerspectiveDsl.g:2853:6: 
+                            // InternalPerspectiveDsl.g:2871:5: ()
+                            // InternalPerspectiveDsl.g:2872:6: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7840,33 +7907,33 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2859:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
-                            int cnt29=0;
-                            loop29:
+                            // InternalPerspectiveDsl.g:2878:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt30=0;
+                            loop30:
                             do {
-                                int alt29=2;
-                                int LA29_0 = input.LA(1);
+                                int alt30=2;
+                                int LA30_0 = input.LA(1);
 
-                                if ( (LA29_0==66) ) {
-                                    alt29=1;
+                                if ( (LA30_0==67) ) {
+                                    alt30=1;
                                 }
 
 
-                                switch (alt29) {
+                                switch (alt30) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2860:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2879:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_9=(Token)match(input,66,FOLLOW_40); if (state.failed) return current;
+                            	    otherlv_9=(Token)match(input,67,FOLLOW_40); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
                             	      					
                             	    }
-                            	    // InternalPerspectiveDsl.g:2864:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalPerspectiveDsl.g:2865:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2883:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2884:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2865:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
-                            	    // InternalPerspectiveDsl.g:2866:8: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    // InternalPerspectiveDsl.g:2884:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2885:8: lv_elements_10_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -7902,13 +7969,13 @@
                             	    break;
 
                             	default :
-                            	    if ( cnt29 >= 1 ) break loop29;
+                            	    if ( cnt30 >= 1 ) break loop30;
                             	    if (state.backtracking>0) {state.failed=true; return current;}
                                         EarlyExitException eee =
-                                            new EarlyExitException(29, input);
+                                            new EarlyExitException(30, input);
                                         throw eee;
                                 }
-                                cnt29++;
+                                cnt30++;
                             } while (true);
 
 
@@ -7948,7 +8015,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalPerspectiveDsl.g:2890:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    // InternalPerspectiveDsl.g:2909:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
     public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -7956,8 +8023,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2890:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
-            // InternalPerspectiveDsl.g:2891:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            // InternalPerspectiveDsl.g:2909:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // InternalPerspectiveDsl.g:2910:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
@@ -7988,7 +8055,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalPerspectiveDsl.g:2897: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 ) ;
+    // InternalPerspectiveDsl.g:2916: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;
 
@@ -8007,27 +8074,27 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2903:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:2904:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:2922:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:2923:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:2904:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
-            int alt34=2;
-            alt34 = dfa34.predict(input);
-            switch (alt34) {
+            // InternalPerspectiveDsl.g:2923:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt35=2;
+            alt35 = dfa35.predict(input);
+            switch (alt35) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2905:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2924:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalPerspectiveDsl.g:2905:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalPerspectiveDsl.g:2906:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalPerspectiveDsl.g:2924:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2925:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalPerspectiveDsl.g:2906:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalPerspectiveDsl.g:2907:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2925:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalPerspectiveDsl.g:2926:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalPerspectiveDsl.g:2914:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalPerspectiveDsl.g:2915:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalPerspectiveDsl.g:2933:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2934:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalPerspectiveDsl.g:2915:6: ()
-                    // InternalPerspectiveDsl.g:2916:7: 
+                    // InternalPerspectiveDsl.g:2934:6: ()
+                    // InternalPerspectiveDsl.g:2935:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8039,13 +8106,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,69,FOLLOW_41); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,70,FOLLOW_41); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,70,FOLLOW_42); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,71,FOLLOW_42); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -8057,22 +8124,22 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2932:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt33=2;
-                    int LA33_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:2951:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt34=2;
+                    int LA34_0 = input.LA(1);
 
-                    if ( ((LA33_0>=RULE_ID && LA33_0<=RULE_DECIMAL)||LA33_0==14||(LA33_0>=58 && LA33_0<=60)||(LA33_0>=64 && LA33_0<=65)||(LA33_0>=69 && LA33_0<=70)||LA33_0==77||(LA33_0>=93 && LA33_0<=94)||LA33_0==98||LA33_0==106||LA33_0==108||(LA33_0>=112 && LA33_0<=114)||(LA33_0>=117 && LA33_0<=126)||LA33_0==128) ) {
-                        alt33=1;
+                    if ( ((LA34_0>=RULE_ID && LA34_0<=RULE_DECIMAL)||LA34_0==14||(LA34_0>=59 && LA34_0<=61)||(LA34_0>=65 && LA34_0<=66)||(LA34_0>=70 && LA34_0<=71)||LA34_0==78||(LA34_0>=94 && LA34_0<=95)||LA34_0==99||LA34_0==107||LA34_0==109||(LA34_0>=113 && LA34_0<=115)||(LA34_0>=118 && LA34_0<=127)||LA34_0==129) ) {
+                        alt34=1;
                     }
-                    switch (alt33) {
+                    switch (alt34) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2933:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalPerspectiveDsl.g:2952:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:2933:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalPerspectiveDsl.g:2934:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2952:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalPerspectiveDsl.g:2953:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalPerspectiveDsl.g:2934:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalPerspectiveDsl.g:2935:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalPerspectiveDsl.g:2953:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2954:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -8103,32 +8170,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2952:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop32:
+                            // InternalPerspectiveDsl.g:2971:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop33:
                             do {
-                                int alt32=2;
-                                int LA32_0 = input.LA(1);
+                                int alt33=2;
+                                int LA33_0 = input.LA(1);
 
-                                if ( (LA32_0==66) ) {
-                                    alt32=1;
+                                if ( (LA33_0==67) ) {
+                                    alt33=1;
                                 }
 
 
-                                switch (alt32) {
+                                switch (alt33) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2953:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2972:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,66,FOLLOW_40); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,67,FOLLOW_40); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalPerspectiveDsl.g:2957:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalPerspectiveDsl.g:2958:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2976:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2977:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2958:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalPerspectiveDsl.g:2959:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalPerspectiveDsl.g:2977:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2978:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -8164,7 +8231,7 @@
                             	    break;
 
                             	default :
-                            	    break loop32;
+                            	    break loop33;
                                 }
                             } while (true);
 
@@ -8174,7 +8241,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
@@ -8187,7 +8254,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2984:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    // InternalPerspectiveDsl.g:3003:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8233,7 +8300,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalPerspectiveDsl.g:2996:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    // InternalPerspectiveDsl.g:3015:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
     public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8241,8 +8308,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2996:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
-            // InternalPerspectiveDsl.g:2997:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            // InternalPerspectiveDsl.g:3015:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // InternalPerspectiveDsl.g:3016:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -8273,7 +8340,7 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalPerspectiveDsl.g:3003:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:3022:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8286,29 +8353,29 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3009:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:3010:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            // InternalPerspectiveDsl.g:3028:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:3029:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:3010:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:3029:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-            if ( (LA35_0==64) ) {
-                alt35=1;
+            if ( (LA36_0==65) ) {
+                alt36=1;
             }
-            else if ( ((LA35_0>=RULE_ID && LA35_0<=RULE_DECIMAL)||LA35_0==14||(LA35_0>=58 && LA35_0<=60)||LA35_0==65||(LA35_0>=69 && LA35_0<=70)||LA35_0==77||(LA35_0>=93 && LA35_0<=94)||LA35_0==98||LA35_0==106||LA35_0==108||(LA35_0>=112 && LA35_0<=114)||(LA35_0>=117 && LA35_0<=126)||LA35_0==128) ) {
-                alt35=2;
+            else if ( ((LA36_0>=RULE_ID && LA36_0<=RULE_DECIMAL)||LA36_0==14||(LA36_0>=59 && LA36_0<=61)||LA36_0==66||(LA36_0>=70 && LA36_0<=71)||LA36_0==78||(LA36_0>=94 && LA36_0<=95)||LA36_0==99||LA36_0==107||LA36_0==109||(LA36_0>=113 && LA36_0<=115)||(LA36_0>=118 && LA36_0<=127)||LA36_0==129) ) {
+                alt36=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 35, 0, input);
+                    new NoViableAltException("", 36, 0, input);
 
                 throw nvae;
             }
-            switch (alt35) {
+            switch (alt36) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3011:3: this_XAnnotation_0= ruleXAnnotation
+                    // InternalPerspectiveDsl.g:3030:3: this_XAnnotation_0= ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8330,7 +8397,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3020:3: this_XExpression_1= ruleXExpression
+                    // InternalPerspectiveDsl.g:3039:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8376,7 +8443,7 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalPerspectiveDsl.g:3032:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    // InternalPerspectiveDsl.g:3051:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
     public final EObject entryRuleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8384,8 +8451,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3032:52: (iv_ruleXExpression= ruleXExpression EOF )
-            // InternalPerspectiveDsl.g:3033:2: iv_ruleXExpression= ruleXExpression EOF
+            // InternalPerspectiveDsl.g:3051:52: (iv_ruleXExpression= ruleXExpression EOF )
+            // InternalPerspectiveDsl.g:3052:2: iv_ruleXExpression= ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionRule()); 
@@ -8416,7 +8483,7 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalPerspectiveDsl.g:3039:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    // InternalPerspectiveDsl.g:3058:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
     public final EObject ruleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8427,8 +8494,8 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3045:2: (this_XAssignment_0= ruleXAssignment )
-            // InternalPerspectiveDsl.g:3046:2: this_XAssignment_0= ruleXAssignment
+            // InternalPerspectiveDsl.g:3064:2: (this_XAssignment_0= ruleXAssignment )
+            // InternalPerspectiveDsl.g:3065:2: this_XAssignment_0= ruleXAssignment
             {
             if ( state.backtracking==0 ) {
 
@@ -8468,7 +8535,7 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalPerspectiveDsl.g:3057:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    // InternalPerspectiveDsl.g:3076:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
     public final EObject entryRuleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -8476,8 +8543,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3057:52: (iv_ruleXAssignment= ruleXAssignment EOF )
-            // InternalPerspectiveDsl.g:3058:2: iv_ruleXAssignment= ruleXAssignment EOF
+            // InternalPerspectiveDsl.g:3076:52: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // InternalPerspectiveDsl.g:3077:2: iv_ruleXAssignment= ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAssignmentRule()); 
@@ -8508,7 +8575,7 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalPerspectiveDsl.g:3064:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    // InternalPerspectiveDsl.g:3083: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;
 
@@ -8523,83 +8590,45 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3070:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
-            // InternalPerspectiveDsl.g:3071:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            // InternalPerspectiveDsl.g:3089:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // InternalPerspectiveDsl.g:3090:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
             {
-            // InternalPerspectiveDsl.g:3071:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
-            int alt37=2;
+            // InternalPerspectiveDsl.g:3090:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt38=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA37_1 = input.LA(2);
+                int LA38_1 = input.LA(2);
 
-                if ( (LA37_1==EOF||(LA37_1>=RULE_ID && LA37_1<=RULE_DECIMAL)||(LA37_1>=14 && LA37_1<=15)||(LA37_1>=58 && LA37_1<=61)||LA37_1==63||(LA37_1>=65 && LA37_1<=67)||(LA37_1>=69 && LA37_1<=104)||(LA37_1>=106 && LA37_1<=129)) ) {
-                    alt37=2;
+                if ( (LA38_1==69) ) {
+                    alt38=1;
                 }
-                else if ( (LA37_1==68) ) {
-                    alt37=1;
+                else if ( (LA38_1==EOF||(LA38_1>=RULE_ID && LA38_1<=RULE_DECIMAL)||(LA38_1>=14 && LA38_1<=15)||(LA38_1>=59 && LA38_1<=62)||LA38_1==64||(LA38_1>=66 && LA38_1<=68)||(LA38_1>=70 && LA38_1<=105)||(LA38_1>=107 && LA38_1<=130)) ) {
+                    alt38=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 37, 1, input);
+                        new NoViableAltException("", 38, 1, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 117:
+            case 118:
                 {
-                int LA37_2 = input.LA(2);
+                int LA38_2 = input.LA(2);
 
-                if ( (LA37_2==EOF||(LA37_2>=RULE_ID && LA37_2<=RULE_DECIMAL)||(LA37_2>=14 && LA37_2<=15)||(LA37_2>=58 && LA37_2<=61)||LA37_2==63||(LA37_2>=65 && LA37_2<=67)||(LA37_2>=69 && LA37_2<=104)||(LA37_2>=106 && LA37_2<=129)) ) {
-                    alt37=2;
+                if ( (LA38_2==69) ) {
+                    alt38=1;
                 }
-                else if ( (LA37_2==68) ) {
-                    alt37=1;
+                else if ( (LA38_2==EOF||(LA38_2>=RULE_ID && LA38_2<=RULE_DECIMAL)||(LA38_2>=14 && LA38_2<=15)||(LA38_2>=59 && LA38_2<=62)||LA38_2==64||(LA38_2>=66 && LA38_2<=68)||(LA38_2>=70 && LA38_2<=105)||(LA38_2>=107 && LA38_2<=130)) ) {
+                    alt38=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 37, 2, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 59:
-                {
-                int LA37_3 = input.LA(2);
-
-                if ( (LA37_3==68) ) {
-                    alt37=1;
-                }
-                else if ( (LA37_3==EOF||(LA37_3>=RULE_ID && LA37_3<=RULE_DECIMAL)||(LA37_3>=14 && LA37_3<=15)||(LA37_3>=58 && LA37_3<=61)||LA37_3==63||(LA37_3>=65 && LA37_3<=67)||(LA37_3>=69 && LA37_3<=104)||(LA37_3>=106 && LA37_3<=129)) ) {
-                    alt37=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return current;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 37, 3, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 58:
-                {
-                int LA37_4 = input.LA(2);
-
-                if ( (LA37_4==68) ) {
-                    alt37=1;
-                }
-                else if ( (LA37_4==EOF||(LA37_4>=RULE_ID && LA37_4<=RULE_DECIMAL)||(LA37_4>=14 && LA37_4<=15)||(LA37_4>=58 && LA37_4<=61)||LA37_4==63||(LA37_4>=65 && LA37_4<=67)||(LA37_4>=69 && LA37_4<=104)||(LA37_4>=106 && LA37_4<=129)) ) {
-                    alt37=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return current;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 37, 4, input);
+                        new NoViableAltException("", 38, 2, input);
 
                     throw nvae;
                 }
@@ -8607,18 +8636,56 @@
                 break;
             case 60:
                 {
-                int LA37_5 = input.LA(2);
+                int LA38_3 = input.LA(2);
 
-                if ( (LA37_5==EOF||(LA37_5>=RULE_ID && LA37_5<=RULE_DECIMAL)||(LA37_5>=14 && LA37_5<=15)||(LA37_5>=58 && LA37_5<=61)||LA37_5==63||(LA37_5>=65 && LA37_5<=67)||(LA37_5>=69 && LA37_5<=104)||(LA37_5>=106 && LA37_5<=129)) ) {
-                    alt37=2;
+                if ( (LA38_3==69) ) {
+                    alt38=1;
                 }
-                else if ( (LA37_5==68) ) {
-                    alt37=1;
+                else if ( (LA38_3==EOF||(LA38_3>=RULE_ID && LA38_3<=RULE_DECIMAL)||(LA38_3>=14 && LA38_3<=15)||(LA38_3>=59 && LA38_3<=62)||LA38_3==64||(LA38_3>=66 && LA38_3<=68)||(LA38_3>=70 && LA38_3<=105)||(LA38_3>=107 && LA38_3<=130)) ) {
+                    alt38=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 37, 5, input);
+                        new NoViableAltException("", 38, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 59:
+                {
+                int LA38_4 = input.LA(2);
+
+                if ( (LA38_4==69) ) {
+                    alt38=1;
+                }
+                else if ( (LA38_4==EOF||(LA38_4>=RULE_ID && LA38_4<=RULE_DECIMAL)||(LA38_4>=14 && LA38_4<=15)||(LA38_4>=59 && LA38_4<=62)||LA38_4==64||(LA38_4>=66 && LA38_4<=68)||(LA38_4>=70 && LA38_4<=105)||(LA38_4>=107 && LA38_4<=130)) ) {
+                    alt38=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 38, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 61:
+                {
+                int LA38_5 = input.LA(2);
+
+                if ( (LA38_5==69) ) {
+                    alt38=1;
+                }
+                else if ( (LA38_5==EOF||(LA38_5>=RULE_ID && LA38_5<=RULE_DECIMAL)||(LA38_5>=14 && LA38_5<=15)||(LA38_5>=59 && LA38_5<=62)||LA38_5==64||(LA38_5>=66 && LA38_5<=68)||(LA38_5>=70 && LA38_5<=105)||(LA38_5>=107 && LA38_5<=130)) ) {
+                    alt38=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 38, 5, input);
 
                     throw nvae;
                 }
@@ -8629,19 +8696,18 @@
             case RULE_HEX:
             case RULE_DECIMAL:
             case 14:
-            case 65:
-            case 69:
+            case 66:
             case 70:
-            case 77:
-            case 93:
+            case 71:
+            case 78:
             case 94:
-            case 98:
-            case 106:
-            case 108:
-            case 112:
+            case 95:
+            case 99:
+            case 107:
+            case 109:
             case 113:
             case 114:
-            case 118:
+            case 115:
             case 119:
             case 120:
             case 121:
@@ -8650,28 +8716,29 @@
             case 124:
             case 125:
             case 126:
-            case 128:
+            case 127:
+            case 129:
                 {
-                alt37=2;
+                alt38=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 37, 0, input);
+                    new NoViableAltException("", 38, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt37) {
+            switch (alt38) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3072:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalPerspectiveDsl.g:3091:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
                     {
-                    // InternalPerspectiveDsl.g:3072:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
-                    // InternalPerspectiveDsl.g:3073:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalPerspectiveDsl.g:3091:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalPerspectiveDsl.g:3092:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
                     {
-                    // InternalPerspectiveDsl.g:3073:4: ()
-                    // InternalPerspectiveDsl.g:3074:5: 
+                    // InternalPerspectiveDsl.g:3092:4: ()
+                    // InternalPerspectiveDsl.g:3093:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8683,11 +8750,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:3080:4: ( ( ruleFeatureCallID ) )
-                    // InternalPerspectiveDsl.g:3081:5: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:3099:4: ( ( ruleFeatureCallID ) )
+                    // InternalPerspectiveDsl.g:3100:5: ( ruleFeatureCallID )
                     {
-                    // InternalPerspectiveDsl.g:3081:5: ( ruleFeatureCallID )
-                    // InternalPerspectiveDsl.g:3082:6: ruleFeatureCallID
+                    // InternalPerspectiveDsl.g:3100:5: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:3101:6: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8732,11 +8799,11 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalPerspectiveDsl.g:3103:4: ( (lv_value_3_0= ruleXAssignment ) )
-                    // InternalPerspectiveDsl.g:3104:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalPerspectiveDsl.g:3122:4: ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalPerspectiveDsl.g:3123:5: (lv_value_3_0= ruleXAssignment )
                     {
-                    // InternalPerspectiveDsl.g:3104:5: (lv_value_3_0= ruleXAssignment )
-                    // InternalPerspectiveDsl.g:3105:6: lv_value_3_0= ruleXAssignment
+                    // InternalPerspectiveDsl.g:3123:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalPerspectiveDsl.g:3124:6: lv_value_3_0= ruleXAssignment
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8774,10 +8841,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3124:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalPerspectiveDsl.g:3143:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
                     {
-                    // InternalPerspectiveDsl.g:3124:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
-                    // InternalPerspectiveDsl.g:3125:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    // InternalPerspectiveDsl.g:3143:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalPerspectiveDsl.g:3144:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8795,21 +8862,21 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalPerspectiveDsl.g:3133:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
-                    int alt36=2;
-                    alt36 = dfa36.predict(input);
-                    switch (alt36) {
+                    // InternalPerspectiveDsl.g:3152:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt37=2;
+                    alt37 = dfa37.predict(input);
+                    switch (alt37) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:3134:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalPerspectiveDsl.g:3153:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
                             {
-                            // InternalPerspectiveDsl.g:3134:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
-                            // InternalPerspectiveDsl.g:3135:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalPerspectiveDsl.g:3153:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // InternalPerspectiveDsl.g:3154:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
                             {
-                            // InternalPerspectiveDsl.g:3145:6: ( () ( ( ruleOpMultiAssign ) ) )
-                            // InternalPerspectiveDsl.g:3146:7: () ( ( ruleOpMultiAssign ) )
+                            // InternalPerspectiveDsl.g:3164:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalPerspectiveDsl.g:3165:7: () ( ( ruleOpMultiAssign ) )
                             {
-                            // InternalPerspectiveDsl.g:3146:7: ()
-                            // InternalPerspectiveDsl.g:3147:8: 
+                            // InternalPerspectiveDsl.g:3165:7: ()
+                            // InternalPerspectiveDsl.g:3166:8: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -8821,11 +8888,11 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:3153:7: ( ( ruleOpMultiAssign ) )
-                            // InternalPerspectiveDsl.g:3154:8: ( ruleOpMultiAssign )
+                            // InternalPerspectiveDsl.g:3172:7: ( ( ruleOpMultiAssign ) )
+                            // InternalPerspectiveDsl.g:3173:8: ( ruleOpMultiAssign )
                             {
-                            // InternalPerspectiveDsl.g:3154:8: ( ruleOpMultiAssign )
-                            // InternalPerspectiveDsl.g:3155:9: ruleOpMultiAssign
+                            // InternalPerspectiveDsl.g:3173:8: ( ruleOpMultiAssign )
+                            // InternalPerspectiveDsl.g:3174:9: ruleOpMultiAssign
                             {
                             if ( state.backtracking==0 ) {
 
@@ -8861,11 +8928,11 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:3171:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
-                            // InternalPerspectiveDsl.g:3172:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalPerspectiveDsl.g:3190:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalPerspectiveDsl.g:3191:6: (lv_rightOperand_7_0= ruleXAssignment )
                             {
-                            // InternalPerspectiveDsl.g:3172:6: (lv_rightOperand_7_0= ruleXAssignment )
-                            // InternalPerspectiveDsl.g:3173:7: lv_rightOperand_7_0= ruleXAssignment
+                            // InternalPerspectiveDsl.g:3191:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalPerspectiveDsl.g:3192:7: lv_rightOperand_7_0= ruleXAssignment
                             {
                             if ( state.backtracking==0 ) {
 
@@ -8933,7 +9000,7 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalPerspectiveDsl.g:3196:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    // InternalPerspectiveDsl.g:3215:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
     public final String entryRuleOpSingleAssign() throws RecognitionException {
         String current = null;
 
@@ -8941,8 +9008,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3196:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
-            // InternalPerspectiveDsl.g:3197:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            // InternalPerspectiveDsl.g:3215:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // InternalPerspectiveDsl.g:3216:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
@@ -8973,7 +9040,7 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalPerspectiveDsl.g:3203:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    // InternalPerspectiveDsl.g:3222:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
     public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8983,10 +9050,10 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3209:2: (kw= '=' )
-            // InternalPerspectiveDsl.g:3210:2: kw= '='
+            // InternalPerspectiveDsl.g:3228:2: (kw= '=' )
+            // InternalPerspectiveDsl.g:3229:2: kw= '='
             {
-            kw=(Token)match(input,68,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);
@@ -9015,7 +9082,7 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalPerspectiveDsl.g:3218:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    // InternalPerspectiveDsl.g:3237:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
     public final String entryRuleOpMultiAssign() throws RecognitionException {
         String current = null;
 
@@ -9023,8 +9090,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3218:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
-            // InternalPerspectiveDsl.g:3219:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            // InternalPerspectiveDsl.g:3237:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // InternalPerspectiveDsl.g:3238:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
@@ -9055,7 +9122,7 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalPerspectiveDsl.g:3225:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    // InternalPerspectiveDsl.g:3244: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();
 
@@ -9065,60 +9132,60 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3231:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
-            // InternalPerspectiveDsl.g:3232:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            // InternalPerspectiveDsl.g:3250:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // InternalPerspectiveDsl.g:3251:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
             {
-            // InternalPerspectiveDsl.g:3232:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
-            int alt39=7;
+            // InternalPerspectiveDsl.g:3251:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt40=7;
             switch ( input.LA(1) ) {
-            case 72:
-                {
-                alt39=1;
-                }
-                break;
             case 73:
                 {
-                alt39=2;
+                alt40=1;
                 }
                 break;
             case 74:
                 {
-                alt39=3;
+                alt40=2;
                 }
                 break;
             case 75:
                 {
-                alt39=4;
+                alt40=3;
                 }
                 break;
             case 76:
                 {
-                alt39=5;
+                alt40=4;
                 }
                 break;
             case 77:
                 {
-                alt39=6;
+                alt40=5;
                 }
                 break;
             case 78:
                 {
-                alt39=7;
+                alt40=6;
+                }
+                break;
+            case 79:
+                {
+                alt40=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 39, 0, input);
+                    new NoViableAltException("", 40, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt39) {
+            switch (alt40) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3233:3: kw= '+='
+                    // InternalPerspectiveDsl.g:3252:3: kw= '+='
                     {
-                    kw=(Token)match(input,72,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);
@@ -9129,9 +9196,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3239:3: kw= '-='
+                    // InternalPerspectiveDsl.g:3258:3: kw= '-='
                     {
-                    kw=(Token)match(input,73,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);
@@ -9142,9 +9209,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3245:3: kw= '*='
+                    // InternalPerspectiveDsl.g:3264:3: kw= '*='
                     {
-                    kw=(Token)match(input,74,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);
@@ -9155,9 +9222,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3251:3: kw= '/='
+                    // InternalPerspectiveDsl.g:3270:3: kw= '/='
                     {
-                    kw=(Token)match(input,75,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);
@@ -9168,9 +9235,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3257:3: kw= '%='
+                    // InternalPerspectiveDsl.g:3276:3: kw= '%='
                     {
-                    kw=(Token)match(input,76,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);
@@ -9181,26 +9248,26 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3263:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:3282:3: (kw= '<' kw= '<' kw= '=' )
                     {
-                    // InternalPerspectiveDsl.g:3263:3: (kw= '<' kw= '<' kw= '=' )
-                    // InternalPerspectiveDsl.g:3264:4: kw= '<' kw= '<' kw= '='
+                    // InternalPerspectiveDsl.g:3282:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:3283:4: kw= '<' kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,77,FOLLOW_46); if (state.failed) return current;
+                    kw=(Token)match(input,78,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
                       			
                     }
-                    kw=(Token)match(input,77,FOLLOW_39); if (state.failed) return current;
+                    kw=(Token)match(input,78,FOLLOW_39); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
                       			
                     }
-                    kw=(Token)match(input,68,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);
@@ -9214,30 +9281,30 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3281:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalPerspectiveDsl.g:3300:3: (kw= '>' (kw= '>' )? kw= '>=' )
                     {
-                    // InternalPerspectiveDsl.g:3281:3: (kw= '>' (kw= '>' )? kw= '>=' )
-                    // InternalPerspectiveDsl.g:3282:4: kw= '>' (kw= '>' )? kw= '>='
+                    // InternalPerspectiveDsl.g:3300:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalPerspectiveDsl.g:3301:4: kw= '>' (kw= '>' )? kw= '>='
                     {
-                    kw=(Token)match(input,78,FOLLOW_47); if (state.failed) return current;
+                    kw=(Token)match(input,79,FOLLOW_47); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:3287:4: (kw= '>' )?
-                    int alt38=2;
-                    int LA38_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:3306:4: (kw= '>' )?
+                    int alt39=2;
+                    int LA39_0 = input.LA(1);
 
-                    if ( (LA38_0==78) ) {
-                        alt38=1;
+                    if ( (LA39_0==79) ) {
+                        alt39=1;
                     }
-                    switch (alt38) {
+                    switch (alt39) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:3288:5: kw= '>'
+                            // InternalPerspectiveDsl.g:3307:5: kw= '>'
                             {
-                            kw=(Token)match(input,78,FOLLOW_48); if (state.failed) return current;
+                            kw=(Token)match(input,79,FOLLOW_48); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -9250,7 +9317,7 @@
 
                     }
 
-                    kw=(Token)match(input,79,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);
@@ -9288,7 +9355,7 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalPerspectiveDsl.g:3304:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    // InternalPerspectiveDsl.g:3323:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
     public final EObject entryRuleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9296,8 +9363,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3304:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
-            // InternalPerspectiveDsl.g:3305:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            // InternalPerspectiveDsl.g:3323:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // InternalPerspectiveDsl.g:3324:2: iv_ruleXOrExpression= ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOrExpressionRule()); 
@@ -9328,7 +9395,7 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalPerspectiveDsl.g:3311:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3330: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;
 
@@ -9341,11 +9408,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3317:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3318:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3336:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3337:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3318:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3319:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            // InternalPerspectiveDsl.g:3337:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3338:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -9363,35 +9430,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3327:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
-            loop40:
+            // InternalPerspectiveDsl.g:3346:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop41:
             do {
-                int alt40=2;
-                int LA40_0 = input.LA(1);
+                int alt41=2;
+                int LA41_0 = input.LA(1);
 
-                if ( (LA40_0==80) ) {
-                    int LA40_2 = input.LA(2);
+                if ( (LA41_0==81) ) {
+                    int LA41_2 = input.LA(2);
 
                     if ( (synpred8_InternalPerspectiveDsl()) ) {
-                        alt40=1;
+                        alt41=1;
                     }
 
 
                 }
 
 
-                switch (alt40) {
+                switch (alt41) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3328:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalPerspectiveDsl.g:3347:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3328:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
-            	    // InternalPerspectiveDsl.g:3329:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    // InternalPerspectiveDsl.g:3347:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // InternalPerspectiveDsl.g:3348:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3339:5: ( () ( ( ruleOpOr ) ) )
-            	    // InternalPerspectiveDsl.g:3340:6: () ( ( ruleOpOr ) )
+            	    // InternalPerspectiveDsl.g:3358:5: ( () ( ( ruleOpOr ) ) )
+            	    // InternalPerspectiveDsl.g:3359:6: () ( ( ruleOpOr ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3340:6: ()
-            	    // InternalPerspectiveDsl.g:3341:7: 
+            	    // InternalPerspectiveDsl.g:3359:6: ()
+            	    // InternalPerspectiveDsl.g:3360:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9403,11 +9470,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3347:6: ( ( ruleOpOr ) )
-            	    // InternalPerspectiveDsl.g:3348:7: ( ruleOpOr )
+            	    // InternalPerspectiveDsl.g:3366:6: ( ( ruleOpOr ) )
+            	    // InternalPerspectiveDsl.g:3367:7: ( ruleOpOr )
             	    {
-            	    // InternalPerspectiveDsl.g:3348:7: ( ruleOpOr )
-            	    // InternalPerspectiveDsl.g:3349:8: ruleOpOr
+            	    // InternalPerspectiveDsl.g:3367:7: ( ruleOpOr )
+            	    // InternalPerspectiveDsl.g:3368:8: ruleOpOr
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9443,11 +9510,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3365:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
-            	    // InternalPerspectiveDsl.g:3366:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalPerspectiveDsl.g:3384:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalPerspectiveDsl.g:3385:5: (lv_rightOperand_3_0= ruleXAndExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3366:5: (lv_rightOperand_3_0= ruleXAndExpression )
-            	    // InternalPerspectiveDsl.g:3367:6: lv_rightOperand_3_0= ruleXAndExpression
+            	    // InternalPerspectiveDsl.g:3385:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalPerspectiveDsl.g:3386:6: lv_rightOperand_3_0= ruleXAndExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9483,312 +9550,6 @@
             	    break;
 
             	default :
-            	    break loop40;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXOrExpression"
-
-
-    // $ANTLR start "entryRuleOpOr"
-    // InternalPerspectiveDsl.g:3389:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
-    public final String entryRuleOpOr() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpOr = null;
-
-
-        try {
-            // InternalPerspectiveDsl.g:3389:44: (iv_ruleOpOr= ruleOpOr EOF )
-            // InternalPerspectiveDsl.g:3390:2: iv_ruleOpOr= ruleOpOr EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpOrRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpOr=ruleOpOr();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpOr.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpOr"
-
-
-    // $ANTLR start "ruleOpOr"
-    // InternalPerspectiveDsl.g:3396:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
-    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalPerspectiveDsl.g:3402:2: (kw= '||' )
-            // InternalPerspectiveDsl.g:3403:2: kw= '||'
-            {
-            kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		current.merge(kw);
-              		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
-              	
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpOr"
-
-
-    // $ANTLR start "entryRuleXAndExpression"
-    // InternalPerspectiveDsl.g:3411:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
-    public final EObject entryRuleXAndExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXAndExpression = null;
-
-
-        try {
-            // InternalPerspectiveDsl.g:3411:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
-            // InternalPerspectiveDsl.g:3412:2: iv_ruleXAndExpression= ruleXAndExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXAndExpression=ruleXAndExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXAndExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXAndExpression"
-
-
-    // $ANTLR start "ruleXAndExpression"
-    // InternalPerspectiveDsl.g:3418: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;
-
-        EObject this_XEqualityExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalPerspectiveDsl.g:3424:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3425:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            {
-            // InternalPerspectiveDsl.g:3425:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3426:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_50);
-            this_XEqualityExpression_0=ruleXEqualityExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XEqualityExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalPerspectiveDsl.g:3434:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            loop41:
-            do {
-                int alt41=2;
-                int LA41_0 = input.LA(1);
-
-                if ( (LA41_0==81) ) {
-                    int LA41_2 = input.LA(2);
-
-                    if ( (synpred9_InternalPerspectiveDsl()) ) {
-                        alt41=1;
-                    }
-
-
-                }
-
-
-                switch (alt41) {
-            	case 1 :
-            	    // InternalPerspectiveDsl.g:3435:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    {
-            	    // InternalPerspectiveDsl.g:3435:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
-            	    // InternalPerspectiveDsl.g:3436:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
-            	    {
-            	    // InternalPerspectiveDsl.g:3446:5: ( () ( ( ruleOpAnd ) ) )
-            	    // InternalPerspectiveDsl.g:3447:6: () ( ( ruleOpAnd ) )
-            	    {
-            	    // InternalPerspectiveDsl.g:3447:6: ()
-            	    // InternalPerspectiveDsl.g:3448:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalPerspectiveDsl.g:3454:6: ( ( ruleOpAnd ) )
-            	    // InternalPerspectiveDsl.g:3455:7: ( ruleOpAnd )
-            	    {
-            	    // InternalPerspectiveDsl.g:3455:7: ( ruleOpAnd )
-            	    // InternalPerspectiveDsl.g:3456:8: ruleOpAnd
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXAndExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_40);
-            	    ruleOpAnd();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalPerspectiveDsl.g:3472:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    // InternalPerspectiveDsl.g:3473:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    {
-            	    // InternalPerspectiveDsl.g:3473:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    // InternalPerspectiveDsl.g:3474:6: lv_rightOperand_3_0= ruleXEqualityExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_50);
-            	    lv_rightOperand_3_0=ruleXEqualityExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
             	    break loop41;
                 }
             } while (true);
@@ -9814,31 +9575,31 @@
         }
         return current;
     }
-    // $ANTLR end "ruleXAndExpression"
+    // $ANTLR end "ruleXOrExpression"
 
 
-    // $ANTLR start "entryRuleOpAnd"
-    // InternalPerspectiveDsl.g:3496:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
-    public final String entryRuleOpAnd() throws RecognitionException {
+    // $ANTLR start "entryRuleOpOr"
+    // InternalPerspectiveDsl.g:3408:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    public final String entryRuleOpOr() throws RecognitionException {
         String current = null;
 
-        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+        AntlrDatatypeRuleToken iv_ruleOpOr = null;
 
 
         try {
-            // InternalPerspectiveDsl.g:3496:45: (iv_ruleOpAnd= ruleOpAnd EOF )
-            // InternalPerspectiveDsl.g:3497:2: iv_ruleOpAnd= ruleOpAnd EOF
+            // InternalPerspectiveDsl.g:3408:44: (iv_ruleOpOr= ruleOpOr EOF )
+            // InternalPerspectiveDsl.g:3409:2: iv_ruleOpOr= ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpAndRule()); 
+               newCompositeNode(grammarAccess.getOpOrRule()); 
             }
             pushFollow(FOLLOW_1);
-            iv_ruleOpAnd=ruleOpAnd();
+            iv_ruleOpOr=ruleOpOr();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleOpAnd.getText(); 
+               current =iv_ruleOpOr.getText(); 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
@@ -9854,12 +9615,12 @@
         }
         return current;
     }
-    // $ANTLR end "entryRuleOpAnd"
+    // $ANTLR end "entryRuleOpOr"
 
 
-    // $ANTLR start "ruleOpAnd"
-    // InternalPerspectiveDsl.g:3503:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
-    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+    // $ANTLR start "ruleOpOr"
+    // InternalPerspectiveDsl.g:3415:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
         Token kw=null;
@@ -9868,14 +9629,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3509:2: (kw= '&&' )
-            // InternalPerspectiveDsl.g:3510:2: kw= '&&'
+            // InternalPerspectiveDsl.g:3421:2: (kw= '||' )
+            // InternalPerspectiveDsl.g:3422:2: kw= '||'
             {
             kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
-              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+              		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
               	
             }
 
@@ -9896,31 +9657,31 @@
         }
         return current;
     }
-    // $ANTLR end "ruleOpAnd"
+    // $ANTLR end "ruleOpOr"
 
 
-    // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalPerspectiveDsl.g:3518:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
-    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+    // $ANTLR start "entryRuleXAndExpression"
+    // InternalPerspectiveDsl.g:3430:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    public final EObject entryRuleXAndExpression() throws RecognitionException {
         EObject current = null;
 
-        EObject iv_ruleXEqualityExpression = null;
+        EObject iv_ruleXAndExpression = null;
 
 
         try {
-            // InternalPerspectiveDsl.g:3518:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
-            // InternalPerspectiveDsl.g:3519:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            // InternalPerspectiveDsl.g:3430:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // InternalPerspectiveDsl.g:3431:2: iv_ruleXAndExpression= ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
+               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
             }
             pushFollow(FOLLOW_1);
-            iv_ruleXEqualityExpression=ruleXEqualityExpression();
+            iv_ruleXAndExpression=ruleXAndExpression();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleXEqualityExpression; 
+               current =iv_ruleXAndExpression; 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
@@ -9936,15 +9697,15 @@
         }
         return current;
     }
-    // $ANTLR end "entryRuleXEqualityExpression"
+    // $ANTLR end "entryRuleXAndExpression"
 
 
-    // $ANTLR start "ruleXEqualityExpression"
-    // InternalPerspectiveDsl.g:3525:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
-    public final EObject ruleXEqualityExpression() throws RecognitionException {
+    // $ANTLR start "ruleXAndExpression"
+    // InternalPerspectiveDsl.g:3437: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;
 
-        EObject this_XRelationalExpression_0 = null;
+        EObject this_XEqualityExpression_0 = null;
 
         EObject lv_rightOperand_3_0 = null;
 
@@ -9953,123 +9714,88 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3531:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3532:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3443:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3444:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3532:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3533:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            // InternalPerspectiveDsl.g:3444:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3445:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
-              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+              			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_51);
-            this_XRelationalExpression_0=ruleXRelationalExpression();
+            pushFollow(FOLLOW_50);
+            this_XEqualityExpression_0=ruleXEqualityExpression();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              			current = this_XRelationalExpression_0;
+              			current = this_XEqualityExpression_0;
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3541:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            // InternalPerspectiveDsl.g:3453:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
             loop42:
             do {
                 int alt42=2;
-                switch ( input.LA(1) ) {
-                case 82:
-                    {
+                int LA42_0 = input.LA(1);
+
+                if ( (LA42_0==82) ) {
                     int LA42_2 = input.LA(2);
 
-                    if ( (synpred10_InternalPerspectiveDsl()) ) {
+                    if ( (synpred9_InternalPerspectiveDsl()) ) {
                         alt42=1;
                     }
 
 
-                    }
-                    break;
-                case 83:
-                    {
-                    int LA42_3 = input.LA(2);
-
-                    if ( (synpred10_InternalPerspectiveDsl()) ) {
-                        alt42=1;
-                    }
-
-
-                    }
-                    break;
-                case 84:
-                    {
-                    int LA42_4 = input.LA(2);
-
-                    if ( (synpred10_InternalPerspectiveDsl()) ) {
-                        alt42=1;
-                    }
-
-
-                    }
-                    break;
-                case 85:
-                    {
-                    int LA42_5 = input.LA(2);
-
-                    if ( (synpred10_InternalPerspectiveDsl()) ) {
-                        alt42=1;
-                    }
-
-
-                    }
-                    break;
-
                 }
 
+
                 switch (alt42) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3542:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalPerspectiveDsl.g:3454:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3542:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
-            	    // InternalPerspectiveDsl.g:3543:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    // InternalPerspectiveDsl.g:3454:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // InternalPerspectiveDsl.g:3455:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3553:5: ( () ( ( ruleOpEquality ) ) )
-            	    // InternalPerspectiveDsl.g:3554:6: () ( ( ruleOpEquality ) )
+            	    // InternalPerspectiveDsl.g:3465:5: ( () ( ( ruleOpAnd ) ) )
+            	    // InternalPerspectiveDsl.g:3466:6: () ( ( ruleOpAnd ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3554:6: ()
-            	    // InternalPerspectiveDsl.g:3555:7: 
+            	    // InternalPerspectiveDsl.g:3466:6: ()
+            	    // InternalPerspectiveDsl.g:3467:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
             	      								current);
             	      						
             	    }
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3561:6: ( ( ruleOpEquality ) )
-            	    // InternalPerspectiveDsl.g:3562:7: ( ruleOpEquality )
+            	    // InternalPerspectiveDsl.g:3473:6: ( ( ruleOpAnd ) )
+            	    // InternalPerspectiveDsl.g:3474:7: ( ruleOpAnd )
             	    {
-            	    // InternalPerspectiveDsl.g:3562:7: ( ruleOpEquality )
-            	    // InternalPerspectiveDsl.g:3563:8: ruleOpEquality
+            	    // InternalPerspectiveDsl.g:3474:7: ( ruleOpAnd )
+            	    // InternalPerspectiveDsl.g:3475:8: ruleOpAnd
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+            	      									current = createModelElement(grammarAccess.getXAndExpressionRule());
             	      								}
             	      							
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
             	    pushFollow(FOLLOW_40);
-            	    ruleOpEquality();
+            	    ruleOpAnd();
 
             	    state._fsp--;
             	    if (state.failed) return current;
@@ -10090,32 +9816,32 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3579:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    // InternalPerspectiveDsl.g:3580:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalPerspectiveDsl.g:3491:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalPerspectiveDsl.g:3492:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3580:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    // InternalPerspectiveDsl.g:3581:6: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    // InternalPerspectiveDsl.g:3492:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalPerspectiveDsl.g:3493:6: lv_rightOperand_3_0= ruleXEqualityExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+            	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_51);
-            	    lv_rightOperand_3_0=ruleXRelationalExpression();
+            	    pushFollow(FOLLOW_50);
+            	    lv_rightOperand_3_0=ruleXEqualityExpression();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+            	      							current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
             	      						}
             	      						set(
             	      							current,
             	      							"rightOperand",
             	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
+            	      							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
             	      						afterParserOrEnumRuleCall();
             	      					
             	    }
@@ -10155,11 +9881,352 @@
         }
         return current;
     }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // InternalPerspectiveDsl.g:3515:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    public final String entryRuleOpAnd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+        try {
+            // InternalPerspectiveDsl.g:3515:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // InternalPerspectiveDsl.g:3516: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"
+    // InternalPerspectiveDsl.g:3522:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalPerspectiveDsl.g:3528:2: (kw= '&&' )
+            // InternalPerspectiveDsl.g:3529:2: kw= '&&'
+            {
+            kw=(Token)match(input,82,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"
+    // InternalPerspectiveDsl.g:3537:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXEqualityExpression = null;
+
+
+        try {
+            // InternalPerspectiveDsl.g:3537:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // InternalPerspectiveDsl.g:3538: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"
+    // InternalPerspectiveDsl.g:3544: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 {
+            // InternalPerspectiveDsl.g:3550:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3551:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            {
+            // InternalPerspectiveDsl.g:3551:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3552:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_51);
+            this_XRelationalExpression_0=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XRelationalExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalPerspectiveDsl.g:3560:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            loop43:
+            do {
+                int alt43=2;
+                switch ( input.LA(1) ) {
+                case 83:
+                    {
+                    int LA43_2 = input.LA(2);
+
+                    if ( (synpred10_InternalPerspectiveDsl()) ) {
+                        alt43=1;
+                    }
+
+
+                    }
+                    break;
+                case 84:
+                    {
+                    int LA43_3 = input.LA(2);
+
+                    if ( (synpred10_InternalPerspectiveDsl()) ) {
+                        alt43=1;
+                    }
+
+
+                    }
+                    break;
+                case 85:
+                    {
+                    int LA43_4 = input.LA(2);
+
+                    if ( (synpred10_InternalPerspectiveDsl()) ) {
+                        alt43=1;
+                    }
+
+
+                    }
+                    break;
+                case 86:
+                    {
+                    int LA43_5 = input.LA(2);
+
+                    if ( (synpred10_InternalPerspectiveDsl()) ) {
+                        alt43=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt43) {
+            	case 1 :
+            	    // InternalPerspectiveDsl.g:3561:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    {
+            	    // InternalPerspectiveDsl.g:3561:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // InternalPerspectiveDsl.g:3562:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    {
+            	    // InternalPerspectiveDsl.g:3572:5: ( () ( ( ruleOpEquality ) ) )
+            	    // InternalPerspectiveDsl.g:3573:6: () ( ( ruleOpEquality ) )
+            	    {
+            	    // InternalPerspectiveDsl.g:3573:6: ()
+            	    // InternalPerspectiveDsl.g:3574:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalPerspectiveDsl.g:3580:6: ( ( ruleOpEquality ) )
+            	    // InternalPerspectiveDsl.g:3581:7: ( ruleOpEquality )
+            	    {
+            	    // InternalPerspectiveDsl.g:3581:7: ( ruleOpEquality )
+            	    // InternalPerspectiveDsl.g:3582: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_40);
+            	    ruleOpEquality();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalPerspectiveDsl.g:3598:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalPerspectiveDsl.g:3599:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    {
+            	    // InternalPerspectiveDsl.g:3599:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalPerspectiveDsl.g:3600:6: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_51);
+            	    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 loop43;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
     // $ANTLR end "ruleXEqualityExpression"
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalPerspectiveDsl.g:3603:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    // InternalPerspectiveDsl.g:3622:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
     public final String entryRuleOpEquality() throws RecognitionException {
         String current = null;
 
@@ -10167,8 +10234,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3603:50: (iv_ruleOpEquality= ruleOpEquality EOF )
-            // InternalPerspectiveDsl.g:3604:2: iv_ruleOpEquality= ruleOpEquality EOF
+            // InternalPerspectiveDsl.g:3622:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // InternalPerspectiveDsl.g:3623:2: iv_ruleOpEquality= ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpEqualityRule()); 
@@ -10199,7 +10266,7 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalPerspectiveDsl.g:3610:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    // InternalPerspectiveDsl.g:3629:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
     public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -10209,45 +10276,45 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3616:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
-            // InternalPerspectiveDsl.g:3617:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            // InternalPerspectiveDsl.g:3635:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // InternalPerspectiveDsl.g:3636:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
             {
-            // InternalPerspectiveDsl.g:3617:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
-            int alt43=4;
+            // InternalPerspectiveDsl.g:3636:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            int alt44=4;
             switch ( input.LA(1) ) {
-            case 82:
-                {
-                alt43=1;
-                }
-                break;
             case 83:
                 {
-                alt43=2;
+                alt44=1;
                 }
                 break;
             case 84:
                 {
-                alt43=3;
+                alt44=2;
                 }
                 break;
             case 85:
                 {
-                alt43=4;
+                alt44=3;
+                }
+                break;
+            case 86:
+                {
+                alt44=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 43, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt43) {
+            switch (alt44) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3618:3: kw= '=='
+                    // InternalPerspectiveDsl.g:3637:3: kw= '=='
                     {
-                    kw=(Token)match(input,82,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);
@@ -10258,9 +10325,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3624:3: kw= '!='
+                    // InternalPerspectiveDsl.g:3643:3: kw= '!='
                     {
-                    kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10271,9 +10338,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3630:3: kw= '==='
+                    // InternalPerspectiveDsl.g:3649:3: kw= '==='
                     {
-                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10284,9 +10351,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3636:3: kw= '!=='
+                    // InternalPerspectiveDsl.g:3655:3: kw= '!=='
                     {
-                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10321,7 +10388,7 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalPerspectiveDsl.g:3645:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    // InternalPerspectiveDsl.g:3664:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
     public final EObject entryRuleXRelationalExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10329,8 +10396,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3645:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
-            // InternalPerspectiveDsl.g:3646:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            // InternalPerspectiveDsl.g:3664:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // InternalPerspectiveDsl.g:3665:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
@@ -10361,7 +10428,7 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalPerspectiveDsl.g:3652: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 ) ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3671: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;
 
@@ -10377,11 +10444,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3658:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
-            // InternalPerspectiveDsl.g:3659:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalPerspectiveDsl.g:3677:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // InternalPerspectiveDsl.g:3678:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3659:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            // InternalPerspectiveDsl.g:3660:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            // InternalPerspectiveDsl.g:3678:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalPerspectiveDsl.g:3679: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 ) {
 
@@ -10399,39 +10466,17 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3668:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
-            loop44:
+            // InternalPerspectiveDsl.g:3687:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            loop45:
             do {
-                int alt44=3;
+                int alt45=3;
                 switch ( input.LA(1) ) {
-                case 77:
-                    {
-                    int LA44_2 = input.LA(2);
-
-                    if ( (synpred12_InternalPerspectiveDsl()) ) {
-                        alt44=2;
-                    }
-
-
-                    }
-                    break;
                 case 78:
                     {
-                    int LA44_3 = input.LA(2);
+                    int LA45_2 = input.LA(2);
 
                     if ( (synpred12_InternalPerspectiveDsl()) ) {
-                        alt44=2;
-                    }
-
-
-                    }
-                    break;
-                case 86:
-                    {
-                    int LA44_4 = input.LA(2);
-
-                    if ( (synpred11_InternalPerspectiveDsl()) ) {
-                        alt44=1;
+                        alt45=2;
                     }
 
 
@@ -10439,10 +10484,32 @@
                     break;
                 case 79:
                     {
-                    int LA44_5 = input.LA(2);
+                    int LA45_3 = input.LA(2);
 
                     if ( (synpred12_InternalPerspectiveDsl()) ) {
-                        alt44=2;
+                        alt45=2;
+                    }
+
+
+                    }
+                    break;
+                case 87:
+                    {
+                    int LA45_4 = input.LA(2);
+
+                    if ( (synpred11_InternalPerspectiveDsl()) ) {
+                        alt45=1;
+                    }
+
+
+                    }
+                    break;
+                case 80:
+                    {
+                    int LA45_5 = input.LA(2);
+
+                    if ( (synpred12_InternalPerspectiveDsl()) ) {
+                        alt45=2;
                     }
 
 
@@ -10451,21 +10518,21 @@
 
                 }
 
-                switch (alt44) {
+                switch (alt45) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3669:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalPerspectiveDsl.g:3688:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3669:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    // InternalPerspectiveDsl.g:3670:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:3688:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalPerspectiveDsl.g:3689:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3670:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
-            	    // InternalPerspectiveDsl.g:3671:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    // InternalPerspectiveDsl.g:3689:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // InternalPerspectiveDsl.g:3690:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
             	    {
-            	    // InternalPerspectiveDsl.g:3677:6: ( () otherlv_2= 'instanceof' )
-            	    // InternalPerspectiveDsl.g:3678:7: () otherlv_2= 'instanceof'
+            	    // InternalPerspectiveDsl.g:3696:6: ( () otherlv_2= 'instanceof' )
+            	    // InternalPerspectiveDsl.g:3697:7: () otherlv_2= 'instanceof'
             	    {
-            	    // InternalPerspectiveDsl.g:3678:7: ()
-            	    // InternalPerspectiveDsl.g:3679:8: 
+            	    // InternalPerspectiveDsl.g:3697:7: ()
+            	    // InternalPerspectiveDsl.g:3698:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10477,7 +10544,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,86,FOLLOW_53); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,87,FOLLOW_53); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
@@ -10489,11 +10556,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3691:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalPerspectiveDsl.g:3692:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:3710:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:3711:6: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalPerspectiveDsl.g:3692:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalPerspectiveDsl.g:3693:7: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalPerspectiveDsl.g:3711:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:3712:7: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10531,19 +10598,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalPerspectiveDsl.g:3712:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalPerspectiveDsl.g:3731:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3712:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    // InternalPerspectiveDsl.g:3713:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalPerspectiveDsl.g:3731:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalPerspectiveDsl.g:3732:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3713:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
-            	    // InternalPerspectiveDsl.g:3714:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    // InternalPerspectiveDsl.g:3732:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // InternalPerspectiveDsl.g:3733:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3724:6: ( () ( ( ruleOpCompare ) ) )
-            	    // InternalPerspectiveDsl.g:3725:7: () ( ( ruleOpCompare ) )
+            	    // InternalPerspectiveDsl.g:3743:6: ( () ( ( ruleOpCompare ) ) )
+            	    // InternalPerspectiveDsl.g:3744:7: () ( ( ruleOpCompare ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3725:7: ()
-            	    // InternalPerspectiveDsl.g:3726:8: 
+            	    // InternalPerspectiveDsl.g:3744:7: ()
+            	    // InternalPerspectiveDsl.g:3745:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10555,11 +10622,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3732:7: ( ( ruleOpCompare ) )
-            	    // InternalPerspectiveDsl.g:3733:8: ( ruleOpCompare )
+            	    // InternalPerspectiveDsl.g:3751:7: ( ( ruleOpCompare ) )
+            	    // InternalPerspectiveDsl.g:3752:8: ( ruleOpCompare )
             	    {
-            	    // InternalPerspectiveDsl.g:3733:8: ( ruleOpCompare )
-            	    // InternalPerspectiveDsl.g:3734:9: ruleOpCompare
+            	    // InternalPerspectiveDsl.g:3752:8: ( ruleOpCompare )
+            	    // InternalPerspectiveDsl.g:3753:9: ruleOpCompare
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10595,11 +10662,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3750:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    // InternalPerspectiveDsl.g:3751:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalPerspectiveDsl.g:3769:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalPerspectiveDsl.g:3770:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3751:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    // InternalPerspectiveDsl.g:3752:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    // InternalPerspectiveDsl.g:3770:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalPerspectiveDsl.g:3771:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10638,7 +10705,7 @@
             	    break;
 
             	default :
-            	    break loop44;
+            	    break loop45;
                 }
             } while (true);
 
@@ -10667,7 +10734,7 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalPerspectiveDsl.g:3775:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    // InternalPerspectiveDsl.g:3794:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
     public final String entryRuleOpCompare() throws RecognitionException {
         String current = null;
 
@@ -10675,8 +10742,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3775:49: (iv_ruleOpCompare= ruleOpCompare EOF )
-            // InternalPerspectiveDsl.g:3776:2: iv_ruleOpCompare= ruleOpCompare EOF
+            // InternalPerspectiveDsl.g:3794:49: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // InternalPerspectiveDsl.g:3795:2: iv_ruleOpCompare= ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpCompareRule()); 
@@ -10707,7 +10774,7 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalPerspectiveDsl.g:3782:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    // InternalPerspectiveDsl.g:3801:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
     public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -10717,54 +10784,54 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3788:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
-            // InternalPerspectiveDsl.g:3789:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            // InternalPerspectiveDsl.g:3807:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // InternalPerspectiveDsl.g:3808:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
             {
-            // InternalPerspectiveDsl.g:3789:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
-            int alt45=4;
+            // InternalPerspectiveDsl.g:3808:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt46=4;
             switch ( input.LA(1) ) {
-            case 79:
+            case 80:
                 {
-                alt45=1;
+                alt46=1;
                 }
                 break;
-            case 77:
+            case 78:
                 {
-                int LA45_2 = input.LA(2);
+                int LA46_2 = input.LA(2);
 
-                if ( (LA45_2==EOF||(LA45_2>=RULE_ID && LA45_2<=RULE_DECIMAL)||LA45_2==14||(LA45_2>=58 && LA45_2<=60)||LA45_2==65||(LA45_2>=69 && LA45_2<=70)||LA45_2==77||(LA45_2>=93 && LA45_2<=94)||LA45_2==98||LA45_2==106||LA45_2==108||(LA45_2>=112 && LA45_2<=114)||(LA45_2>=117 && LA45_2<=126)||LA45_2==128) ) {
-                    alt45=4;
+                if ( (LA46_2==EOF||(LA46_2>=RULE_ID && LA46_2<=RULE_DECIMAL)||LA46_2==14||(LA46_2>=59 && LA46_2<=61)||LA46_2==66||(LA46_2>=70 && LA46_2<=71)||LA46_2==78||(LA46_2>=94 && LA46_2<=95)||LA46_2==99||LA46_2==107||LA46_2==109||(LA46_2>=113 && LA46_2<=115)||(LA46_2>=118 && LA46_2<=127)||LA46_2==129) ) {
+                    alt46=4;
                 }
-                else if ( (LA45_2==68) ) {
-                    alt45=2;
+                else if ( (LA46_2==69) ) {
+                    alt46=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 45, 2, input);
+                        new NoViableAltException("", 46, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 78:
+            case 79:
                 {
-                alt45=3;
+                alt46=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt45) {
+            switch (alt46) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3790:3: kw= '>='
+                    // InternalPerspectiveDsl.g:3809:3: kw= '>='
                     {
-                    kw=(Token)match(input,79,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);
@@ -10775,19 +10842,19 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3796:3: (kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:3815:3: (kw= '<' kw= '=' )
                     {
-                    // InternalPerspectiveDsl.g:3796:3: (kw= '<' kw= '=' )
-                    // InternalPerspectiveDsl.g:3797:4: kw= '<' kw= '='
+                    // InternalPerspectiveDsl.g:3815:3: (kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:3816:4: kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,77,FOLLOW_39); if (state.failed) return current;
+                    kw=(Token)match(input,78,FOLLOW_39); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    kw=(Token)match(input,68,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);
@@ -10801,9 +10868,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3809:3: kw= '>'
+                    // InternalPerspectiveDsl.g:3828:3: kw= '>'
                     {
-                    kw=(Token)match(input,78,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);
@@ -10814,9 +10881,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3815:3: kw= '<'
+                    // InternalPerspectiveDsl.g:3834:3: kw= '<'
                     {
-                    kw=(Token)match(input,77,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);
@@ -10851,7 +10918,7 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalPerspectiveDsl.g:3824:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    // InternalPerspectiveDsl.g:3843:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
     public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10859,8 +10926,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3824:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
-            // InternalPerspectiveDsl.g:3825:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            // InternalPerspectiveDsl.g:3843:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // InternalPerspectiveDsl.g:3844:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -10891,7 +10958,7 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalPerspectiveDsl.g:3831:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3850: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;
 
@@ -10904,11 +10971,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3837:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3838:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3856:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3857:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3838:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3839:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            // InternalPerspectiveDsl.g:3857:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3858:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -10926,23 +10993,23 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3847:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
-            loop46:
+            // InternalPerspectiveDsl.g:3866:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop47:
             do {
-                int alt46=2;
-                alt46 = dfa46.predict(input);
-                switch (alt46) {
+                int alt47=2;
+                alt47 = dfa47.predict(input);
+                switch (alt47) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3848:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalPerspectiveDsl.g:3867:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3848:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
-            	    // InternalPerspectiveDsl.g:3849:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    // InternalPerspectiveDsl.g:3867:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // InternalPerspectiveDsl.g:3868:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3859:5: ( () ( ( ruleOpOther ) ) )
-            	    // InternalPerspectiveDsl.g:3860:6: () ( ( ruleOpOther ) )
+            	    // InternalPerspectiveDsl.g:3878:5: ( () ( ( ruleOpOther ) ) )
+            	    // InternalPerspectiveDsl.g:3879:6: () ( ( ruleOpOther ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3860:6: ()
-            	    // InternalPerspectiveDsl.g:3861:7: 
+            	    // InternalPerspectiveDsl.g:3879:6: ()
+            	    // InternalPerspectiveDsl.g:3880:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10954,11 +11021,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3867:6: ( ( ruleOpOther ) )
-            	    // InternalPerspectiveDsl.g:3868:7: ( ruleOpOther )
+            	    // InternalPerspectiveDsl.g:3886:6: ( ( ruleOpOther ) )
+            	    // InternalPerspectiveDsl.g:3887:7: ( ruleOpOther )
             	    {
-            	    // InternalPerspectiveDsl.g:3868:7: ( ruleOpOther )
-            	    // InternalPerspectiveDsl.g:3869:8: ruleOpOther
+            	    // InternalPerspectiveDsl.g:3887:7: ( ruleOpOther )
+            	    // InternalPerspectiveDsl.g:3888:8: ruleOpOther
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10994,11 +11061,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3885:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
-            	    // InternalPerspectiveDsl.g:3886:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalPerspectiveDsl.g:3904:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalPerspectiveDsl.g:3905:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3886:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
-            	    // InternalPerspectiveDsl.g:3887:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    // InternalPerspectiveDsl.g:3905:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalPerspectiveDsl.g:3906:6: lv_rightOperand_3_0= ruleXAdditiveExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11034,7 +11101,7 @@
             	    break;
 
             	default :
-            	    break loop46;
+            	    break loop47;
                 }
             } while (true);
 
@@ -11063,7 +11130,7 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalPerspectiveDsl.g:3909:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    // InternalPerspectiveDsl.g:3928:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
     public final String entryRuleOpOther() throws RecognitionException {
         String current = null;
 
@@ -11071,8 +11138,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3909:47: (iv_ruleOpOther= ruleOpOther EOF )
-            // InternalPerspectiveDsl.g:3910:2: iv_ruleOpOther= ruleOpOther EOF
+            // InternalPerspectiveDsl.g:3928:47: (iv_ruleOpOther= ruleOpOther EOF )
+            // InternalPerspectiveDsl.g:3929:2: iv_ruleOpOther= ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOtherRule()); 
@@ -11103,7 +11170,7 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalPerspectiveDsl.g:3916:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    // InternalPerspectiveDsl.g:3935: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();
 
@@ -11113,17 +11180,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3922:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
-            // InternalPerspectiveDsl.g:3923:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            // InternalPerspectiveDsl.g:3941:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // InternalPerspectiveDsl.g:3942:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
             {
-            // InternalPerspectiveDsl.g:3923:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
-            int alt49=9;
-            alt49 = dfa49.predict(input);
-            switch (alt49) {
+            // InternalPerspectiveDsl.g:3942:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt50=9;
+            alt50 = dfa50.predict(input);
+            switch (alt50) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3924:3: kw= '->'
+                    // InternalPerspectiveDsl.g:3943:3: kw= '->'
                     {
-                    kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11134,9 +11201,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3930:3: kw= '..<'
+                    // InternalPerspectiveDsl.g:3949:3: kw= '..<'
                     {
-                    kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11147,19 +11214,19 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3936:3: (kw= '>' kw= '..' )
+                    // InternalPerspectiveDsl.g:3955:3: (kw= '>' kw= '..' )
                     {
-                    // InternalPerspectiveDsl.g:3936:3: (kw= '>' kw= '..' )
-                    // InternalPerspectiveDsl.g:3937:4: kw= '>' kw= '..'
+                    // InternalPerspectiveDsl.g:3955:3: (kw= '>' kw= '..' )
+                    // InternalPerspectiveDsl.g:3956:4: kw= '>' kw= '..'
                     {
-                    kw=(Token)match(input,78,FOLLOW_55); if (state.failed) return current;
+                    kw=(Token)match(input,79,FOLLOW_55); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
                       			
                     }
-                    kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -11173,9 +11240,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3949:3: kw= '..'
+                    // InternalPerspectiveDsl.g:3968:3: kw= '..'
                     {
-                    kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11186,9 +11253,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3955:3: kw= '=>'
+                    // InternalPerspectiveDsl.g:3974:3: kw= '=>'
                     {
-                    kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11199,35 +11266,35 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3961:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalPerspectiveDsl.g:3980:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
                     {
-                    // InternalPerspectiveDsl.g:3961:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
-                    // InternalPerspectiveDsl.g:3962:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    // InternalPerspectiveDsl.g:3980:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalPerspectiveDsl.g:3981:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
                     {
-                    kw=(Token)match(input,78,FOLLOW_56); if (state.failed) return current;
+                    kw=(Token)match(input,79,FOLLOW_56); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:3967:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
-                    int alt47=2;
-                    int LA47_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:3986:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt48=2;
+                    int LA48_0 = input.LA(1);
 
-                    if ( (LA47_0==78) ) {
-                        int LA47_1 = input.LA(2);
+                    if ( (LA48_0==79) ) {
+                        int LA48_1 = input.LA(2);
 
-                        if ( (LA47_1==EOF||(LA47_1>=RULE_ID && LA47_1<=RULE_DECIMAL)||LA47_1==14||(LA47_1>=58 && LA47_1<=60)||LA47_1==65||(LA47_1>=69 && LA47_1<=70)||LA47_1==77||(LA47_1>=93 && LA47_1<=94)||LA47_1==98||LA47_1==106||LA47_1==108||(LA47_1>=112 && LA47_1<=114)||(LA47_1>=117 && LA47_1<=126)||LA47_1==128) ) {
-                            alt47=2;
+                        if ( (LA48_1==EOF||(LA48_1>=RULE_ID && LA48_1<=RULE_DECIMAL)||LA48_1==14||(LA48_1>=59 && LA48_1<=61)||LA48_1==66||(LA48_1>=70 && LA48_1<=71)||LA48_1==78||(LA48_1>=94 && LA48_1<=95)||LA48_1==99||LA48_1==107||LA48_1==109||(LA48_1>=113 && LA48_1<=115)||(LA48_1>=118 && LA48_1<=127)||LA48_1==129) ) {
+                            alt48=2;
                         }
-                        else if ( (LA47_1==78) && (synpred14_InternalPerspectiveDsl())) {
-                            alt47=1;
+                        else if ( (LA48_1==79) && (synpred14_InternalPerspectiveDsl())) {
+                            alt48=1;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 47, 1, input);
+                                new NoViableAltException("", 48, 1, input);
 
                             throw nvae;
                         }
@@ -11235,28 +11302,28 @@
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 47, 0, input);
+                            new NoViableAltException("", 48, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt47) {
+                    switch (alt48) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:3968:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalPerspectiveDsl.g:3987:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
                             {
-                            // InternalPerspectiveDsl.g:3968:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
-                            // InternalPerspectiveDsl.g:3969:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            // InternalPerspectiveDsl.g:3987:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalPerspectiveDsl.g:3988:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
                             {
-                            // InternalPerspectiveDsl.g:3974:6: (kw= '>' kw= '>' )
-                            // InternalPerspectiveDsl.g:3975:7: kw= '>' kw= '>'
+                            // InternalPerspectiveDsl.g:3993:6: (kw= '>' kw= '>' )
+                            // InternalPerspectiveDsl.g:3994:7: kw= '>' kw= '>'
                             {
-                            kw=(Token)match(input,78,FOLLOW_56); if (state.failed) return current;
+                            kw=(Token)match(input,79,FOLLOW_56); 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,78,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);
@@ -11273,9 +11340,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:3988:5: kw= '>'
+                            // InternalPerspectiveDsl.g:4007:5: kw= '>'
                             {
-                            kw=(Token)match(input,78,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);
@@ -11295,67 +11362,67 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3996:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalPerspectiveDsl.g:4015:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
                     {
-                    // InternalPerspectiveDsl.g:3996:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
-                    // InternalPerspectiveDsl.g:3997:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    // InternalPerspectiveDsl.g:4015:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalPerspectiveDsl.g:4016:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
                     {
-                    kw=(Token)match(input,77,FOLLOW_57); if (state.failed) return current;
+                    kw=(Token)match(input,78,FOLLOW_57); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:4002:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
-                    int alt48=3;
-                    int LA48_0 = input.LA(1);
+                    // InternalPerspectiveDsl.g:4021:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    int alt49=3;
+                    int LA49_0 = input.LA(1);
 
-                    if ( (LA48_0==77) ) {
-                        int LA48_1 = input.LA(2);
+                    if ( (LA49_0==78) ) {
+                        int LA49_1 = input.LA(2);
 
                         if ( (synpred15_InternalPerspectiveDsl()) ) {
-                            alt48=1;
+                            alt49=1;
                         }
                         else if ( (true) ) {
-                            alt48=2;
+                            alt49=2;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 48, 1, input);
+                                new NoViableAltException("", 49, 1, input);
 
                             throw nvae;
                         }
                     }
-                    else if ( (LA48_0==90) ) {
-                        alt48=3;
+                    else if ( (LA49_0==91) ) {
+                        alt49=3;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 48, 0, input);
+                            new NoViableAltException("", 49, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt48) {
+                    switch (alt49) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:4003:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalPerspectiveDsl.g:4022:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
                             {
-                            // InternalPerspectiveDsl.g:4003:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
-                            // InternalPerspectiveDsl.g:4004:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            // InternalPerspectiveDsl.g:4022:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalPerspectiveDsl.g:4023:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
                             {
-                            // InternalPerspectiveDsl.g:4009:6: (kw= '<' kw= '<' )
-                            // InternalPerspectiveDsl.g:4010:7: kw= '<' kw= '<'
+                            // InternalPerspectiveDsl.g:4028:6: (kw= '<' kw= '<' )
+                            // InternalPerspectiveDsl.g:4029:7: kw= '<' kw= '<'
                             {
-                            kw=(Token)match(input,77,FOLLOW_46); if (state.failed) return current;
+                            kw=(Token)match(input,78,FOLLOW_46); 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,77,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);
@@ -11372,9 +11439,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:4023:5: kw= '<'
+                            // InternalPerspectiveDsl.g:4042:5: kw= '<'
                             {
-                            kw=(Token)match(input,77,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);
@@ -11385,9 +11452,9 @@
                             }
                             break;
                         case 3 :
-                            // InternalPerspectiveDsl.g:4029:5: kw= '=>'
+                            // InternalPerspectiveDsl.g:4048:5: kw= '=>'
                             {
-                            kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -11407,9 +11474,9 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:4037:3: kw= '<>'
+                    // InternalPerspectiveDsl.g:4056:3: kw= '<>'
                     {
-                    kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11420,9 +11487,9 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:4043:3: kw= '?:'
+                    // InternalPerspectiveDsl.g:4062:3: kw= '?:'
                     {
-                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11457,7 +11524,7 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalPerspectiveDsl.g:4052:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    // InternalPerspectiveDsl.g:4071:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
     public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11465,8 +11532,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4052:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
-            // InternalPerspectiveDsl.g:4053:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            // InternalPerspectiveDsl.g:4071:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // InternalPerspectiveDsl.g:4072:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
@@ -11497,7 +11564,7 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalPerspectiveDsl.g:4059:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:4078: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;
 
@@ -11510,11 +11577,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4065:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:4066:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalPerspectiveDsl.g:4084:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:4085:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:4066:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
-            // InternalPerspectiveDsl.g:4067:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            // InternalPerspectiveDsl.g:4085:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalPerspectiveDsl.g:4086:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -11532,44 +11599,44 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:4075:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
-            loop50:
+            // InternalPerspectiveDsl.g:4094:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            loop51:
             do {
-                int alt50=2;
-                int LA50_0 = input.LA(1);
+                int alt51=2;
+                int LA51_0 = input.LA(1);
 
-                if ( (LA50_0==93) ) {
-                    int LA50_2 = input.LA(2);
+                if ( (LA51_0==94) ) {
+                    int LA51_2 = input.LA(2);
 
                     if ( (synpred16_InternalPerspectiveDsl()) ) {
-                        alt50=1;
+                        alt51=1;
                     }
 
 
                 }
-                else if ( (LA50_0==94) ) {
-                    int LA50_3 = input.LA(2);
+                else if ( (LA51_0==95) ) {
+                    int LA51_3 = input.LA(2);
 
                     if ( (synpred16_InternalPerspectiveDsl()) ) {
-                        alt50=1;
+                        alt51=1;
                     }
 
 
                 }
 
 
-                switch (alt50) {
+                switch (alt51) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4076:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalPerspectiveDsl.g:4095:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4076:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
-            	    // InternalPerspectiveDsl.g:4077:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    // InternalPerspectiveDsl.g:4095:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // InternalPerspectiveDsl.g:4096:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4087:5: ( () ( ( ruleOpAdd ) ) )
-            	    // InternalPerspectiveDsl.g:4088:6: () ( ( ruleOpAdd ) )
+            	    // InternalPerspectiveDsl.g:4106:5: ( () ( ( ruleOpAdd ) ) )
+            	    // InternalPerspectiveDsl.g:4107:6: () ( ( ruleOpAdd ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4088:6: ()
-            	    // InternalPerspectiveDsl.g:4089:7: 
+            	    // InternalPerspectiveDsl.g:4107:6: ()
+            	    // InternalPerspectiveDsl.g:4108:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11581,11 +11648,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4095:6: ( ( ruleOpAdd ) )
-            	    // InternalPerspectiveDsl.g:4096:7: ( ruleOpAdd )
+            	    // InternalPerspectiveDsl.g:4114:6: ( ( ruleOpAdd ) )
+            	    // InternalPerspectiveDsl.g:4115:7: ( ruleOpAdd )
             	    {
-            	    // InternalPerspectiveDsl.g:4096:7: ( ruleOpAdd )
-            	    // InternalPerspectiveDsl.g:4097:8: ruleOpAdd
+            	    // InternalPerspectiveDsl.g:4115:7: ( ruleOpAdd )
+            	    // InternalPerspectiveDsl.g:4116:8: ruleOpAdd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11621,11 +11688,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4113:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
-            	    // InternalPerspectiveDsl.g:4114:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalPerspectiveDsl.g:4132:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalPerspectiveDsl.g:4133:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:4114:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
-            	    // InternalPerspectiveDsl.g:4115:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    // InternalPerspectiveDsl.g:4133:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalPerspectiveDsl.g:4134:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11661,7 +11728,7 @@
             	    break;
 
             	default :
-            	    break loop50;
+            	    break loop51;
                 }
             } while (true);
 
@@ -11690,7 +11757,7 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalPerspectiveDsl.g:4137:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    // InternalPerspectiveDsl.g:4156:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
     public final String entryRuleOpAdd() throws RecognitionException {
         String current = null;
 
@@ -11698,8 +11765,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4137:45: (iv_ruleOpAdd= ruleOpAdd EOF )
-            // InternalPerspectiveDsl.g:4138:2: iv_ruleOpAdd= ruleOpAdd EOF
+            // InternalPerspectiveDsl.g:4156:45: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // InternalPerspectiveDsl.g:4157:2: iv_ruleOpAdd= ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpAddRule()); 
@@ -11730,7 +11797,7 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalPerspectiveDsl.g:4144:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    // InternalPerspectiveDsl.g:4163:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
     public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -11740,31 +11807,31 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4150:2: ( (kw= '+' | kw= '-' ) )
-            // InternalPerspectiveDsl.g:4151:2: (kw= '+' | kw= '-' )
+            // InternalPerspectiveDsl.g:4169:2: ( (kw= '+' | kw= '-' ) )
+            // InternalPerspectiveDsl.g:4170:2: (kw= '+' | kw= '-' )
             {
-            // InternalPerspectiveDsl.g:4151:2: (kw= '+' | kw= '-' )
-            int alt51=2;
-            int LA51_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4170:2: (kw= '+' | kw= '-' )
+            int alt52=2;
+            int LA52_0 = input.LA(1);
 
-            if ( (LA51_0==93) ) {
-                alt51=1;
+            if ( (LA52_0==94) ) {
+                alt52=1;
             }
-            else if ( (LA51_0==94) ) {
-                alt51=2;
+            else if ( (LA52_0==95) ) {
+                alt52=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 51, 0, input);
+                    new NoViableAltException("", 52, 0, input);
 
                 throw nvae;
             }
-            switch (alt51) {
+            switch (alt52) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4152:3: kw= '+'
+                    // InternalPerspectiveDsl.g:4171:3: kw= '+'
                     {
-                    kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11775,9 +11842,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4158:3: kw= '-'
+                    // InternalPerspectiveDsl.g:4177:3: kw= '-'
                     {
-                    kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11812,7 +11879,7 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalPerspectiveDsl.g:4167:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    // InternalPerspectiveDsl.g:4186:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
     public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11820,8 +11887,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4167:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
-            // InternalPerspectiveDsl.g:4168:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            // InternalPerspectiveDsl.g:4186:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // InternalPerspectiveDsl.g:4187:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -11852,7 +11919,7 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalPerspectiveDsl.g:4174:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+    // InternalPerspectiveDsl.g:4193: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;
 
@@ -11865,11 +11932,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4180:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
-            // InternalPerspectiveDsl.g:4181:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalPerspectiveDsl.g:4199:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // InternalPerspectiveDsl.g:4200:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
             {
-            // InternalPerspectiveDsl.g:4181:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            // InternalPerspectiveDsl.g:4182:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            // InternalPerspectiveDsl.g:4200:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalPerspectiveDsl.g:4201:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -11887,28 +11954,17 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:4190:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
-            loop52:
+            // InternalPerspectiveDsl.g:4209:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            loop53:
             do {
-                int alt52=2;
+                int alt53=2;
                 switch ( input.LA(1) ) {
-                case 61:
+                case 62:
                     {
-                    int LA52_2 = input.LA(2);
+                    int LA53_2 = input.LA(2);
 
                     if ( (synpred17_InternalPerspectiveDsl()) ) {
-                        alt52=1;
-                    }
-
-
-                    }
-                    break;
-                case 95:
-                    {
-                    int LA52_3 = input.LA(2);
-
-                    if ( (synpred17_InternalPerspectiveDsl()) ) {
-                        alt52=1;
+                        alt53=1;
                     }
 
 
@@ -11916,10 +11972,10 @@
                     break;
                 case 96:
                     {
-                    int LA52_4 = input.LA(2);
+                    int LA53_3 = input.LA(2);
 
                     if ( (synpred17_InternalPerspectiveDsl()) ) {
-                        alt52=1;
+                        alt53=1;
                     }
 
 
@@ -11927,10 +11983,21 @@
                     break;
                 case 97:
                     {
-                    int LA52_5 = input.LA(2);
+                    int LA53_4 = input.LA(2);
 
                     if ( (synpred17_InternalPerspectiveDsl()) ) {
-                        alt52=1;
+                        alt53=1;
+                    }
+
+
+                    }
+                    break;
+                case 98:
+                    {
+                    int LA53_5 = input.LA(2);
+
+                    if ( (synpred17_InternalPerspectiveDsl()) ) {
+                        alt53=1;
                     }
 
 
@@ -11939,18 +12006,18 @@
 
                 }
 
-                switch (alt52) {
+                switch (alt53) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4191:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalPerspectiveDsl.g:4210:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4191:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
-            	    // InternalPerspectiveDsl.g:4192:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    // InternalPerspectiveDsl.g:4210:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // InternalPerspectiveDsl.g:4211:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4202:5: ( () ( ( ruleOpMulti ) ) )
-            	    // InternalPerspectiveDsl.g:4203:6: () ( ( ruleOpMulti ) )
+            	    // InternalPerspectiveDsl.g:4221:5: ( () ( ( ruleOpMulti ) ) )
+            	    // InternalPerspectiveDsl.g:4222:6: () ( ( ruleOpMulti ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4203:6: ()
-            	    // InternalPerspectiveDsl.g:4204:7: 
+            	    // InternalPerspectiveDsl.g:4222:6: ()
+            	    // InternalPerspectiveDsl.g:4223:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11962,11 +12029,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4210:6: ( ( ruleOpMulti ) )
-            	    // InternalPerspectiveDsl.g:4211:7: ( ruleOpMulti )
+            	    // InternalPerspectiveDsl.g:4229:6: ( ( ruleOpMulti ) )
+            	    // InternalPerspectiveDsl.g:4230:7: ( ruleOpMulti )
             	    {
-            	    // InternalPerspectiveDsl.g:4211:7: ( ruleOpMulti )
-            	    // InternalPerspectiveDsl.g:4212:8: ruleOpMulti
+            	    // InternalPerspectiveDsl.g:4230:7: ( ruleOpMulti )
+            	    // InternalPerspectiveDsl.g:4231:8: ruleOpMulti
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12002,11 +12069,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4228:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    // InternalPerspectiveDsl.g:4229:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalPerspectiveDsl.g:4247:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalPerspectiveDsl.g:4248:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
             	    {
-            	    // InternalPerspectiveDsl.g:4229:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    // InternalPerspectiveDsl.g:4230:6: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    // InternalPerspectiveDsl.g:4248:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalPerspectiveDsl.g:4249:6: lv_rightOperand_3_0= ruleXUnaryOperation
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12042,7 +12109,7 @@
             	    break;
 
             	default :
-            	    break loop52;
+            	    break loop53;
                 }
             } while (true);
 
@@ -12071,7 +12138,7 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalPerspectiveDsl.g:4252:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    // InternalPerspectiveDsl.g:4271:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
     public final String entryRuleOpMulti() throws RecognitionException {
         String current = null;
 
@@ -12079,8 +12146,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4252:47: (iv_ruleOpMulti= ruleOpMulti EOF )
-            // InternalPerspectiveDsl.g:4253:2: iv_ruleOpMulti= ruleOpMulti EOF
+            // InternalPerspectiveDsl.g:4271:47: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // InternalPerspectiveDsl.g:4272:2: iv_ruleOpMulti= ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiRule()); 
@@ -12111,7 +12178,7 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalPerspectiveDsl.g:4259:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    // InternalPerspectiveDsl.g:4278:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
     public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -12121,45 +12188,45 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4265:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
-            // InternalPerspectiveDsl.g:4266:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            // InternalPerspectiveDsl.g:4284:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // InternalPerspectiveDsl.g:4285:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
             {
-            // InternalPerspectiveDsl.g:4266:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
-            int alt53=4;
+            // InternalPerspectiveDsl.g:4285:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            int alt54=4;
             switch ( input.LA(1) ) {
-            case 61:
+            case 62:
                 {
-                alt53=1;
-                }
-                break;
-            case 95:
-                {
-                alt53=2;
+                alt54=1;
                 }
                 break;
             case 96:
                 {
-                alt53=3;
+                alt54=2;
                 }
                 break;
             case 97:
                 {
-                alt53=4;
+                alt54=3;
+                }
+                break;
+            case 98:
+                {
+                alt54=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 53, 0, input);
+                    new NoViableAltException("", 54, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt53) {
+            switch (alt54) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4267:3: kw= '*'
+                    // InternalPerspectiveDsl.g:4286:3: kw= '*'
                     {
-                    kw=(Token)match(input,61,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);
@@ -12170,9 +12237,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4273:3: kw= '**'
+                    // InternalPerspectiveDsl.g:4292:3: kw= '**'
                     {
-                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12183,9 +12250,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:4279:3: kw= '/'
+                    // InternalPerspectiveDsl.g:4298:3: kw= '/'
                     {
-                    kw=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,97,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12196,9 +12263,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:4285:3: kw= '%'
+                    // InternalPerspectiveDsl.g:4304:3: kw= '%'
                     {
-                    kw=(Token)match(input,97,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);
@@ -12233,7 +12300,7 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalPerspectiveDsl.g:4294:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    // InternalPerspectiveDsl.g:4313:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
     public final EObject entryRuleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -12241,8 +12308,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4294:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
-            // InternalPerspectiveDsl.g:4295:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            // InternalPerspectiveDsl.g:4313:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // InternalPerspectiveDsl.g:4314:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
@@ -12273,7 +12340,7 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalPerspectiveDsl.g:4301:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    // InternalPerspectiveDsl.g:4320: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;
 
@@ -12286,35 +12353,35 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4307:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
-            // InternalPerspectiveDsl.g:4308:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            // InternalPerspectiveDsl.g:4326:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // InternalPerspectiveDsl.g:4327:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
             {
-            // InternalPerspectiveDsl.g:4308:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
-            int alt54=2;
-            int LA54_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4327:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            int alt55=2;
+            int LA55_0 = input.LA(1);
 
-            if ( ((LA54_0>=93 && LA54_0<=94)||LA54_0==98) ) {
-                alt54=1;
+            if ( ((LA55_0>=94 && LA55_0<=95)||LA55_0==99) ) {
+                alt55=1;
             }
-            else if ( ((LA54_0>=RULE_ID && LA54_0<=RULE_DECIMAL)||LA54_0==14||(LA54_0>=58 && LA54_0<=60)||LA54_0==65||(LA54_0>=69 && LA54_0<=70)||LA54_0==77||LA54_0==106||LA54_0==108||(LA54_0>=112 && LA54_0<=114)||(LA54_0>=117 && LA54_0<=126)||LA54_0==128) ) {
-                alt54=2;
+            else if ( ((LA55_0>=RULE_ID && LA55_0<=RULE_DECIMAL)||LA55_0==14||(LA55_0>=59 && LA55_0<=61)||LA55_0==66||(LA55_0>=70 && LA55_0<=71)||LA55_0==78||LA55_0==107||LA55_0==109||(LA55_0>=113 && LA55_0<=115)||(LA55_0>=118 && LA55_0<=127)||LA55_0==129) ) {
+                alt55=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 54, 0, input);
+                    new NoViableAltException("", 55, 0, input);
 
                 throw nvae;
             }
-            switch (alt54) {
+            switch (alt55) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4309:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalPerspectiveDsl.g:4328:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
                     {
-                    // InternalPerspectiveDsl.g:4309:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
-                    // InternalPerspectiveDsl.g:4310:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalPerspectiveDsl.g:4328:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalPerspectiveDsl.g:4329:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
                     {
-                    // InternalPerspectiveDsl.g:4310:4: ()
-                    // InternalPerspectiveDsl.g:4311:5: 
+                    // InternalPerspectiveDsl.g:4329:4: ()
+                    // InternalPerspectiveDsl.g:4330:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12326,11 +12393,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:4317:4: ( ( ruleOpUnary ) )
-                    // InternalPerspectiveDsl.g:4318:5: ( ruleOpUnary )
+                    // InternalPerspectiveDsl.g:4336:4: ( ( ruleOpUnary ) )
+                    // InternalPerspectiveDsl.g:4337:5: ( ruleOpUnary )
                     {
-                    // InternalPerspectiveDsl.g:4318:5: ( ruleOpUnary )
-                    // InternalPerspectiveDsl.g:4319:6: ruleOpUnary
+                    // InternalPerspectiveDsl.g:4337:5: ( ruleOpUnary )
+                    // InternalPerspectiveDsl.g:4338:6: ruleOpUnary
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12360,11 +12427,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:4333:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
-                    // InternalPerspectiveDsl.g:4334:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalPerspectiveDsl.g:4352:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalPerspectiveDsl.g:4353:5: (lv_operand_2_0= ruleXUnaryOperation )
                     {
-                    // InternalPerspectiveDsl.g:4334:5: (lv_operand_2_0= ruleXUnaryOperation )
-                    // InternalPerspectiveDsl.g:4335:6: lv_operand_2_0= ruleXUnaryOperation
+                    // InternalPerspectiveDsl.g:4353:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalPerspectiveDsl.g:4354:6: lv_operand_2_0= ruleXUnaryOperation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12402,7 +12469,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4354:3: this_XCastedExpression_3= ruleXCastedExpression
+                    // InternalPerspectiveDsl.g:4373:3: this_XCastedExpression_3= ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12448,7 +12515,7 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalPerspectiveDsl.g:4366:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    // InternalPerspectiveDsl.g:4385:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
     public final String entryRuleOpUnary() throws RecognitionException {
         String current = null;
 
@@ -12456,8 +12523,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4366:47: (iv_ruleOpUnary= ruleOpUnary EOF )
-            // InternalPerspectiveDsl.g:4367:2: iv_ruleOpUnary= ruleOpUnary EOF
+            // InternalPerspectiveDsl.g:4385:47: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // InternalPerspectiveDsl.g:4386:2: iv_ruleOpUnary= ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpUnaryRule()); 
@@ -12488,7 +12555,7 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalPerspectiveDsl.g:4373:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    // InternalPerspectiveDsl.g:4392:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
     public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -12498,40 +12565,40 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4379:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
-            // InternalPerspectiveDsl.g:4380:2: (kw= '!' | kw= '-' | kw= '+' )
+            // InternalPerspectiveDsl.g:4398:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // InternalPerspectiveDsl.g:4399:2: (kw= '!' | kw= '-' | kw= '+' )
             {
-            // InternalPerspectiveDsl.g:4380:2: (kw= '!' | kw= '-' | kw= '+' )
-            int alt55=3;
+            // InternalPerspectiveDsl.g:4399:2: (kw= '!' | kw= '-' | kw= '+' )
+            int alt56=3;
             switch ( input.LA(1) ) {
-            case 98:
+            case 99:
                 {
-                alt55=1;
+                alt56=1;
+                }
+                break;
+            case 95:
+                {
+                alt56=2;
                 }
                 break;
             case 94:
                 {
-                alt55=2;
-                }
-                break;
-            case 93:
-                {
-                alt55=3;
+                alt56=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 55, 0, input);
+                    new NoViableAltException("", 56, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt55) {
+            switch (alt56) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4381:3: kw= '!'
+                    // InternalPerspectiveDsl.g:4400:3: kw= '!'
                     {
-                    kw=(Token)match(input,98,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);
@@ -12542,9 +12609,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4387:3: kw= '-'
+                    // InternalPerspectiveDsl.g:4406:3: kw= '-'
                     {
-                    kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12555,9 +12622,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:4393:3: kw= '+'
+                    // InternalPerspectiveDsl.g:4412:3: kw= '+'
                     {
-                    kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12592,7 +12659,7 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalPerspectiveDsl.g:4402:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    // InternalPerspectiveDsl.g:4421:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
     public final EObject entryRuleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12600,8 +12667,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4402:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
-            // InternalPerspectiveDsl.g:4403:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            // InternalPerspectiveDsl.g:4421:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // InternalPerspectiveDsl.g:4422:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
@@ -12632,7 +12699,7 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalPerspectiveDsl.g:4409:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    // InternalPerspectiveDsl.g:4428: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;
 
@@ -12646,11 +12713,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4415:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
-            // InternalPerspectiveDsl.g:4416:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalPerspectiveDsl.g:4434:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // InternalPerspectiveDsl.g:4435:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
             {
-            // InternalPerspectiveDsl.g:4416:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
-            // InternalPerspectiveDsl.g:4417:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            // InternalPerspectiveDsl.g:4435:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalPerspectiveDsl.g:4436:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -12668,35 +12735,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:4425:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
-            loop56:
+            // InternalPerspectiveDsl.g:4444:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            loop57:
             do {
-                int alt56=2;
-                int LA56_0 = input.LA(1);
+                int alt57=2;
+                int LA57_0 = input.LA(1);
 
-                if ( (LA56_0==99) ) {
-                    int LA56_2 = input.LA(2);
+                if ( (LA57_0==100) ) {
+                    int LA57_2 = input.LA(2);
 
                     if ( (synpred18_InternalPerspectiveDsl()) ) {
-                        alt56=1;
+                        alt57=1;
                     }
 
 
                 }
 
 
-                switch (alt56) {
+                switch (alt57) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4426:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:4445:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4426:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
-            	    // InternalPerspectiveDsl.g:4427:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    // InternalPerspectiveDsl.g:4445:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // InternalPerspectiveDsl.g:4446:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
             	    {
-            	    // InternalPerspectiveDsl.g:4433:5: ( () otherlv_2= 'as' )
-            	    // InternalPerspectiveDsl.g:4434:6: () otherlv_2= 'as'
+            	    // InternalPerspectiveDsl.g:4452:5: ( () otherlv_2= 'as' )
+            	    // InternalPerspectiveDsl.g:4453:6: () otherlv_2= 'as'
             	    {
-            	    // InternalPerspectiveDsl.g:4434:6: ()
-            	    // InternalPerspectiveDsl.g:4435:7: 
+            	    // InternalPerspectiveDsl.g:4453:6: ()
+            	    // InternalPerspectiveDsl.g:4454:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12708,7 +12775,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,99,FOLLOW_53); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,100,FOLLOW_53); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
@@ -12720,11 +12787,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4447:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalPerspectiveDsl.g:4448:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:4466:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:4467:5: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalPerspectiveDsl.g:4448:5: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalPerspectiveDsl.g:4449:6: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalPerspectiveDsl.g:4467:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:4468:6: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12760,7 +12827,7 @@
             	    break;
 
             	default :
-            	    break loop56;
+            	    break loop57;
                 }
             } while (true);
 
@@ -12789,7 +12856,7 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalPerspectiveDsl.g:4471:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    // InternalPerspectiveDsl.g:4490:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
     public final EObject entryRuleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -12797,8 +12864,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4471:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
-            // InternalPerspectiveDsl.g:4472:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            // InternalPerspectiveDsl.g:4490:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // InternalPerspectiveDsl.g:4491:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
@@ -12829,7 +12896,7 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalPerspectiveDsl.g:4478:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    // InternalPerspectiveDsl.g:4497:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
     public final EObject ruleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -12840,11 +12907,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4484:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
-            // InternalPerspectiveDsl.g:4485:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalPerspectiveDsl.g:4503:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // InternalPerspectiveDsl.g:4504:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
             {
-            // InternalPerspectiveDsl.g:4485:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
-            // InternalPerspectiveDsl.g:4486:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            // InternalPerspectiveDsl.g:4504:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalPerspectiveDsl.g:4505:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
             {
             if ( state.backtracking==0 ) {
 
@@ -12862,33 +12929,33 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:4494:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
-            int alt57=2;
-            int LA57_0 = input.LA(1);
+            // InternalPerspectiveDsl.g:4513:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            int alt58=2;
+            int LA58_0 = input.LA(1);
 
-            if ( (LA57_0==100) ) {
-                int LA57_1 = input.LA(2);
+            if ( (LA58_0==101) ) {
+                int LA58_1 = input.LA(2);
 
                 if ( (synpred19_InternalPerspectiveDsl()) ) {
-                    alt57=1;
+                    alt58=1;
                 }
             }
-            else if ( (LA57_0==101) ) {
-                int LA57_2 = input.LA(2);
+            else if ( (LA58_0==102) ) {
+                int LA58_2 = input.LA(2);
 
                 if ( (synpred19_InternalPerspectiveDsl()) ) {
-                    alt57=1;
+                    alt58=1;
                 }
             }
-            switch (alt57) {
+            switch (alt58) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4495:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    // InternalPerspectiveDsl.g:4514:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
                     {
-                    // InternalPerspectiveDsl.g:4505:4: ( () ( ( ruleOpPostfix ) ) )
-                    // InternalPerspectiveDsl.g:4506:5: () ( ( ruleOpPostfix ) )
+                    // InternalPerspectiveDsl.g:4524:4: ( () ( ( ruleOpPostfix ) ) )
+                    // InternalPerspectiveDsl.g:4525:5: () ( ( ruleOpPostfix ) )
                     {
-                    // InternalPerspectiveDsl.g:4506:5: ()
-                    // InternalPerspectiveDsl.g:4507:6: 
+                    // InternalPerspectiveDsl.g:4525:5: ()
+                    // InternalPerspectiveDsl.g:4526:6: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12900,11 +12967,11 @@