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: ( () )
+