catch up with branch development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
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 99a4998..536cfa8 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
@@ -122,7 +122,6 @@
 					put(grammarAccess.getPerspectiveOrganizationAccess().getGroup(), "rule__PerspectiveOrganization__Group__0");
 					put(grammarAccess.getPerspectiveTopologyAccess().getGroup(), "rule__PerspectiveTopology__Group__0");
 					put(grammarAccess.getPerspectiveDialogAccess().getGroup(), "rule__PerspectiveDialog__Group__0");
-					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.getPerspectiveSearchAccess().getGroup(), "rule__PerspectiveSearch__Group__0");
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 991c762..95ca30d 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
@@ -488,31 +488,6 @@
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRulePerspectiveBPMN
-entryRulePerspectiveBPMN
-:
-{ before(grammarAccess.getPerspectiveBPMNRule()); }
-	 rulePerspectiveBPMN
-{ after(grammarAccess.getPerspectiveBPMNRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveBPMN
-rulePerspectiveBPMN 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getPerspectiveBPMNAccess().getGroup()); }
-		(rule__PerspectiveBPMN__Group__0)
-		{ after(grammarAccess.getPerspectiveBPMNAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Entry rule entryRulePerspectiveKanban
 entryRulePerspectiveKanban
 :
@@ -2807,39 +2782,33 @@
 	)
 	|
 	(
-		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_8()); }
-		rulePerspectiveBPMN
-		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_8()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_9()); }
+		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); }
 		rulePerspectiveGrid
-		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_9()); }
+		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_10()); }
+		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_9()); }
 		rulePerspectiveWelcome
-		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_10()); }
+		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_9()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_11()); }
+		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_10()); }
 		rulePerspectiveSearch
-		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_11()); }
+		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_10()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_12()); }
+		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_11()); }
 		rulePerspectiveDataInterchange
-		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_12()); }
+		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_11()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_13()); }
+		{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_12()); }
 		rulePerspectiveKanban
-		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_13()); }
+		{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_12()); }
 	)
 ;
 finally {
@@ -6653,60 +6622,6 @@
 }
 
 
-rule__PerspectiveBPMN__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__PerspectiveBPMN__Group__0__Impl
-	rule__PerspectiveBPMN__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveBPMN__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); }
-	()
-	{ after(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveBPMN__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__PerspectiveBPMN__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveBPMN__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); }
-	'bpmn'
-	{ after(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
 rule__PerspectiveKanban__Group__0
 	@init {
 		int stackSize = keepStackSize();
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 73490e3..cfb0c81 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
@@ -1,20 +1,20 @@
 '!'=40
 '!='=22
 '!=='=24
-'#'=94
+'#'=93
 '%'=39
 '%='=20
 '&&'=15
-'&'=117
-'('=90
-')'=91
+'&'=116
+'('=89
+')'=90
 '*'=36
 '**'=37
 '*='=18
 '+'=34
 '++'=41
 '+='=16
-','=92
+','=91
 '-'=35
 '--'=42
 '-='=17
@@ -24,9 +24,9 @@
 '..<'=29
 '/'=38
 '/='=19
-':'=101
-'::'=121
-';'=88
+':'=100
+'::'=120
+';'=87
 '<'=27
 '<>'=32
 '='=13
@@ -35,46 +35,45 @@
 '=>'=31
 '>'=26
 '>='=25
-'?'=116
-'?.'=122
+'?'=115
+'?.'=121
 '?:'=33
-'@'=89
-'['=95
-']'=93
+'@'=88
+'['=94
+']'=92
 'accessibility'=60
-'as'=97
+'as'=96
 'bean'=72
-'bpmn'=78
-'card'=81
-'case'=103
-'catch'=115
+'card'=80
+'case'=102
+'catch'=114
 'chart'=73
-'dataInterchange'=87
-'default'=102
-'depth'=85
-'describedBy'=118
+'dataInterchange'=86
+'default'=101
+'depth'=84
+'describedBy'=117
 'dialog'=77
-'do'=106
-'else'=99
+'do'=105
+'else'=98
 'extends'=45
 'extension'=48
 'false'=50
-'filterColumns'=86
-'finally'=113
-'for'=104
+'filterColumns'=85
+'finally'=112
+'for'=103
 'grid'=71
 'horizontal'=51
 'iconURI'=59
-'if'=98
+'if'=97
 'import'=47
-'in'=84
-'instanceof'=96
-'isClosable'=119
-'kanban'=79
-'new'=107
-'ns'=120
-'null'=108
-'of'=80
+'in'=83
+'instanceof'=95
+'isClosable'=118
+'kanban'=78
+'new'=106
+'ns'=119
+'null'=107
+'of'=79
 'organigram'=75
 'orientation'=63
 'package'=53
@@ -83,32 +82,32 @@
 'perspective'=56
 'process'=57
 'report'=74
-'return'=111
+'return'=110
 'sashContainer'=62
-'search'=83
+'search'=82
 'select'=69
 'selectedElement'=64
 'spaceVolume'=65
 'static'=46
 'super'=49
-'switch'=100
-'synchronized'=114
+'switch'=99
+'synchronized'=113
 'table'=70
-'throw'=110
+'throw'=109
 'toolbar'=61
 'topology'=76
-'true'=125
-'try'=112
-'typeof'=109
+'true'=124
+'try'=111
+'typeof'=108
 'usertask'=58
 'val'=44
-'var'=124
+'var'=123
 'vertical'=52
 'view'=68
-'welcome'=82
-'while'=105
+'welcome'=81
+'while'=104
 '{'=54
-'|'=123
+'|'=122
 '||'=14
 '}'=55
 RULE_ANY_OTHER=12
@@ -145,7 +144,6 @@
 T__122=122
 T__123=123
 T__124=124
-T__125=125
 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 a678ebe..c5f2088 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
@@ -34,7 +34,6 @@
     public static final int T__69=69;
     public static final int T__62=62;
     public static final int T__63=63;
-    public static final int T__125=125;
     public static final int T__64=64;
     public static final int T__65=65;
     public static final int T__37=37;
@@ -1507,10 +1506,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:76:7: ( 'bpmn' )
-            // InternalPerspectiveDsl.g:76:9: 'bpmn'
+            // InternalPerspectiveDsl.g:76:7: ( 'kanban' )
+            // InternalPerspectiveDsl.g:76:9: 'kanban'
             {
-            match("bpmn"); 
+            match("kanban"); 
 
 
             }
@@ -1528,10 +1527,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:77:7: ( 'kanban' )
-            // InternalPerspectiveDsl.g:77:9: 'kanban'
+            // InternalPerspectiveDsl.g:77:7: ( 'of' )
+            // InternalPerspectiveDsl.g:77:9: 'of'
             {
-            match("kanban"); 
+            match("of"); 
 
 
             }
@@ -1549,10 +1548,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:78:7: ( 'of' )
-            // InternalPerspectiveDsl.g:78:9: 'of'
+            // InternalPerspectiveDsl.g:78:7: ( 'card' )
+            // InternalPerspectiveDsl.g:78:9: 'card'
             {
-            match("of"); 
+            match("card"); 
 
 
             }
@@ -1570,10 +1569,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:79:7: ( 'card' )
-            // InternalPerspectiveDsl.g:79:9: 'card'
+            // InternalPerspectiveDsl.g:79:7: ( 'welcome' )
+            // InternalPerspectiveDsl.g:79:9: 'welcome'
             {
-            match("card"); 
+            match("welcome"); 
 
 
             }
@@ -1591,10 +1590,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:80:7: ( 'welcome' )
-            // InternalPerspectiveDsl.g:80:9: 'welcome'
+            // InternalPerspectiveDsl.g:80:7: ( 'search' )
+            // InternalPerspectiveDsl.g:80:9: 'search'
             {
-            match("welcome"); 
+            match("search"); 
 
 
             }
@@ -1612,10 +1611,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:81:7: ( 'search' )
-            // InternalPerspectiveDsl.g:81:9: 'search'
+            // InternalPerspectiveDsl.g:81:7: ( 'in' )
+            // InternalPerspectiveDsl.g:81:9: 'in'
             {
-            match("search"); 
+            match("in"); 
 
 
             }
@@ -1633,10 +1632,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:82:7: ( 'in' )
-            // InternalPerspectiveDsl.g:82:9: 'in'
+            // InternalPerspectiveDsl.g:82:7: ( 'depth' )
+            // InternalPerspectiveDsl.g:82:9: 'depth'
             {
-            match("in"); 
+            match("depth"); 
 
 
             }
@@ -1654,10 +1653,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:83:7: ( 'depth' )
-            // InternalPerspectiveDsl.g:83:9: 'depth'
+            // InternalPerspectiveDsl.g:83:7: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:83:9: 'filterColumns'
             {
-            match("depth"); 
+            match("filterColumns"); 
 
 
             }
@@ -1675,10 +1674,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:84:7: ( 'filterColumns' )
-            // InternalPerspectiveDsl.g:84:9: 'filterColumns'
+            // InternalPerspectiveDsl.g:84:7: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:84:9: 'dataInterchange'
             {
-            match("filterColumns"); 
+            match("dataInterchange"); 
 
 
             }
@@ -1696,11 +1695,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:85:7: ( 'dataInterchange' )
-            // InternalPerspectiveDsl.g:85:9: 'dataInterchange'
+            // InternalPerspectiveDsl.g:85:7: ( ';' )
+            // InternalPerspectiveDsl.g:85:9: ';'
             {
-            match("dataInterchange"); 
-
+            match(';'); 
 
             }
 
@@ -1717,10 +1715,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:86:7: ( ';' )
-            // InternalPerspectiveDsl.g:86:9: ';'
+            // InternalPerspectiveDsl.g:86:7: ( '@' )
+            // InternalPerspectiveDsl.g:86:9: '@'
             {
-            match(';'); 
+            match('@'); 
 
             }
 
@@ -1737,10 +1735,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:87:7: ( '@' )
-            // InternalPerspectiveDsl.g:87:9: '@'
+            // InternalPerspectiveDsl.g:87:7: ( '(' )
+            // InternalPerspectiveDsl.g:87:9: '('
             {
-            match('@'); 
+            match('('); 
 
             }
 
@@ -1757,10 +1755,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:88:7: ( '(' )
-            // InternalPerspectiveDsl.g:88:9: '('
+            // InternalPerspectiveDsl.g:88:7: ( ')' )
+            // InternalPerspectiveDsl.g:88:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -1777,10 +1775,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:89:7: ( ')' )
-            // InternalPerspectiveDsl.g:89:9: ')'
+            // InternalPerspectiveDsl.g:89:7: ( ',' )
+            // InternalPerspectiveDsl.g:89:9: ','
             {
-            match(')'); 
+            match(','); 
 
             }
 
@@ -1797,10 +1795,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:90:7: ( ',' )
-            // InternalPerspectiveDsl.g:90:9: ','
+            // InternalPerspectiveDsl.g:90:7: ( ']' )
+            // InternalPerspectiveDsl.g:90:9: ']'
             {
-            match(','); 
+            match(']'); 
 
             }
 
@@ -1817,10 +1815,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:91:7: ( ']' )
-            // InternalPerspectiveDsl.g:91:9: ']'
+            // InternalPerspectiveDsl.g:91:7: ( '#' )
+            // InternalPerspectiveDsl.g:91:9: '#'
             {
-            match(']'); 
+            match('#'); 
 
             }
 
@@ -1837,10 +1835,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:92:7: ( '#' )
-            // InternalPerspectiveDsl.g:92:9: '#'
+            // InternalPerspectiveDsl.g:92:7: ( '[' )
+            // InternalPerspectiveDsl.g:92:9: '['
             {
-            match('#'); 
+            match('['); 
 
             }
 
@@ -1857,10 +1855,11 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:93:7: ( '[' )
-            // InternalPerspectiveDsl.g:93:9: '['
+            // InternalPerspectiveDsl.g:93:7: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:93:9: 'instanceof'
             {
-            match('['); 
+            match("instanceof"); 
+
 
             }
 
@@ -1877,10 +1876,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:94:7: ( 'instanceof' )
-            // InternalPerspectiveDsl.g:94:9: 'instanceof'
+            // InternalPerspectiveDsl.g:94:7: ( 'as' )
+            // InternalPerspectiveDsl.g:94:9: 'as'
             {
-            match("instanceof"); 
+            match("as"); 
 
 
             }
@@ -1898,10 +1897,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:95:7: ( 'as' )
-            // InternalPerspectiveDsl.g:95:9: 'as'
+            // InternalPerspectiveDsl.g:95:7: ( 'if' )
+            // InternalPerspectiveDsl.g:95:9: 'if'
             {
-            match("as"); 
+            match("if"); 
 
 
             }
@@ -1919,10 +1918,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:96:7: ( 'if' )
-            // InternalPerspectiveDsl.g:96:9: 'if'
+            // InternalPerspectiveDsl.g:96:7: ( 'else' )
+            // InternalPerspectiveDsl.g:96:9: 'else'
             {
-            match("if"); 
+            match("else"); 
 
 
             }
@@ -1940,10 +1939,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:97:7: ( 'else' )
-            // InternalPerspectiveDsl.g:97:9: 'else'
+            // InternalPerspectiveDsl.g:97:7: ( 'switch' )
+            // InternalPerspectiveDsl.g:97:9: 'switch'
             {
-            match("else"); 
+            match("switch"); 
 
 
             }
@@ -1961,11 +1960,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:98:8: ( 'switch' )
-            // InternalPerspectiveDsl.g:98:10: 'switch'
+            // InternalPerspectiveDsl.g:98:8: ( ':' )
+            // InternalPerspectiveDsl.g:98:10: ':'
             {
-            match("switch"); 
-
+            match(':'); 
 
             }
 
@@ -1982,10 +1980,11 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:99:8: ( ':' )
-            // InternalPerspectiveDsl.g:99:10: ':'
+            // InternalPerspectiveDsl.g:99:8: ( 'default' )
+            // InternalPerspectiveDsl.g:99:10: 'default'
             {
-            match(':'); 
+            match("default"); 
+
 
             }
 
@@ -2002,10 +2001,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:100:8: ( 'default' )
-            // InternalPerspectiveDsl.g:100:10: 'default'
+            // InternalPerspectiveDsl.g:100:8: ( 'case' )
+            // InternalPerspectiveDsl.g:100:10: 'case'
             {
-            match("default"); 
+            match("case"); 
 
 
             }
@@ -2023,10 +2022,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:101:8: ( 'case' )
-            // InternalPerspectiveDsl.g:101:10: 'case'
+            // InternalPerspectiveDsl.g:101:8: ( 'for' )
+            // InternalPerspectiveDsl.g:101:10: 'for'
             {
-            match("case"); 
+            match("for"); 
 
 
             }
@@ -2044,10 +2043,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:102:8: ( 'for' )
-            // InternalPerspectiveDsl.g:102:10: 'for'
+            // InternalPerspectiveDsl.g:102:8: ( 'while' )
+            // InternalPerspectiveDsl.g:102:10: 'while'
             {
-            match("for"); 
+            match("while"); 
 
 
             }
@@ -2065,10 +2064,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:103:8: ( 'while' )
-            // InternalPerspectiveDsl.g:103:10: 'while'
+            // InternalPerspectiveDsl.g:103:8: ( 'do' )
+            // InternalPerspectiveDsl.g:103:10: 'do'
             {
-            match("while"); 
+            match("do"); 
 
 
             }
@@ -2086,10 +2085,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:104:8: ( 'do' )
-            // InternalPerspectiveDsl.g:104:10: 'do'
+            // InternalPerspectiveDsl.g:104:8: ( 'new' )
+            // InternalPerspectiveDsl.g:104:10: 'new'
             {
-            match("do"); 
+            match("new"); 
 
 
             }
@@ -2107,10 +2106,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:105:8: ( 'new' )
-            // InternalPerspectiveDsl.g:105:10: 'new'
+            // InternalPerspectiveDsl.g:105:8: ( 'null' )
+            // InternalPerspectiveDsl.g:105:10: 'null'
             {
-            match("new"); 
+            match("null"); 
 
 
             }
@@ -2128,10 +2127,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:106:8: ( 'null' )
-            // InternalPerspectiveDsl.g:106:10: 'null'
+            // InternalPerspectiveDsl.g:106:8: ( 'typeof' )
+            // InternalPerspectiveDsl.g:106:10: 'typeof'
             {
-            match("null"); 
+            match("typeof"); 
 
 
             }
@@ -2149,10 +2148,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:107:8: ( 'typeof' )
-            // InternalPerspectiveDsl.g:107:10: 'typeof'
+            // InternalPerspectiveDsl.g:107:8: ( 'throw' )
+            // InternalPerspectiveDsl.g:107:10: 'throw'
             {
-            match("typeof"); 
+            match("throw"); 
 
 
             }
@@ -2170,10 +2169,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:108:8: ( 'throw' )
-            // InternalPerspectiveDsl.g:108:10: 'throw'
+            // InternalPerspectiveDsl.g:108:8: ( 'return' )
+            // InternalPerspectiveDsl.g:108:10: 'return'
             {
-            match("throw"); 
+            match("return"); 
 
 
             }
@@ -2191,10 +2190,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:109:8: ( 'return' )
-            // InternalPerspectiveDsl.g:109:10: 'return'
+            // InternalPerspectiveDsl.g:109:8: ( 'try' )
+            // InternalPerspectiveDsl.g:109:10: 'try'
             {
-            match("return"); 
+            match("try"); 
 
 
             }
@@ -2212,10 +2211,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:110:8: ( 'try' )
-            // InternalPerspectiveDsl.g:110:10: 'try'
+            // InternalPerspectiveDsl.g:110:8: ( 'finally' )
+            // InternalPerspectiveDsl.g:110:10: 'finally'
             {
-            match("try"); 
+            match("finally"); 
 
 
             }
@@ -2233,10 +2232,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:111:8: ( 'finally' )
-            // InternalPerspectiveDsl.g:111:10: 'finally'
+            // InternalPerspectiveDsl.g:111:8: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:111:10: 'synchronized'
             {
-            match("finally"); 
+            match("synchronized"); 
 
 
             }
@@ -2254,10 +2253,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:112:8: ( 'synchronized' )
-            // InternalPerspectiveDsl.g:112:10: 'synchronized'
+            // InternalPerspectiveDsl.g:112:8: ( 'catch' )
+            // InternalPerspectiveDsl.g:112:10: 'catch'
             {
-            match("synchronized"); 
+            match("catch"); 
 
 
             }
@@ -2275,11 +2274,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:113:8: ( 'catch' )
-            // InternalPerspectiveDsl.g:113:10: 'catch'
+            // InternalPerspectiveDsl.g:113:8: ( '?' )
+            // InternalPerspectiveDsl.g:113:10: '?'
             {
-            match("catch"); 
-
+            match('?'); 
 
             }
 
@@ -2296,10 +2294,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:114:8: ( '?' )
-            // InternalPerspectiveDsl.g:114:10: '?'
+            // InternalPerspectiveDsl.g:114:8: ( '&' )
+            // InternalPerspectiveDsl.g:114:10: '&'
             {
-            match('?'); 
+            match('&'); 
 
             }
 
@@ -2316,10 +2314,11 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:115:8: ( '&' )
-            // InternalPerspectiveDsl.g:115:10: '&'
+            // InternalPerspectiveDsl.g:115:8: ( 'describedBy' )
+            // InternalPerspectiveDsl.g:115:10: 'describedBy'
             {
-            match('&'); 
+            match("describedBy"); 
+
 
             }
 
@@ -2336,10 +2335,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:116:8: ( 'describedBy' )
-            // InternalPerspectiveDsl.g:116:10: 'describedBy'
+            // InternalPerspectiveDsl.g:116:8: ( 'isClosable' )
+            // InternalPerspectiveDsl.g:116:10: 'isClosable'
             {
-            match("describedBy"); 
+            match("isClosable"); 
 
 
             }
@@ -2357,10 +2356,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:117:8: ( 'isClosable' )
-            // InternalPerspectiveDsl.g:117:10: 'isClosable'
+            // InternalPerspectiveDsl.g:117:8: ( 'ns' )
+            // InternalPerspectiveDsl.g:117:10: 'ns'
             {
-            match("isClosable"); 
+            match("ns"); 
 
 
             }
@@ -2378,10 +2377,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:118:8: ( 'ns' )
-            // InternalPerspectiveDsl.g:118:10: 'ns'
+            // InternalPerspectiveDsl.g:118:8: ( '::' )
+            // InternalPerspectiveDsl.g:118:10: '::'
             {
-            match("ns"); 
+            match("::"); 
 
 
             }
@@ -2399,10 +2398,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:119:8: ( '::' )
-            // InternalPerspectiveDsl.g:119:10: '::'
+            // InternalPerspectiveDsl.g:119:8: ( '?.' )
+            // InternalPerspectiveDsl.g:119:10: '?.'
             {
-            match("::"); 
+            match("?."); 
 
 
             }
@@ -2420,11 +2419,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:120:8: ( '?.' )
-            // InternalPerspectiveDsl.g:120:10: '?.'
+            // InternalPerspectiveDsl.g:120:8: ( '|' )
+            // InternalPerspectiveDsl.g:120:10: '|'
             {
-            match("?."); 
-
+            match('|'); 
 
             }
 
@@ -2441,10 +2439,11 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:121:8: ( '|' )
-            // InternalPerspectiveDsl.g:121:10: '|'
+            // InternalPerspectiveDsl.g:121:8: ( 'var' )
+            // InternalPerspectiveDsl.g:121:10: 'var'
             {
-            match('|'); 
+            match("var"); 
+
 
             }
 
@@ -2461,29 +2460,8 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:122:8: ( 'var' )
-            // InternalPerspectiveDsl.g:122:10: 'var'
-            {
-            match("var"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__124"
-
-    // $ANTLR start "T__125"
-    public final void mT__125() throws RecognitionException {
-        try {
-            int _type = T__125;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:123:8: ( 'true' )
-            // InternalPerspectiveDsl.g:123:10: 'true'
+            // InternalPerspectiveDsl.g:122:8: ( 'true' )
+            // InternalPerspectiveDsl.g:122:10: 'true'
             {
             match("true"); 
 
@@ -2496,17 +2474,17 @@
         finally {
         }
     }
-    // $ANTLR end "T__125"
+    // $ANTLR end "T__124"
 
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24060:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalPerspectiveDsl.g:24060:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:23975:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalPerspectiveDsl.g:23975:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalPerspectiveDsl.g:24060:12: ( '0x' | '0X' )
+            // InternalPerspectiveDsl.g:23975:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2534,7 +2512,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24060:13: '0x'
+                    // InternalPerspectiveDsl.g:23975:13: '0x'
                     {
                     match("0x"); 
 
@@ -2542,7 +2520,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24060:18: '0X'
+                    // InternalPerspectiveDsl.g:23975:18: '0X'
                     {
                     match("0X"); 
 
@@ -2552,7 +2530,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:24060:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalPerspectiveDsl.g:23975:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2590,7 +2568,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalPerspectiveDsl.g:24060:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:23975:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2599,10 +2577,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24060:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:23975:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalPerspectiveDsl.g:24060:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:23975:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2620,7 +2598,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24060:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalPerspectiveDsl.g:23975:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2644,7 +2622,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:24060:84: ( 'l' | 'L' )
+                            // InternalPerspectiveDsl.g:23975:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2683,11 +2661,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24062:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalPerspectiveDsl.g:24062:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:23977:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalPerspectiveDsl.g:23977:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalPerspectiveDsl.g:24062:21: ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:23977:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2736,11 +2714,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24064:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalPerspectiveDsl.g:24064:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:23979:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalPerspectiveDsl.g:23979:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalPerspectiveDsl.g:24064:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalPerspectiveDsl.g:23979:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2749,7 +2727,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24064:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalPerspectiveDsl.g:23979:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2760,7 +2738,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalPerspectiveDsl.g:24064:36: ( '+' | '-' )?
+                    // InternalPerspectiveDsl.g:23979:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2793,7 +2771,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:24064:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:23979:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2805,7 +2783,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24064:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalPerspectiveDsl.g:23979:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2829,7 +2807,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24064:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalPerspectiveDsl.g:23979: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();
@@ -2862,10 +2840,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24066:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalPerspectiveDsl.g:24066:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:23981:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalPerspectiveDsl.g:23981:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalPerspectiveDsl.g:24066:11: ( '^' )?
+            // InternalPerspectiveDsl.g:23981:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -2874,7 +2852,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24066:11: '^'
+                    // InternalPerspectiveDsl.g:23981:11: '^'
                     {
                     match('^'); 
 
@@ -2892,7 +2870,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalPerspectiveDsl.g:24066:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:23981:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -2941,10 +2919,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24068:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalPerspectiveDsl.g:24068:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:23983:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalPerspectiveDsl.g:23983:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalPerspectiveDsl.g:24068:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:23983:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2962,10 +2940,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24068:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalPerspectiveDsl.g:23983:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalPerspectiveDsl.g:24068:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalPerspectiveDsl.g:23983:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -2981,7 +2959,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:24068:21: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:23983:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2989,7 +2967,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:24068:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalPerspectiveDsl.g:23983:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3009,7 +2987,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:24068:44: ( '\"' )?
+                    // InternalPerspectiveDsl.g:23983:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3018,7 +2996,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24068:44: '\"'
+                            // InternalPerspectiveDsl.g:23983:44: '\"'
                             {
                             match('\"'); 
 
@@ -3031,10 +3009,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24068:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalPerspectiveDsl.g:23983:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalPerspectiveDsl.g:24068:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalPerspectiveDsl.g:23983:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3050,7 +3028,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:24068:55: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:23983:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3058,7 +3036,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:24068:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalPerspectiveDsl.g:23983:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3078,7 +3056,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:24068:79: ( '\\'' )?
+                    // InternalPerspectiveDsl.g:23983:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3087,7 +3065,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24068:79: '\\''
+                            // InternalPerspectiveDsl.g:23983:79: '\\''
                             {
                             match('\''); 
 
@@ -3118,12 +3096,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24070:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalPerspectiveDsl.g:24070:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalPerspectiveDsl.g:23985:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalPerspectiveDsl.g:23985:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalPerspectiveDsl.g:24070:24: ( options {greedy=false; } : . )*
+            // InternalPerspectiveDsl.g:23985:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3148,7 +3126,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:24070:52: .
+            	    // InternalPerspectiveDsl.g:23985:52: .
             	    {
             	    matchAny(); 
 
@@ -3178,12 +3156,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24072:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalPerspectiveDsl.g:24072:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:23987:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalPerspectiveDsl.g:23987:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalPerspectiveDsl.g:24072:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalPerspectiveDsl.g:23987:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3196,7 +3174,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:24072:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalPerspectiveDsl.g:23987: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();
@@ -3216,7 +3194,7 @@
                 }
             } while (true);
 
-            // InternalPerspectiveDsl.g:24072:40: ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:23987:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3225,9 +3203,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24072:41: ( '\\r' )? '\\n'
+                    // InternalPerspectiveDsl.g:23987:41: ( '\\r' )? '\\n'
                     {
-                    // InternalPerspectiveDsl.g:24072:41: ( '\\r' )?
+                    // InternalPerspectiveDsl.g:23987:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3236,7 +3214,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24072:41: '\\r'
+                            // InternalPerspectiveDsl.g:23987:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3268,10 +3246,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24074:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalPerspectiveDsl.g:24074:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:23989:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalPerspectiveDsl.g:23989:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalPerspectiveDsl.g:24074:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:23989:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3325,8 +3303,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24076:16: ( . )
-            // InternalPerspectiveDsl.g:24076:18: .
+            // InternalPerspectiveDsl.g:23991:16: ( . )
+            // InternalPerspectiveDsl.g:23991:18: .
             {
             matchAny(); 
 
@@ -3341,8 +3319,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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=122;
+        // 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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=121;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -4130,70 +4108,63 @@
                 }
                 break;
             case 113 :
-                // InternalPerspectiveDsl.g:1:707: T__125
-                {
-                mT__125(); 
-
-                }
-                break;
-            case 114 :
-                // InternalPerspectiveDsl.g:1:714: RULE_HEX
+                // InternalPerspectiveDsl.g:1:707: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 115 :
-                // InternalPerspectiveDsl.g:1:723: RULE_INT
+            case 114 :
+                // InternalPerspectiveDsl.g:1:716: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 116 :
-                // InternalPerspectiveDsl.g:1:732: RULE_DECIMAL
+            case 115 :
+                // InternalPerspectiveDsl.g:1:725: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 117 :
-                // InternalPerspectiveDsl.g:1:745: RULE_ID
+            case 116 :
+                // InternalPerspectiveDsl.g:1:738: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 118 :
-                // InternalPerspectiveDsl.g:1:753: RULE_STRING
+            case 117 :
+                // InternalPerspectiveDsl.g:1:746: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 119 :
-                // InternalPerspectiveDsl.g:1:765: RULE_ML_COMMENT
+            case 118 :
+                // InternalPerspectiveDsl.g:1:758: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 120 :
-                // InternalPerspectiveDsl.g:1:781: RULE_SL_COMMENT
+            case 119 :
+                // InternalPerspectiveDsl.g:1:774: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 121 :
-                // InternalPerspectiveDsl.g:1:797: RULE_WS
+            case 120 :
+                // InternalPerspectiveDsl.g:1:790: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 122 :
-                // InternalPerspectiveDsl.g:1:805: RULE_ANY_OTHER
+            case 121 :
+                // InternalPerspectiveDsl.g:1:798: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -4207,17 +4178,17 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\66\1\70\1\72\1\75\1\101\1\104\1\110\1\112\1\114\1\116\1\120\1\122\1\125\7\131\2\uffff\13\131\10\uffff\1\u0091\1\131\2\u0097\1\63\5\uffff\1\u009c\26\uffff\1\u009e\5\uffff\1\u00a0\4\uffff\3\131\1\uffff\13\131\1\u00b2\1\u00b3\10\131\2\uffff\2\131\1\u00c0\6\131\1\u00ca\11\131\1\u00d9\3\131\12\uffff\2\131\1\u00df\1\uffff\1\u0097\12\uffff\1\u00e0\1\u00e1\17\131\2\uffff\4\131\1\u00f5\7\131\1\uffff\5\131\1\u0102\3\131\1\uffff\16\131\1\uffff\3\131\1\u0117\1\131\3\uffff\1\131\1\u011a\1\131\1\u011c\17\131\1\uffff\2\131\1\u012f\11\131\1\uffff\1\u0139\2\131\1\u013c\1\u013d\1\u013e\1\131\1\u0140\1\u0141\13\131\1\uffff\1\u014d\1\131\1\uffff\1\131\1\uffff\1\131\1\u0152\12\131\1\u015d\5\131\1\uffff\6\131\1\u0169\1\131\1\u016b\1\uffff\2\131\3\uffff\1\u016e\2\uffff\1\u016f\3\131\1\u0173\5\131\1\u0179\1\uffff\3\131\1\u017d\1\uffff\1\131\1\u0180\1\u0181\1\131\1\u0183\1\131\1\u0185\3\131\1\uffff\13\131\1\uffff\1\u0194\1\uffff\2\131\2\uffff\1\u0197\1\u0198\1\u0199\1\uffff\3\131\1\u019d\1\131\1\uffff\1\131\1\u01a0\1\131\1\uffff\2\131\2\uffff\1\131\1\uffff\1\131\1\uffff\1\u01a6\3\131\1\u01aa\1\131\1\u01ac\2\131\1\u01af\2\131\1\u01b2\1\131\1\uffff\2\131\3\uffff\1\u01b6\2\131\1\uffff\1\u01b9\1\u01ba\1\uffff\5\131\1\uffff\3\131\1\uffff\1\131\1\uffff\2\131\1\uffff\1\u01c6\1\131\1\uffff\1\u01c8\2\131\1\uffff\2\131\2\uffff\1\u01cd\10\131\1\u01d6\1\131\1\uffff\1\131\1\uffff\4\131\1\uffff\4\131\1\u01e1\1\u01e2\1\131\1\u01e4\1\uffff\3\131\1\u01e8\4\131\1\u01ed\1\131\2\uffff\1\131\1\uffff\1\u01f0\1\131\1\u01f2\1\uffff\1\u01f3\3\131\1\uffff\1\u01f7\1\131\1\uffff\1\131\2\uffff\1\131\1\u01fb\1\131\1\uffff\1\u01fd\1\u01fe\1\131\1\uffff\1\131\2\uffff\1\131\1\u0202\1\u0203\2\uffff";
+        "\1\uffff\1\66\1\70\1\72\1\75\1\101\1\104\1\110\1\112\1\114\1\116\1\120\1\122\1\125\7\131\2\uffff\13\131\10\uffff\1\u0090\1\131\2\u0096\1\63\5\uffff\1\u009b\26\uffff\1\u009d\5\uffff\1\u009f\4\uffff\3\131\1\uffff\13\131\1\u00b1\1\u00b2\10\131\2\uffff\2\131\1\u00bf\6\131\1\u00c9\10\131\1\u00d7\3\131\12\uffff\2\131\1\u00dd\1\uffff\1\u0096\12\uffff\1\u00de\1\u00df\17\131\2\uffff\4\131\1\u00f3\7\131\1\uffff\5\131\1\u0100\3\131\1\uffff\15\131\1\uffff\3\131\1\u0114\1\131\3\uffff\1\131\1\u0117\1\131\1\u0119\17\131\1\uffff\2\131\1\u012c\11\131\1\uffff\1\u0136\2\131\1\u0139\1\u013a\1\131\1\u013c\1\u013d\13\131\1\uffff\1\u0149\1\131\1\uffff\1\131\1\uffff\1\131\1\u014e\12\131\1\u0159\5\131\1\uffff\6\131\1\u0165\1\131\1\u0167\1\uffff\2\131\2\uffff\1\u016a\2\uffff\1\u016b\3\131\1\u016f\5\131\1\u0175\1\uffff\3\131\1\u0179\1\uffff\1\131\1\u017c\1\u017d\1\131\1\u017f\1\131\1\u0181\3\131\1\uffff\13\131\1\uffff\1\u0190\1\uffff\2\131\2\uffff\1\u0193\1\u0194\1\u0195\1\uffff\3\131\1\u0199\1\131\1\uffff\1\131\1\u019c\1\131\1\uffff\2\131\2\uffff\1\131\1\uffff\1\131\1\uffff\1\u01a2\3\131\1\u01a6\1\131\1\u01a8\2\131\1\u01ab\2\131\1\u01ae\1\131\1\uffff\2\131\3\uffff\1\u01b2\2\131\1\uffff\1\u01b5\1\u01b6\1\uffff\5\131\1\uffff\3\131\1\uffff\1\131\1\uffff\2\131\1\uffff\1\u01c2\1\131\1\uffff\1\u01c4\2\131\1\uffff\2\131\2\uffff\1\u01c9\10\131\1\u01d2\1\131\1\uffff\1\131\1\uffff\4\131\1\uffff\4\131\1\u01dd\1\u01de\1\131\1\u01e0\1\uffff\3\131\1\u01e4\4\131\1\u01e9\1\131\2\uffff\1\131\1\uffff\1\u01ec\1\131\1\u01ee\1\uffff\1\u01ef\3\131\1\uffff\1\u01f3\1\131\1\uffff\1\131\2\uffff\1\131\1\u01f7\1\131\1\uffff\1\u01f9\1\u01fa\1\131\1\uffff\1\131\2\uffff\1\131\1\u01fe\1\u01ff\2\uffff";
     static final String DFA21_eofS =
-        "\u0204\uffff";
+        "\u0200\uffff";
     static final String DFA21_minS =
-        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\154\1\141\1\143\1\141\1\157\1\141\2\uffff\1\163\1\143\1\141\1\146\1\162\1\145\1\141\1\145\2\141\1\145\10\uffff\1\72\1\145\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\163\1\141\1\160\1\163\2\141\1\151\1\156\1\160\1\157\2\44\1\103\2\154\2\162\1\143\1\162\1\157\2\uffff\1\145\1\143\1\44\1\157\1\142\1\160\1\162\1\165\1\147\1\44\1\151\1\141\1\155\1\141\1\162\1\160\1\141\1\146\1\164\1\44\1\156\1\154\1\151\12\uffff\1\167\1\154\1\44\1\uffff\1\60\12\uffff\2\44\1\164\1\167\2\145\1\164\1\145\1\150\1\145\1\162\1\143\1\164\1\143\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\145\1\uffff\1\154\1\157\1\154\1\145\1\157\1\44\2\145\1\141\1\uffff\1\144\2\156\1\162\1\144\1\145\1\143\1\157\1\165\1\154\1\164\1\141\1\143\1\141\1\uffff\1\142\1\143\1\154\1\44\1\154\3\uffff\1\151\1\44\1\156\1\44\1\151\1\162\1\103\2\143\1\145\1\143\1\150\1\162\1\125\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\44\1\160\1\145\1\164\1\163\1\142\1\154\1\145\1\157\1\167\1\uffff\1\44\2\156\3\44\1\164\2\44\1\150\2\162\1\157\1\150\1\165\1\162\1\111\1\141\1\157\1\145\1\uffff\1\44\1\143\1\uffff\1\144\1\uffff\1\143\1\44\1\157\1\164\1\150\1\126\1\150\1\162\1\164\1\122\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\141\1\157\1\44\1\146\1\44\1\uffff\1\164\1\151\3\uffff\1\44\2\uffff\1\44\1\164\1\156\1\147\1\44\1\154\1\151\2\156\1\155\1\44\1\uffff\1\141\1\163\1\151\1\44\1\uffff\1\156\2\44\1\157\1\44\1\157\1\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\162\1\147\1\uffff\1\44\1\uffff\1\141\1\147\2\uffff\3\44\1\uffff\1\164\1\142\1\164\1\44\1\145\1\uffff\1\154\1\44\1\157\1\uffff\1\164\1\144\2\uffff\1\154\1\uffff\1\156\1\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\44\1\171\1\uffff\1\164\1\162\3\uffff\1\44\2\145\1\uffff\2\44\1\uffff\1\156\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\uffff\1\44\1\151\1\141\1\uffff\1\144\1\162\2\uffff\1\44\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\uffff\1\157\1\155\1\102\1\143\1\uffff\1\156\3\145\2\44\1\155\1\44\1\uffff\1\145\1\151\1\156\1\44\1\171\1\150\1\145\1\155\1\44\1\144\2\uffff\1\156\1\uffff\1\44\1\164\1\44\1\uffff\1\44\1\141\1\162\1\145\1\uffff\1\44\1\163\1\uffff\1\171\2\uffff\1\156\1\44\1\156\1\uffff\2\44\1\147\1\uffff\1\164\2\uffff\1\145\2\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\154\1\141\1\143\1\141\1\157\1\141\2\uffff\1\163\1\143\1\141\1\146\1\162\1\145\1\141\1\145\2\141\1\145\10\uffff\1\72\1\145\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\163\1\141\1\160\1\163\2\141\1\151\1\156\1\160\1\157\2\44\1\103\2\154\2\162\1\143\1\162\1\157\2\uffff\1\145\1\143\1\44\1\157\1\142\1\160\1\162\1\165\1\147\1\44\1\151\2\141\1\162\1\160\1\141\1\146\1\164\1\44\1\156\1\154\1\151\12\uffff\1\167\1\154\1\44\1\uffff\1\60\12\uffff\2\44\1\164\1\167\2\145\1\164\1\145\1\150\1\145\1\162\1\143\1\164\1\143\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\145\1\uffff\1\154\1\157\1\154\1\145\1\157\1\44\2\145\1\141\1\uffff\1\144\1\156\1\162\1\144\1\145\1\143\1\157\1\165\1\154\1\164\1\141\1\143\1\141\1\uffff\1\142\1\143\1\154\1\44\1\154\3\uffff\1\151\1\44\1\156\1\44\1\151\1\162\1\103\2\143\1\145\1\143\1\150\1\162\1\125\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\44\1\160\1\145\1\164\1\163\1\142\1\154\1\145\1\157\1\167\1\uffff\1\44\2\156\2\44\1\164\2\44\1\150\2\162\1\157\1\150\1\165\1\162\1\111\1\141\1\157\1\145\1\uffff\1\44\1\143\1\uffff\1\144\1\uffff\1\143\1\44\1\157\1\164\1\150\1\126\1\150\1\162\1\164\1\122\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\141\1\157\1\44\1\146\1\44\1\uffff\1\164\1\151\2\uffff\1\44\2\uffff\1\44\1\164\1\156\1\147\1\44\1\154\1\151\2\156\1\155\1\44\1\uffff\1\141\1\163\1\151\1\44\1\uffff\1\156\2\44\1\157\1\44\1\157\1\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\162\1\147\1\uffff\1\44\1\uffff\1\141\1\147\2\uffff\3\44\1\uffff\1\164\1\142\1\164\1\44\1\145\1\uffff\1\154\1\44\1\157\1\uffff\1\164\1\144\2\uffff\1\154\1\uffff\1\156\1\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\44\1\171\1\uffff\1\164\1\162\3\uffff\1\44\2\145\1\uffff\2\44\1\uffff\1\156\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\uffff\1\44\1\151\1\141\1\uffff\1\144\1\162\2\uffff\1\44\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\uffff\1\157\1\155\1\102\1\143\1\uffff\1\156\3\145\2\44\1\155\1\44\1\uffff\1\145\1\151\1\156\1\44\1\171\1\150\1\145\1\155\1\44\1\144\2\uffff\1\156\1\uffff\1\44\1\164\1\44\1\uffff\1\44\1\141\1\162\1\145\1\uffff\1\44\1\163\1\uffff\1\171\2\uffff\1\156\1\44\1\156\1\uffff\2\44\1\147\1\uffff\1\164\2\uffff\1\145\2\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\2\162\1\160\1\150\1\145\1\157\1\141\1\150\10\uffff\1\72\1\165\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\163\1\141\1\160\1\163\1\154\1\141\1\151\1\156\1\160\1\157\2\172\1\103\1\154\1\156\4\162\1\157\2\uffff\1\145\1\143\1\172\1\160\1\142\1\160\1\162\1\171\1\151\1\172\1\151\1\141\1\155\1\141\2\164\1\141\1\163\1\164\1\172\1\156\1\154\1\151\12\uffff\1\167\1\154\1\172\1\uffff\1\154\12\uffff\2\172\1\164\1\167\2\145\1\164\1\145\1\150\1\145\1\162\1\143\1\164\1\143\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\145\1\uffff\1\154\1\157\1\154\1\145\1\157\1\172\2\145\1\141\1\uffff\1\144\2\156\1\162\1\144\1\145\1\143\1\157\1\165\1\154\1\164\1\141\1\143\1\141\1\uffff\1\142\1\143\1\154\1\172\1\154\3\uffff\1\151\1\172\1\156\1\172\1\151\1\162\1\103\2\143\1\145\1\143\1\150\1\162\1\125\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\172\1\160\1\145\1\164\1\163\1\142\1\154\1\145\1\157\1\167\1\uffff\1\172\2\156\3\172\1\164\2\172\1\150\2\162\1\157\1\150\1\165\1\162\1\111\1\141\1\157\1\145\1\uffff\1\172\1\143\1\uffff\1\163\1\uffff\1\143\1\172\1\157\1\164\1\150\1\126\1\150\1\162\1\164\1\122\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\141\1\157\1\172\1\146\1\172\1\uffff\1\164\1\151\3\uffff\1\172\2\uffff\1\172\1\164\1\156\1\147\1\172\1\154\1\151\2\156\1\155\1\172\1\uffff\1\141\1\163\1\151\1\172\1\uffff\1\156\2\172\1\157\1\172\1\157\1\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\162\1\147\1\uffff\1\172\1\uffff\1\141\1\147\2\uffff\3\172\1\uffff\1\164\1\142\1\164\1\172\1\145\1\uffff\1\154\1\172\1\157\1\uffff\1\164\1\144\2\uffff\1\154\1\uffff\1\156\1\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\172\1\171\1\uffff\1\164\1\162\3\uffff\1\172\2\145\1\uffff\2\172\1\uffff\1\156\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\uffff\1\172\1\151\1\141\1\uffff\1\144\1\162\2\uffff\1\172\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\uffff\1\157\1\155\1\102\1\143\1\uffff\1\156\3\145\2\172\1\155\1\172\1\uffff\1\145\1\151\1\156\1\172\1\171\1\150\1\145\1\155\1\172\1\144\2\uffff\1\156\1\uffff\1\172\1\164\1\172\1\uffff\1\172\1\141\1\162\1\145\1\uffff\1\172\1\163\1\uffff\1\171\2\uffff\1\156\1\172\1\156\1\uffff\2\172\1\147\1\uffff\1\164\2\uffff\1\145\2\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\2\162\1\145\1\150\1\145\1\157\1\141\1\150\10\uffff\1\72\1\165\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\163\1\141\1\160\1\163\1\154\1\141\1\151\1\156\1\160\1\157\2\172\1\103\1\154\1\156\4\162\1\157\2\uffff\1\145\1\143\1\172\1\160\1\142\1\160\1\162\1\171\1\151\1\172\1\151\2\141\2\164\1\141\1\163\1\164\1\172\1\156\1\154\1\151\12\uffff\1\167\1\154\1\172\1\uffff\1\154\12\uffff\2\172\1\164\1\167\2\145\1\164\1\145\1\150\1\145\1\162\1\143\1\164\1\143\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\145\1\uffff\1\154\1\157\1\154\1\145\1\157\1\172\2\145\1\141\1\uffff\1\144\1\156\1\162\1\144\1\145\1\143\1\157\1\165\1\154\1\164\1\141\1\143\1\141\1\uffff\1\142\1\143\1\154\1\172\1\154\3\uffff\1\151\1\172\1\156\1\172\1\151\1\162\1\103\2\143\1\145\1\143\1\150\1\162\1\125\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\172\1\160\1\145\1\164\1\163\1\142\1\154\1\145\1\157\1\167\1\uffff\1\172\2\156\2\172\1\164\2\172\1\150\2\162\1\157\1\150\1\165\1\162\1\111\1\141\1\157\1\145\1\uffff\1\172\1\143\1\uffff\1\163\1\uffff\1\143\1\172\1\157\1\164\1\150\1\126\1\150\1\162\1\164\1\122\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\141\1\157\1\172\1\146\1\172\1\uffff\1\164\1\151\2\uffff\1\172\2\uffff\1\172\1\164\1\156\1\147\1\172\1\154\1\151\2\156\1\155\1\172\1\uffff\1\141\1\163\1\151\1\172\1\uffff\1\156\2\172\1\157\1\172\1\157\1\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\162\1\147\1\uffff\1\172\1\uffff\1\141\1\147\2\uffff\3\172\1\uffff\1\164\1\142\1\164\1\172\1\145\1\uffff\1\154\1\172\1\157\1\uffff\1\164\1\144\2\uffff\1\154\1\uffff\1\156\1\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\172\1\171\1\uffff\1\164\1\162\3\uffff\1\172\2\145\1\uffff\2\172\1\uffff\1\156\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\uffff\1\172\1\151\1\141\1\uffff\1\144\1\162\2\uffff\1\172\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\uffff\1\157\1\155\1\102\1\143\1\uffff\1\156\3\145\2\172\1\155\1\172\1\uffff\1\145\1\151\1\156\1\172\1\171\1\150\1\145\1\155\1\172\1\144\2\uffff\1\156\1\uffff\1\172\1\164\1\172\1\uffff\1\172\1\141\1\162\1\145\1\uffff\1\172\1\163\1\uffff\1\171\2\uffff\1\156\1\172\1\156\1\uffff\2\172\1\147\1\uffff\1\164\2\uffff\1\145\2\172\2\uffff";
     static final String DFA21_acceptS =
-        "\25\uffff\1\52\1\53\13\uffff\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\123\5\uffff\1\165\2\166\1\171\1\172\1\uffff\1\23\1\1\1\2\1\157\1\3\1\151\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\167\1\170\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\156\1\150\3\uffff\1\165\25\uffff\1\52\1\53\27\uffff\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\123\1\155\1\131\3\uffff\1\162\1\uffff\1\163\1\164\1\166\1\171\1\13\1\11\1\14\1\12\1\21\1\22\21\uffff\1\110\1\126\14\uffff\1\125\11\uffff\1\104\16\uffff\1\136\5\uffff\1\154\1\40\1\160\23\uffff\1\134\14\uffff\1\144\24\uffff\1\137\2\uffff\1\70\1\uffff\1\127\22\uffff\1\67\11\uffff\1\161\2\uffff\1\73\1\74\1\102\1\uffff\1\105\1\133\13\uffff\1\140\4\uffff\1\45\12\uffff\1\46\13\uffff\1\72\1\uffff\1\142\2\uffff\1\75\1\147\3\uffff\1\111\5\uffff\1\135\3\uffff\1\42\2\uffff\1\71\1\107\1\uffff\1\130\1\uffff\1\43\16\uffff\1\141\2\uffff\1\76\1\143\1\101\3\uffff\1\103\2\uffff\1\41\5\uffff\1\57\3\uffff\1\145\1\uffff\1\51\2\uffff\1\55\2\uffff\1\61\3\uffff\1\132\2\uffff\1\106\1\50\13\uffff\1\56\1\uffff\1\100\4\uffff\1\44\10\uffff\1\66\12\uffff\1\124\1\153\1\uffff\1\47\3\uffff\1\77\4\uffff\1\65\2\uffff\1\54\1\uffff\1\63\1\152\3\uffff\1\146\3\uffff\1\62\1\uffff\1\112\1\60\3\uffff\1\64\1\113";
+        "\25\uffff\1\52\1\53\13\uffff\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\122\5\uffff\1\164\2\165\1\170\1\171\1\uffff\1\23\1\1\1\2\1\156\1\3\1\150\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\166\1\167\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\155\1\147\3\uffff\1\164\25\uffff\1\52\1\53\26\uffff\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\154\1\130\3\uffff\1\161\1\uffff\1\162\1\163\1\165\1\170\1\13\1\11\1\14\1\12\1\21\1\22\21\uffff\1\107\1\125\14\uffff\1\124\11\uffff\1\103\15\uffff\1\135\5\uffff\1\153\1\40\1\157\23\uffff\1\133\14\uffff\1\143\23\uffff\1\136\2\uffff\1\70\1\uffff\1\126\22\uffff\1\67\11\uffff\1\160\2\uffff\1\73\1\74\1\uffff\1\104\1\132\13\uffff\1\137\4\uffff\1\45\12\uffff\1\46\13\uffff\1\72\1\uffff\1\141\2\uffff\1\75\1\146\3\uffff\1\110\5\uffff\1\134\3\uffff\1\42\2\uffff\1\71\1\106\1\uffff\1\127\1\uffff\1\43\16\uffff\1\140\2\uffff\1\76\1\142\1\101\3\uffff\1\102\2\uffff\1\41\5\uffff\1\57\3\uffff\1\144\1\uffff\1\51\2\uffff\1\55\2\uffff\1\61\3\uffff\1\131\2\uffff\1\105\1\50\13\uffff\1\56\1\uffff\1\100\4\uffff\1\44\10\uffff\1\66\12\uffff\1\123\1\152\1\uffff\1\47\3\uffff\1\77\4\uffff\1\65\2\uffff\1\54\1\uffff\1\63\1\151\3\uffff\1\145\3\uffff\1\62\1\uffff\1\111\1\60\3\uffff\1\64\1\112";
     static final String DFA21_specialS =
-        "\1\0\u0203\uffff}>";
+        "\1\0\u01ff\uffff}>";
     static final String[] DFA21_transitionS = {
             "\11\63\2\62\2\63\1\62\22\63\1\62\1\11\1\60\1\50\1\57\1\10\1\3\1\61\1\44\1\45\1\6\1\4\1\46\1\5\1\14\1\7\1\54\11\55\1\52\1\42\1\13\1\1\1\12\1\15\1\43\32\57\1\51\1\63\1\47\1\56\1\57\1\63\1\30\1\34\1\35\1\37\1\17\1\22\1\33\1\23\1\21\1\57\1\40\2\57\1\53\1\32\1\24\1\57\1\36\1\20\1\31\1\27\1\16\1\41\3\57\1\25\1\2\1\26\uff82\63",
             "\1\64\1\65",
@@ -4247,12 +4218,12 @@
             "\1\165\6\uffff\1\167\6\uffff\1\164\2\uffff\1\170\6\uffff\1\166",
             "\1\172\13\uffff\1\171",
             "\1\173",
-            "\1\174\12\uffff\1\175",
-            "\1\177\6\uffff\1\176",
-            "\1\u0080",
-            "\1\u0083\3\uffff\1\u0082\3\uffff\1\u0081\5\uffff\1\u0084",
-            "\1\u0085",
-            "\1\u0086\2\uffff\1\u0087",
+            "\1\174",
+            "\1\176\6\uffff\1\175",
+            "\1\177",
+            "\1\u0082\3\uffff\1\u0081\3\uffff\1\u0080\5\uffff\1\u0083",
+            "\1\u0084",
+            "\1\u0085\2\uffff\1\u0086",
             "",
             "",
             "",
@@ -4261,17 +4232,17 @@
             "",
             "",
             "",
-            "\1\u0090",
-            "\1\u0092\15\uffff\1\u0094\1\uffff\1\u0093",
-            "\12\u0096\10\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\13\uffff\1\u0095\6\uffff\1\u0096\2\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\13\uffff\1\u0095",
-            "\12\u0096\10\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\22\uffff\1\u0096\2\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098",
+            "\1\u008f",
+            "\1\u0091\15\uffff\1\u0093\1\uffff\1\u0092",
+            "\12\u0095\10\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\13\uffff\1\u0094\6\uffff\1\u0095\2\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\13\uffff\1\u0094",
+            "\12\u0095\10\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\22\uffff\1\u0095\2\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097",
             "\1\131\34\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
             "",
             "",
             "",
             "",
-            "\1\u009b",
+            "\1\u009a",
             "",
             "",
             "",
@@ -4294,82 +4265,81 @@
             "",
             "",
             "",
-            "\1\u009d",
+            "\1\u009c",
             "",
             "",
             "",
             "",
             "",
-            "\1\u009f",
+            "\1\u009e",
             "",
             "",
             "",
             "",
-            "\1\u00a1\5\uffff\1\u00a2",
+            "\1\u00a0\5\uffff\1\u00a1",
+            "\1\u00a2",
             "\1\u00a3",
-            "\1\u00a4",
             "",
+            "\1\u00a4",
             "\1\u00a5",
             "\1\u00a6",
             "\1\u00a7",
             "\1\u00a8",
-            "\1\u00a9",
-            "\1\u00ab\12\uffff\1\u00aa",
+            "\1\u00aa\12\uffff\1\u00a9",
+            "\1\u00ab",
             "\1\u00ac",
             "\1\u00ad",
             "\1\u00ae",
             "\1\u00af",
-            "\1\u00b0",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\22\131\1\u00b1\7\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\22\131\1\u00b0\7\131",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u00b3",
             "\1\u00b4",
-            "\1\u00b5",
-            "\1\u00b6\1\uffff\1\u00b7",
+            "\1\u00b5\1\uffff\1\u00b6",
+            "\1\u00b7",
             "\1\u00b8",
-            "\1\u00b9",
-            "\1\u00ba\16\uffff\1\u00bb",
+            "\1\u00b9\16\uffff\1\u00ba",
+            "\1\u00bb",
             "\1\u00bc",
+            "",
+            "",
             "\1\u00bd",
-            "",
-            "",
             "\1\u00be",
-            "\1\u00bf",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u00c1\1\u00c2",
+            "\1\u00c0\1\u00c1",
+            "\1\u00c2",
             "\1\u00c3",
             "\1\u00c4",
-            "\1\u00c5",
-            "\1\u00c7\3\uffff\1\u00c6",
-            "\1\u00c9\1\uffff\1\u00c8",
+            "\1\u00c6\3\uffff\1\u00c5",
+            "\1\u00c8\1\uffff\1\u00c7",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
-            "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf\1\u00d0\1\u00d1",
-            "\1\u00d2\3\uffff\1\u00d3",
-            "\1\u00d4",
-            "\1\u00d6\11\uffff\1\u00d5\2\uffff\1\u00d7",
-            "\1\u00d8",
+            "\1\u00cd\1\u00ce\1\u00cf",
+            "\1\u00d0\3\uffff\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d4\11\uffff\1\u00d3\2\uffff\1\u00d5",
+            "\1\u00d6",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u00d8",
+            "\1\u00d9",
             "\1\u00da",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00db",
             "\1\u00dc",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00dd",
-            "\1\u00de",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
-            "\12\u0096\10\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\22\uffff\1\u0096\2\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098",
+            "\12\u0095\10\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\22\uffff\1\u0095\2\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097",
             "",
             "",
             "",
@@ -4382,6 +4352,8 @@
             "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u00e0",
+            "\1\u00e1",
             "\1\u00e2",
             "\1\u00e3",
             "\1\u00e4",
@@ -4395,33 +4367,33 @@
             "\1\u00ec",
             "\1\u00ed",
             "\1\u00ee",
+            "",
+            "",
             "\1\u00ef",
             "\1\u00f0",
-            "",
-            "",
             "\1\u00f1",
             "\1\u00f2",
-            "\1\u00f3",
-            "\1\u00f4",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u00f4",
+            "\1\u00f5",
             "\1\u00f6",
             "\1\u00f7",
             "\1\u00f8",
             "\1\u00f9",
             "\1\u00fa",
+            "",
             "\1\u00fb",
             "\1\u00fc",
-            "",
             "\1\u00fd",
             "\1\u00fe",
             "\1\u00ff",
-            "\1\u0100",
-            "\1\u0101",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0101",
+            "\1\u0102",
             "\1\u0103",
+            "",
             "\1\u0104",
             "\1\u0105",
-            "",
             "\1\u0106",
             "\1\u0107",
             "\1\u0108",
@@ -4433,22 +4405,22 @@
             "\1\u010e",
             "\1\u010f",
             "\1\u0110",
+            "",
             "\1\u0111",
             "\1\u0112",
             "\1\u0113",
-            "",
-            "\1\u0114",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u0115",
+            "",
+            "",
+            "",
             "\1\u0116",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u0118",
-            "",
-            "",
-            "",
-            "\1\u0119",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u011a",
             "\1\u011b",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u011c",
             "\1\u011d",
             "\1\u011e",
             "\1\u011f",
@@ -4461,32 +4433,32 @@
             "\1\u0126",
             "\1\u0127",
             "\1\u0128",
+            "",
             "\1\u0129",
             "\1\u012a",
-            "\1\u012b",
-            "",
-            "\1\u012c",
+            "\1\131\13\uffff\12\131\7\uffff\22\131\1\u012b\7\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u012d",
-            "\1\131\13\uffff\12\131\7\uffff\22\131\1\u012e\7\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u012e",
+            "\1\u012f",
             "\1\u0130",
             "\1\u0131",
             "\1\u0132",
             "\1\u0133",
             "\1\u0134",
             "\1\u0135",
-            "\1\u0136",
-            "\1\u0137",
-            "\1\u0138",
             "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u013a",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u013b",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u013e",
             "\1\u013f",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0140",
+            "\1\u0141",
             "\1\u0142",
             "\1\u0143",
             "\1\u0144",
@@ -4494,81 +4466,80 @@
             "\1\u0146",
             "\1\u0147",
             "\1\u0148",
-            "\1\u0149",
+            "",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u014a",
-            "\1\u014b",
-            "\1\u014c",
             "",
+            "\1\u014b\16\uffff\1\u014c",
+            "",
+            "\1\u014d",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u014e",
-            "",
-            "\1\u014f\16\uffff\1\u0150",
-            "",
+            "\1\u014f",
+            "\1\u0150",
             "\1\u0151",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0152",
             "\1\u0153",
             "\1\u0154",
             "\1\u0155",
             "\1\u0156",
             "\1\u0157",
             "\1\u0158",
-            "\1\u0159",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u015a",
             "\1\u015b",
             "\1\u015c",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u015d",
             "\1\u015e",
+            "",
             "\1\u015f",
             "\1\u0160",
             "\1\u0161",
             "\1\u0162",
-            "",
             "\1\u0163",
             "\1\u0164",
-            "\1\u0165",
-            "\1\u0166",
-            "\1\u0167",
-            "\1\u0168",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u016a",
+            "\1\u0166",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
+            "\1\u0168",
+            "\1\u0169",
+            "",
+            "",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
+            "",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u016c",
             "\1\u016d",
-            "",
-            "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "",
+            "\1\u016e",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u0170",
             "\1\u0171",
             "\1\u0172",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0173",
             "\1\u0174",
-            "\1\u0175",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
             "\1\u0176",
             "\1\u0177",
             "\1\u0178",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
             "\1\u017a",
-            "\1\u017b",
-            "\1\u017c",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\4\131\1\u017b\25\131",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
             "\1\u017e",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\4\131\1\u017f\25\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0180",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u0182",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0183",
             "\1\u0184",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
+            "\1\u0185",
             "\1\u0186",
             "\1\u0187",
             "\1\u0188",
-            "",
             "\1\u0189",
             "\1\u018a",
             "\1\u018b",
@@ -4576,161 +4547,157 @@
             "\1\u018d",
             "\1\u018e",
             "\1\u018f",
-            "\1\u0190",
+            "",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
             "\1\u0191",
             "\1\u0192",
-            "\1\u0193",
+            "",
             "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
-            "\1\u0195",
             "\1\u0196",
-            "",
-            "",
+            "\1\u0197",
+            "\1\u0198",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
             "\1\u019a",
-            "\1\u019b",
-            "\1\u019c",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u019e",
             "",
-            "\1\u019f",
+            "\1\u019b",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u019d",
+            "",
+            "\1\u019e",
+            "\1\u019f",
+            "",
+            "",
+            "\1\u01a0",
+            "",
             "\1\u01a1",
             "",
-            "\1\u01a2",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01a3",
-            "",
-            "",
             "\1\u01a4",
-            "",
             "\1\u01a5",
-            "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01a7",
-            "\1\u01a8",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01a9",
+            "\1\u01aa",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01ab",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01ac",
             "\1\u01ad",
-            "\1\u01ae",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01af",
+            "",
             "\1\u01b0",
             "\1\u01b1",
+            "",
+            "",
+            "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01b3",
-            "",
             "\1\u01b4",
-            "\1\u01b5",
-            "",
-            "",
             "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
             "\1\u01b7",
             "\1\u01b8",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u01b9",
+            "\1\u01ba",
             "\1\u01bb",
+            "",
             "\1\u01bc",
             "\1\u01bd",
             "\1\u01be",
+            "",
             "\1\u01bf",
             "",
             "\1\u01c0",
             "\1\u01c1",
-            "\1\u01c2",
             "",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01c3",
             "",
-            "\1\u01c4",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01c5",
+            "\1\u01c6",
             "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01c7",
+            "\1\u01c8",
+            "",
             "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01c9",
             "\1\u01ca",
-            "",
             "\1\u01cb",
             "\1\u01cc",
-            "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01cd",
             "\1\u01ce",
             "\1\u01cf",
             "\1\u01d0",
             "\1\u01d1",
-            "\1\u01d2",
-            "\1\u01d3",
-            "\1\u01d4",
-            "\1\u01d5",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01d7",
+            "\1\u01d3",
             "",
+            "\1\u01d4",
+            "",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
             "\1\u01d8",
             "",
             "\1\u01d9",
             "\1\u01da",
             "\1\u01db",
             "\1\u01dc",
-            "",
-            "\1\u01dd",
-            "\1\u01de",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01df",
-            "\1\u01e0",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
+            "\1\u01e1",
+            "\1\u01e2",
             "\1\u01e3",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
             "\1\u01e5",
             "\1\u01e6",
             "\1\u01e7",
+            "\1\u01e8",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01e9",
             "\1\u01ea",
+            "",
+            "",
             "\1\u01eb",
-            "\1\u01ec",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01ee",
-            "",
-            "",
-            "\1\u01ef",
             "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01ed",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01f0",
             "\1\u01f1",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01f2",
             "",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01f4",
-            "\1\u01f5",
-            "\1\u01f6",
             "",
+            "\1\u01f5",
+            "",
+            "",
+            "\1\u01f6",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01f8",
             "",
-            "\1\u01f9",
-            "",
-            "",
-            "\1\u01fa",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01fb",
+            "",
             "\1\u01fc",
             "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01ff",
             "",
-            "\1\u0200",
-            "",
-            "",
-            "\1\u0201",
+            "\1\u01fd",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
@@ -4767,7 +4734,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 | 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 | 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 2939080..5c2246d 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
@@ -38,7 +38,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'", "'iconURI'", "'accessibility'", "'toolbar'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'part'", "'view'", "'select'", "'table'", "'grid'", "'bean'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'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'", "'iconURI'", "'accessibility'", "'toolbar'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'part'", "'view'", "'select'", "'table'", "'grid'", "'bean'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'describedBy'", "'isClosable'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
     };
     public static final int RULE_HEX=6;
     public static final int T__50=50;
@@ -62,7 +62,6 @@
     public static final int T__69=69;
     public static final int T__62=62;
     public static final int T__63=63;
-    public static final int T__125=125;
     public static final int T__64=64;
     public static final int T__65=65;
     public static final int T__37=37;
@@ -1644,97 +1643,12 @@
     // $ANTLR end "rulePerspectiveDialog"
 
 
-    // $ANTLR start "entryRulePerspectiveBPMN"
-    // InternalPerspectiveDsl.g:492:1: entryRulePerspectiveBPMN : rulePerspectiveBPMN EOF ;
-    public final void entryRulePerspectiveBPMN() throws RecognitionException {
-        try {
-            // InternalPerspectiveDsl.g:493:1: ( rulePerspectiveBPMN EOF )
-            // InternalPerspectiveDsl.g:494:1: rulePerspectiveBPMN EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBPMNRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            rulePerspectiveBPMN();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBPMNRule()); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveBPMN"
-
-
-    // $ANTLR start "rulePerspectiveBPMN"
-    // InternalPerspectiveDsl.g:501:1: rulePerspectiveBPMN : ( ( rule__PerspectiveBPMN__Group__0 ) ) ;
-    public final void rulePerspectiveBPMN() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalPerspectiveDsl.g:505:2: ( ( ( rule__PerspectiveBPMN__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:506:2: ( ( rule__PerspectiveBPMN__Group__0 ) )
-            {
-            // InternalPerspectiveDsl.g:506:2: ( ( rule__PerspectiveBPMN__Group__0 ) )
-            // InternalPerspectiveDsl.g:507:3: ( rule__PerspectiveBPMN__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBPMNAccess().getGroup()); 
-            }
-            // InternalPerspectiveDsl.g:508:3: ( rule__PerspectiveBPMN__Group__0 )
-            // InternalPerspectiveDsl.g:508:4: rule__PerspectiveBPMN__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__PerspectiveBPMN__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBPMNAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveBPMN"
-
-
     // $ANTLR start "entryRulePerspectiveKanban"
-    // InternalPerspectiveDsl.g:517:1: entryRulePerspectiveKanban : rulePerspectiveKanban EOF ;
+    // InternalPerspectiveDsl.g:492:1: entryRulePerspectiveKanban : rulePerspectiveKanban EOF ;
     public final void entryRulePerspectiveKanban() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:518:1: ( rulePerspectiveKanban EOF )
-            // InternalPerspectiveDsl.g:519:1: rulePerspectiveKanban EOF
+            // InternalPerspectiveDsl.g:493:1: ( rulePerspectiveKanban EOF )
+            // InternalPerspectiveDsl.g:494:1: rulePerspectiveKanban EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanRule()); 
@@ -1764,23 +1678,23 @@
 
 
     // $ANTLR start "rulePerspectiveKanban"
-    // InternalPerspectiveDsl.g:526:1: rulePerspectiveKanban : ( ( rule__PerspectiveKanban__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:501:1: rulePerspectiveKanban : ( ( rule__PerspectiveKanban__Group__0 ) ) ;
     public final void rulePerspectiveKanban() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:530:2: ( ( ( rule__PerspectiveKanban__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:531:2: ( ( rule__PerspectiveKanban__Group__0 ) )
+            // InternalPerspectiveDsl.g:505:2: ( ( ( rule__PerspectiveKanban__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:506:2: ( ( rule__PerspectiveKanban__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:531:2: ( ( rule__PerspectiveKanban__Group__0 ) )
-            // InternalPerspectiveDsl.g:532:3: ( rule__PerspectiveKanban__Group__0 )
+            // InternalPerspectiveDsl.g:506:2: ( ( rule__PerspectiveKanban__Group__0 ) )
+            // InternalPerspectiveDsl.g:507:3: ( rule__PerspectiveKanban__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:533:3: ( rule__PerspectiveKanban__Group__0 )
-            // InternalPerspectiveDsl.g:533:4: rule__PerspectiveKanban__Group__0
+            // InternalPerspectiveDsl.g:508:3: ( rule__PerspectiveKanban__Group__0 )
+            // InternalPerspectiveDsl.g:508:4: rule__PerspectiveKanban__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__Group__0();
@@ -1815,11 +1729,11 @@
 
 
     // $ANTLR start "entryRulePerspectiveWelcome"
-    // InternalPerspectiveDsl.g:542:1: entryRulePerspectiveWelcome : rulePerspectiveWelcome EOF ;
+    // InternalPerspectiveDsl.g:517:1: entryRulePerspectiveWelcome : rulePerspectiveWelcome EOF ;
     public final void entryRulePerspectiveWelcome() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:543:1: ( rulePerspectiveWelcome EOF )
-            // InternalPerspectiveDsl.g:544:1: rulePerspectiveWelcome EOF
+            // InternalPerspectiveDsl.g:518:1: ( rulePerspectiveWelcome EOF )
+            // InternalPerspectiveDsl.g:519:1: rulePerspectiveWelcome EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeRule()); 
@@ -1849,23 +1763,23 @@
 
 
     // $ANTLR start "rulePerspectiveWelcome"
-    // InternalPerspectiveDsl.g:551:1: rulePerspectiveWelcome : ( ( rule__PerspectiveWelcome__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:526:1: rulePerspectiveWelcome : ( ( rule__PerspectiveWelcome__Group__0 ) ) ;
     public final void rulePerspectiveWelcome() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:555:2: ( ( ( rule__PerspectiveWelcome__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:556:2: ( ( rule__PerspectiveWelcome__Group__0 ) )
+            // InternalPerspectiveDsl.g:530:2: ( ( ( rule__PerspectiveWelcome__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:531:2: ( ( rule__PerspectiveWelcome__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:556:2: ( ( rule__PerspectiveWelcome__Group__0 ) )
-            // InternalPerspectiveDsl.g:557:3: ( rule__PerspectiveWelcome__Group__0 )
+            // InternalPerspectiveDsl.g:531:2: ( ( rule__PerspectiveWelcome__Group__0 ) )
+            // InternalPerspectiveDsl.g:532:3: ( rule__PerspectiveWelcome__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:558:3: ( rule__PerspectiveWelcome__Group__0 )
-            // InternalPerspectiveDsl.g:558:4: rule__PerspectiveWelcome__Group__0
+            // InternalPerspectiveDsl.g:533:3: ( rule__PerspectiveWelcome__Group__0 )
+            // InternalPerspectiveDsl.g:533:4: rule__PerspectiveWelcome__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveWelcome__Group__0();
@@ -1900,11 +1814,11 @@
 
 
     // $ANTLR start "entryRulePerspectiveSearch"
-    // InternalPerspectiveDsl.g:567:1: entryRulePerspectiveSearch : rulePerspectiveSearch EOF ;
+    // InternalPerspectiveDsl.g:542:1: entryRulePerspectiveSearch : rulePerspectiveSearch EOF ;
     public final void entryRulePerspectiveSearch() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:568:1: ( rulePerspectiveSearch EOF )
-            // InternalPerspectiveDsl.g:569:1: rulePerspectiveSearch EOF
+            // InternalPerspectiveDsl.g:543:1: ( rulePerspectiveSearch EOF )
+            // InternalPerspectiveDsl.g:544:1: rulePerspectiveSearch EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchRule()); 
@@ -1934,23 +1848,23 @@
 
 
     // $ANTLR start "rulePerspectiveSearch"
-    // InternalPerspectiveDsl.g:576:1: rulePerspectiveSearch : ( ( rule__PerspectiveSearch__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:551:1: rulePerspectiveSearch : ( ( rule__PerspectiveSearch__Group__0 ) ) ;
     public final void rulePerspectiveSearch() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:580:2: ( ( ( rule__PerspectiveSearch__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:581:2: ( ( rule__PerspectiveSearch__Group__0 ) )
+            // InternalPerspectiveDsl.g:555:2: ( ( ( rule__PerspectiveSearch__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:556:2: ( ( rule__PerspectiveSearch__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:581:2: ( ( rule__PerspectiveSearch__Group__0 ) )
-            // InternalPerspectiveDsl.g:582:3: ( rule__PerspectiveSearch__Group__0 )
+            // InternalPerspectiveDsl.g:556:2: ( ( rule__PerspectiveSearch__Group__0 ) )
+            // InternalPerspectiveDsl.g:557:3: ( rule__PerspectiveSearch__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:583:3: ( rule__PerspectiveSearch__Group__0 )
-            // InternalPerspectiveDsl.g:583:4: rule__PerspectiveSearch__Group__0
+            // InternalPerspectiveDsl.g:558:3: ( rule__PerspectiveSearch__Group__0 )
+            // InternalPerspectiveDsl.g:558:4: rule__PerspectiveSearch__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group__0();
@@ -1985,11 +1899,11 @@
 
 
     // $ANTLR start "entryRulePerspectiveDataInterchange"
-    // InternalPerspectiveDsl.g:592:1: entryRulePerspectiveDataInterchange : rulePerspectiveDataInterchange EOF ;
+    // InternalPerspectiveDsl.g:567:1: entryRulePerspectiveDataInterchange : rulePerspectiveDataInterchange EOF ;
     public final void entryRulePerspectiveDataInterchange() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:593:1: ( rulePerspectiveDataInterchange EOF )
-            // InternalPerspectiveDsl.g:594:1: rulePerspectiveDataInterchange EOF
+            // InternalPerspectiveDsl.g:568:1: ( rulePerspectiveDataInterchange EOF )
+            // InternalPerspectiveDsl.g:569:1: rulePerspectiveDataInterchange EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeRule()); 
@@ -2019,23 +1933,23 @@
 
 
     // $ANTLR start "rulePerspectiveDataInterchange"
-    // InternalPerspectiveDsl.g:601:1: rulePerspectiveDataInterchange : ( ( rule__PerspectiveDataInterchange__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:576:1: rulePerspectiveDataInterchange : ( ( rule__PerspectiveDataInterchange__Group__0 ) ) ;
     public final void rulePerspectiveDataInterchange() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:605:2: ( ( ( rule__PerspectiveDataInterchange__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:606:2: ( ( rule__PerspectiveDataInterchange__Group__0 ) )
+            // InternalPerspectiveDsl.g:580:2: ( ( ( rule__PerspectiveDataInterchange__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:581:2: ( ( rule__PerspectiveDataInterchange__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:606:2: ( ( rule__PerspectiveDataInterchange__Group__0 ) )
-            // InternalPerspectiveDsl.g:607:3: ( rule__PerspectiveDataInterchange__Group__0 )
+            // InternalPerspectiveDsl.g:581:2: ( ( rule__PerspectiveDataInterchange__Group__0 ) )
+            // InternalPerspectiveDsl.g:582:3: ( rule__PerspectiveDataInterchange__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:608:3: ( rule__PerspectiveDataInterchange__Group__0 )
-            // InternalPerspectiveDsl.g:608:4: rule__PerspectiveDataInterchange__Group__0
+            // InternalPerspectiveDsl.g:583:3: ( rule__PerspectiveDataInterchange__Group__0 )
+            // InternalPerspectiveDsl.g:583:4: rule__PerspectiveDataInterchange__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDataInterchange__Group__0();
@@ -2070,11 +1984,11 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalPerspectiveDsl.g:617:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
+    // InternalPerspectiveDsl.g:592:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
     public final void entryRuleTRANSLATABLEID() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:618:1: ( ruleTRANSLATABLEID EOF )
-            // InternalPerspectiveDsl.g:619:1: ruleTRANSLATABLEID EOF
+            // InternalPerspectiveDsl.g:593:1: ( ruleTRANSLATABLEID EOF )
+            // InternalPerspectiveDsl.g:594:1: ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -2104,17 +2018,17 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalPerspectiveDsl.g:626:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
+    // InternalPerspectiveDsl.g:601:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
     public final void ruleTRANSLATABLEID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:630:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:631:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:605:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:606:2: ( RULE_ID )
             {
-            // InternalPerspectiveDsl.g:631:2: ( RULE_ID )
-            // InternalPerspectiveDsl.g:632:3: RULE_ID
+            // InternalPerspectiveDsl.g:606:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:607:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
@@ -2145,11 +2059,11 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // InternalPerspectiveDsl.g:642:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
+    // InternalPerspectiveDsl.g:617:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
     public final void entryRuleTRANSLATABLESTRING() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:643:1: ( ruleTRANSLATABLESTRING EOF )
-            // InternalPerspectiveDsl.g:644:1: ruleTRANSLATABLESTRING EOF
+            // InternalPerspectiveDsl.g:618:1: ( ruleTRANSLATABLESTRING EOF )
+            // InternalPerspectiveDsl.g:619:1: ruleTRANSLATABLESTRING EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLESTRINGRule()); 
@@ -2179,17 +2093,17 @@
 
 
     // $ANTLR start "ruleTRANSLATABLESTRING"
-    // InternalPerspectiveDsl.g:651:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:626:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
     public final void ruleTRANSLATABLESTRING() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:655:2: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:656:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:630:2: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:631:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:656:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:657:3: RULE_STRING
+            // InternalPerspectiveDsl.g:631:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:632:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
@@ -2220,11 +2134,11 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalPerspectiveDsl.g:667:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    // InternalPerspectiveDsl.g:642:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
     public final void entryRuleXImportDeclaration() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:668:1: ( ruleXImportDeclaration EOF )
-            // InternalPerspectiveDsl.g:669:1: ruleXImportDeclaration EOF
+            // InternalPerspectiveDsl.g:643:1: ( ruleXImportDeclaration EOF )
+            // InternalPerspectiveDsl.g:644:1: ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationRule()); 
@@ -2254,23 +2168,23 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalPerspectiveDsl.g:676:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:651:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
     public final void ruleXImportDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:680:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:681:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalPerspectiveDsl.g:655:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:656:2: ( ( rule__XImportDeclaration__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:681:2: ( ( rule__XImportDeclaration__Group__0 ) )
-            // InternalPerspectiveDsl.g:682:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalPerspectiveDsl.g:656:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalPerspectiveDsl.g:657:3: ( rule__XImportDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:683:3: ( rule__XImportDeclaration__Group__0 )
-            // InternalPerspectiveDsl.g:683:4: rule__XImportDeclaration__Group__0
+            // InternalPerspectiveDsl.g:658:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalPerspectiveDsl.g:658:4: rule__XImportDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__0();
@@ -2305,11 +2219,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalPerspectiveDsl.g:692:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    // InternalPerspectiveDsl.g:667:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
     public final void entryRuleXAnnotation() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:693:1: ( ruleXAnnotation EOF )
-            // InternalPerspectiveDsl.g:694:1: ruleXAnnotation EOF
+            // InternalPerspectiveDsl.g:668:1: ( ruleXAnnotation EOF )
+            // InternalPerspectiveDsl.g:669:1: ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationRule()); 
@@ -2339,23 +2253,23 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalPerspectiveDsl.g:701:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:676:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
     public final void ruleXAnnotation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:705:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:706:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalPerspectiveDsl.g:680:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:681:2: ( ( rule__XAnnotation__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:706:2: ( ( rule__XAnnotation__Group__0 ) )
-            // InternalPerspectiveDsl.g:707:3: ( rule__XAnnotation__Group__0 )
+            // InternalPerspectiveDsl.g:681:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalPerspectiveDsl.g:682:3: ( rule__XAnnotation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:708:3: ( rule__XAnnotation__Group__0 )
-            // InternalPerspectiveDsl.g:708:4: rule__XAnnotation__Group__0
+            // InternalPerspectiveDsl.g:683:3: ( rule__XAnnotation__Group__0 )
+            // InternalPerspectiveDsl.g:683:4: rule__XAnnotation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__0();
@@ -2390,11 +2304,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalPerspectiveDsl.g:717:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    // InternalPerspectiveDsl.g:692:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
     public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:718:1: ( ruleXAnnotationElementValuePair EOF )
-            // InternalPerspectiveDsl.g:719:1: ruleXAnnotationElementValuePair EOF
+            // InternalPerspectiveDsl.g:693:1: ( ruleXAnnotationElementValuePair EOF )
+            // InternalPerspectiveDsl.g:694:1: ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -2424,23 +2338,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalPerspectiveDsl.g:726:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:701:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
     public final void ruleXAnnotationElementValuePair() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:730:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:731:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalPerspectiveDsl.g:705:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:706:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:731:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
-            // InternalPerspectiveDsl.g:732:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalPerspectiveDsl.g:706:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalPerspectiveDsl.g:707:3: ( rule__XAnnotationElementValuePair__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:733:3: ( rule__XAnnotationElementValuePair__Group__0 )
-            // InternalPerspectiveDsl.g:733:4: rule__XAnnotationElementValuePair__Group__0
+            // InternalPerspectiveDsl.g:708:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalPerspectiveDsl.g:708:4: rule__XAnnotationElementValuePair__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__0();
@@ -2475,11 +2389,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalPerspectiveDsl.g:742:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalPerspectiveDsl.g:717:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
     public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:743:1: ( ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalPerspectiveDsl.g:744:1: ruleXAnnotationElementValueOrCommaList EOF
+            // InternalPerspectiveDsl.g:718:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalPerspectiveDsl.g:719:1: ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -2509,23 +2423,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalPerspectiveDsl.g:751:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:726:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
     public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:755:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:756:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalPerspectiveDsl.g:730:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:731:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:756:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
-            // InternalPerspectiveDsl.g:757:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalPerspectiveDsl.g:731:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalPerspectiveDsl.g:732:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:758:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
-            // InternalPerspectiveDsl.g:758:4: rule__XAnnotationElementValueOrCommaList__Alternatives
+            // InternalPerspectiveDsl.g:733:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalPerspectiveDsl.g:733:4: rule__XAnnotationElementValueOrCommaList__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Alternatives();
@@ -2560,11 +2474,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalPerspectiveDsl.g:767:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    // InternalPerspectiveDsl.g:742:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
     public final void entryRuleXAnnotationElementValue() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:768:1: ( ruleXAnnotationElementValue EOF )
-            // InternalPerspectiveDsl.g:769:1: ruleXAnnotationElementValue EOF
+            // InternalPerspectiveDsl.g:743:1: ( ruleXAnnotationElementValue EOF )
+            // InternalPerspectiveDsl.g:744:1: ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueRule()); 
@@ -2594,23 +2508,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalPerspectiveDsl.g:776:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:751:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
     public final void ruleXAnnotationElementValue() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:780:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:781:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalPerspectiveDsl.g:755:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:756:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:781:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
-            // InternalPerspectiveDsl.g:782:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalPerspectiveDsl.g:756:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalPerspectiveDsl.g:757:3: ( rule__XAnnotationElementValue__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:783:3: ( rule__XAnnotationElementValue__Alternatives )
-            // InternalPerspectiveDsl.g:783:4: rule__XAnnotationElementValue__Alternatives
+            // InternalPerspectiveDsl.g:758:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalPerspectiveDsl.g:758:4: rule__XAnnotationElementValue__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Alternatives();
@@ -2645,11 +2559,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalPerspectiveDsl.g:792:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    // InternalPerspectiveDsl.g:767:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
     public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:793:1: ( ruleXAnnotationOrExpression EOF )
-            // InternalPerspectiveDsl.g:794:1: ruleXAnnotationOrExpression EOF
+            // InternalPerspectiveDsl.g:768:1: ( ruleXAnnotationOrExpression EOF )
+            // InternalPerspectiveDsl.g:769:1: ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -2679,23 +2593,23 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalPerspectiveDsl.g:801:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:776:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
     public final void ruleXAnnotationOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:805:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:806:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalPerspectiveDsl.g:780:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:781:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:806:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
-            // InternalPerspectiveDsl.g:807:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalPerspectiveDsl.g:781:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalPerspectiveDsl.g:782:3: ( rule__XAnnotationOrExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:808:3: ( rule__XAnnotationOrExpression__Alternatives )
-            // InternalPerspectiveDsl.g:808:4: rule__XAnnotationOrExpression__Alternatives
+            // InternalPerspectiveDsl.g:783:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalPerspectiveDsl.g:783:4: rule__XAnnotationOrExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationOrExpression__Alternatives();
@@ -2730,11 +2644,11 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalPerspectiveDsl.g:817:1: entryRuleXExpression : ruleXExpression EOF ;
+    // InternalPerspectiveDsl.g:792:1: entryRuleXExpression : ruleXExpression EOF ;
     public final void entryRuleXExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:818:1: ( ruleXExpression EOF )
-            // InternalPerspectiveDsl.g:819:1: ruleXExpression EOF
+            // InternalPerspectiveDsl.g:793:1: ( ruleXExpression EOF )
+            // InternalPerspectiveDsl.g:794:1: ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionRule()); 
@@ -2764,17 +2678,17 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalPerspectiveDsl.g:826:1: ruleXExpression : ( ruleXAssignment ) ;
+    // InternalPerspectiveDsl.g:801:1: ruleXExpression : ( ruleXAssignment ) ;
     public final void ruleXExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:830:2: ( ( ruleXAssignment ) )
-            // InternalPerspectiveDsl.g:831:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:805:2: ( ( ruleXAssignment ) )
+            // InternalPerspectiveDsl.g:806:2: ( ruleXAssignment )
             {
-            // InternalPerspectiveDsl.g:831:2: ( ruleXAssignment )
-            // InternalPerspectiveDsl.g:832:3: ruleXAssignment
+            // InternalPerspectiveDsl.g:806:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:807:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
@@ -2809,11 +2723,11 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalPerspectiveDsl.g:842:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    // InternalPerspectiveDsl.g:817:1: entryRuleXAssignment : ruleXAssignment EOF ;
     public final void entryRuleXAssignment() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:843:1: ( ruleXAssignment EOF )
-            // InternalPerspectiveDsl.g:844:1: ruleXAssignment EOF
+            // InternalPerspectiveDsl.g:818:1: ( ruleXAssignment EOF )
+            // InternalPerspectiveDsl.g:819:1: ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentRule()); 
@@ -2843,23 +2757,23 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalPerspectiveDsl.g:851:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:826:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
     public final void ruleXAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:855:2: ( ( ( rule__XAssignment__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:856:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalPerspectiveDsl.g:830:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:831:2: ( ( rule__XAssignment__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:856:2: ( ( rule__XAssignment__Alternatives ) )
-            // InternalPerspectiveDsl.g:857:3: ( rule__XAssignment__Alternatives )
+            // InternalPerspectiveDsl.g:831:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalPerspectiveDsl.g:832:3: ( rule__XAssignment__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:858:3: ( rule__XAssignment__Alternatives )
-            // InternalPerspectiveDsl.g:858:4: rule__XAssignment__Alternatives
+            // InternalPerspectiveDsl.g:833:3: ( rule__XAssignment__Alternatives )
+            // InternalPerspectiveDsl.g:833:4: rule__XAssignment__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Alternatives();
@@ -2894,11 +2808,11 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalPerspectiveDsl.g:867:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    // InternalPerspectiveDsl.g:842:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
     public final void entryRuleOpSingleAssign() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:868:1: ( ruleOpSingleAssign EOF )
-            // InternalPerspectiveDsl.g:869:1: ruleOpSingleAssign EOF
+            // InternalPerspectiveDsl.g:843:1: ( ruleOpSingleAssign EOF )
+            // InternalPerspectiveDsl.g:844:1: ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignRule()); 
@@ -2928,17 +2842,17 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalPerspectiveDsl.g:876:1: ruleOpSingleAssign : ( '=' ) ;
+    // InternalPerspectiveDsl.g:851:1: ruleOpSingleAssign : ( '=' ) ;
     public final void ruleOpSingleAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:880:2: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:881:2: ( '=' )
+            // InternalPerspectiveDsl.g:855:2: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:856:2: ( '=' )
             {
-            // InternalPerspectiveDsl.g:881:2: ( '=' )
-            // InternalPerspectiveDsl.g:882:3: '='
+            // InternalPerspectiveDsl.g:856:2: ( '=' )
+            // InternalPerspectiveDsl.g:857:3: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
@@ -2969,11 +2883,11 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalPerspectiveDsl.g:892:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    // InternalPerspectiveDsl.g:867:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
     public final void entryRuleOpMultiAssign() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:893:1: ( ruleOpMultiAssign EOF )
-            // InternalPerspectiveDsl.g:894:1: ruleOpMultiAssign EOF
+            // InternalPerspectiveDsl.g:868:1: ( ruleOpMultiAssign EOF )
+            // InternalPerspectiveDsl.g:869:1: ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignRule()); 
@@ -3003,23 +2917,23 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalPerspectiveDsl.g:901:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:876:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
     public final void ruleOpMultiAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:905:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:906:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalPerspectiveDsl.g:880:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:881:2: ( ( rule__OpMultiAssign__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:906:2: ( ( rule__OpMultiAssign__Alternatives ) )
-            // InternalPerspectiveDsl.g:907:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalPerspectiveDsl.g:881:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalPerspectiveDsl.g:882:3: ( rule__OpMultiAssign__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:908:3: ( rule__OpMultiAssign__Alternatives )
-            // InternalPerspectiveDsl.g:908:4: rule__OpMultiAssign__Alternatives
+            // InternalPerspectiveDsl.g:883:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalPerspectiveDsl.g:883:4: rule__OpMultiAssign__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Alternatives();
@@ -3054,11 +2968,11 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalPerspectiveDsl.g:917:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    // InternalPerspectiveDsl.g:892:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
     public final void entryRuleXOrExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:918:1: ( ruleXOrExpression EOF )
-            // InternalPerspectiveDsl.g:919:1: ruleXOrExpression EOF
+            // InternalPerspectiveDsl.g:893:1: ( ruleXOrExpression EOF )
+            // InternalPerspectiveDsl.g:894:1: ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionRule()); 
@@ -3088,23 +3002,23 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalPerspectiveDsl.g:926:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:901:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
     public final void ruleXOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:930:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:931:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:905:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:906:2: ( ( rule__XOrExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:931:2: ( ( rule__XOrExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:932:3: ( rule__XOrExpression__Group__0 )
+            // InternalPerspectiveDsl.g:906:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:907:3: ( rule__XOrExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:933:3: ( rule__XOrExpression__Group__0 )
-            // InternalPerspectiveDsl.g:933:4: rule__XOrExpression__Group__0
+            // InternalPerspectiveDsl.g:908:3: ( rule__XOrExpression__Group__0 )
+            // InternalPerspectiveDsl.g:908:4: rule__XOrExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__0();
@@ -3139,11 +3053,11 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalPerspectiveDsl.g:942:1: entryRuleOpOr : ruleOpOr EOF ;
+    // InternalPerspectiveDsl.g:917:1: entryRuleOpOr : ruleOpOr EOF ;
     public final void entryRuleOpOr() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:943:1: ( ruleOpOr EOF )
-            // InternalPerspectiveDsl.g:944:1: ruleOpOr EOF
+            // InternalPerspectiveDsl.g:918:1: ( ruleOpOr EOF )
+            // InternalPerspectiveDsl.g:919:1: ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrRule()); 
@@ -3173,17 +3087,17 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalPerspectiveDsl.g:951:1: ruleOpOr : ( '||' ) ;
+    // InternalPerspectiveDsl.g:926:1: ruleOpOr : ( '||' ) ;
     public final void ruleOpOr() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:955:2: ( ( '||' ) )
-            // InternalPerspectiveDsl.g:956:2: ( '||' )
+            // InternalPerspectiveDsl.g:930:2: ( ( '||' ) )
+            // InternalPerspectiveDsl.g:931:2: ( '||' )
             {
-            // InternalPerspectiveDsl.g:956:2: ( '||' )
-            // InternalPerspectiveDsl.g:957:3: '||'
+            // InternalPerspectiveDsl.g:931:2: ( '||' )
+            // InternalPerspectiveDsl.g:932:3: '||'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
@@ -3214,11 +3128,11 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalPerspectiveDsl.g:967:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    // InternalPerspectiveDsl.g:942:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
     public final void entryRuleXAndExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:968:1: ( ruleXAndExpression EOF )
-            // InternalPerspectiveDsl.g:969:1: ruleXAndExpression EOF
+            // InternalPerspectiveDsl.g:943:1: ( ruleXAndExpression EOF )
+            // InternalPerspectiveDsl.g:944:1: ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionRule()); 
@@ -3248,23 +3162,23 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalPerspectiveDsl.g:976:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:951:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
     public final void ruleXAndExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:980:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:981:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:955:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:956:2: ( ( rule__XAndExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:981:2: ( ( rule__XAndExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:982:3: ( rule__XAndExpression__Group__0 )
+            // InternalPerspectiveDsl.g:956:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:957:3: ( rule__XAndExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:983:3: ( rule__XAndExpression__Group__0 )
-            // InternalPerspectiveDsl.g:983:4: rule__XAndExpression__Group__0
+            // InternalPerspectiveDsl.g:958:3: ( rule__XAndExpression__Group__0 )
+            // InternalPerspectiveDsl.g:958:4: rule__XAndExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__0();
@@ -3299,11 +3213,11 @@
 
 
     // $ANTLR start "entryRuleOpAnd"
-    // InternalPerspectiveDsl.g:992:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    // InternalPerspectiveDsl.g:967:1: entryRuleOpAnd : ruleOpAnd EOF ;
     public final void entryRuleOpAnd() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:993:1: ( ruleOpAnd EOF )
-            // InternalPerspectiveDsl.g:994:1: ruleOpAnd EOF
+            // InternalPerspectiveDsl.g:968:1: ( ruleOpAnd EOF )
+            // InternalPerspectiveDsl.g:969:1: ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndRule()); 
@@ -3333,17 +3247,17 @@
 
 
     // $ANTLR start "ruleOpAnd"
-    // InternalPerspectiveDsl.g:1001:1: ruleOpAnd : ( '&&' ) ;
+    // InternalPerspectiveDsl.g:976:1: ruleOpAnd : ( '&&' ) ;
     public final void ruleOpAnd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1005:2: ( ( '&&' ) )
-            // InternalPerspectiveDsl.g:1006:2: ( '&&' )
+            // InternalPerspectiveDsl.g:980:2: ( ( '&&' ) )
+            // InternalPerspectiveDsl.g:981:2: ( '&&' )
             {
-            // InternalPerspectiveDsl.g:1006:2: ( '&&' )
-            // InternalPerspectiveDsl.g:1007:3: '&&'
+            // InternalPerspectiveDsl.g:981:2: ( '&&' )
+            // InternalPerspectiveDsl.g:982:3: '&&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
@@ -3374,11 +3288,11 @@
 
 
     // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalPerspectiveDsl.g:1017:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    // InternalPerspectiveDsl.g:992:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
     public final void entryRuleXEqualityExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1018:1: ( ruleXEqualityExpression EOF )
-            // InternalPerspectiveDsl.g:1019:1: ruleXEqualityExpression EOF
+            // InternalPerspectiveDsl.g:993:1: ( ruleXEqualityExpression EOF )
+            // InternalPerspectiveDsl.g:994:1: ruleXEqualityExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionRule()); 
@@ -3408,23 +3322,23 @@
 
 
     // $ANTLR start "ruleXEqualityExpression"
-    // InternalPerspectiveDsl.g:1026:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1001:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
     public final void ruleXEqualityExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1030:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1031:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1005:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1006:2: ( ( rule__XEqualityExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1031:2: ( ( rule__XEqualityExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1032:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1006:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1007:3: ( rule__XEqualityExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1033:3: ( rule__XEqualityExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1033:4: rule__XEqualityExpression__Group__0
+            // InternalPerspectiveDsl.g:1008:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1008:4: rule__XEqualityExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__0();
@@ -3459,11 +3373,11 @@
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalPerspectiveDsl.g:1042:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    // InternalPerspectiveDsl.g:1017:1: entryRuleOpEquality : ruleOpEquality EOF ;
     public final void entryRuleOpEquality() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1043:1: ( ruleOpEquality EOF )
-            // InternalPerspectiveDsl.g:1044:1: ruleOpEquality EOF
+            // InternalPerspectiveDsl.g:1018:1: ( ruleOpEquality EOF )
+            // InternalPerspectiveDsl.g:1019:1: ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityRule()); 
@@ -3493,23 +3407,23 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalPerspectiveDsl.g:1051:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1026:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
     public final void ruleOpEquality() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1055:2: ( ( ( rule__OpEquality__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1056:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalPerspectiveDsl.g:1030:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1031:2: ( ( rule__OpEquality__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1056:2: ( ( rule__OpEquality__Alternatives ) )
-            // InternalPerspectiveDsl.g:1057:3: ( rule__OpEquality__Alternatives )
+            // InternalPerspectiveDsl.g:1031:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalPerspectiveDsl.g:1032:3: ( rule__OpEquality__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1058:3: ( rule__OpEquality__Alternatives )
-            // InternalPerspectiveDsl.g:1058:4: rule__OpEquality__Alternatives
+            // InternalPerspectiveDsl.g:1033:3: ( rule__OpEquality__Alternatives )
+            // InternalPerspectiveDsl.g:1033:4: rule__OpEquality__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpEquality__Alternatives();
@@ -3544,11 +3458,11 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalPerspectiveDsl.g:1067:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    // InternalPerspectiveDsl.g:1042:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
     public final void entryRuleXRelationalExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1068:1: ( ruleXRelationalExpression EOF )
-            // InternalPerspectiveDsl.g:1069:1: ruleXRelationalExpression EOF
+            // InternalPerspectiveDsl.g:1043:1: ( ruleXRelationalExpression EOF )
+            // InternalPerspectiveDsl.g:1044:1: ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionRule()); 
@@ -3578,23 +3492,23 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalPerspectiveDsl.g:1076:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1051:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
     public final void ruleXRelationalExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1080:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1081:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1055:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1056:2: ( ( rule__XRelationalExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1081:2: ( ( rule__XRelationalExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1082:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1056:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1057:3: ( rule__XRelationalExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1083:3: ( rule__XRelationalExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1083:4: rule__XRelationalExpression__Group__0
+            // InternalPerspectiveDsl.g:1058:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1058:4: rule__XRelationalExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__0();
@@ -3629,11 +3543,11 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalPerspectiveDsl.g:1092:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    // InternalPerspectiveDsl.g:1067:1: entryRuleOpCompare : ruleOpCompare EOF ;
     public final void entryRuleOpCompare() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1093:1: ( ruleOpCompare EOF )
-            // InternalPerspectiveDsl.g:1094:1: ruleOpCompare EOF
+            // InternalPerspectiveDsl.g:1068:1: ( ruleOpCompare EOF )
+            // InternalPerspectiveDsl.g:1069:1: ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareRule()); 
@@ -3663,23 +3577,23 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalPerspectiveDsl.g:1101:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1076:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
     public final void ruleOpCompare() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1105:2: ( ( ( rule__OpCompare__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1106:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalPerspectiveDsl.g:1080:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1081:2: ( ( rule__OpCompare__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1106:2: ( ( rule__OpCompare__Alternatives ) )
-            // InternalPerspectiveDsl.g:1107:3: ( rule__OpCompare__Alternatives )
+            // InternalPerspectiveDsl.g:1081:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalPerspectiveDsl.g:1082:3: ( rule__OpCompare__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1108:3: ( rule__OpCompare__Alternatives )
-            // InternalPerspectiveDsl.g:1108:4: rule__OpCompare__Alternatives
+            // InternalPerspectiveDsl.g:1083:3: ( rule__OpCompare__Alternatives )
+            // InternalPerspectiveDsl.g:1083:4: rule__OpCompare__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Alternatives();
@@ -3714,11 +3628,11 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalPerspectiveDsl.g:1117:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    // InternalPerspectiveDsl.g:1092:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
     public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1118:1: ( ruleXOtherOperatorExpression EOF )
-            // InternalPerspectiveDsl.g:1119:1: ruleXOtherOperatorExpression EOF
+            // InternalPerspectiveDsl.g:1093:1: ( ruleXOtherOperatorExpression EOF )
+            // InternalPerspectiveDsl.g:1094:1: ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -3748,23 +3662,23 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalPerspectiveDsl.g:1126:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1101:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
     public final void ruleXOtherOperatorExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1130:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1131:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1105:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1106:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1131:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1132:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1106:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1107:3: ( rule__XOtherOperatorExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1133:3: ( rule__XOtherOperatorExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1133:4: rule__XOtherOperatorExpression__Group__0
+            // InternalPerspectiveDsl.g:1108:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1108:4: rule__XOtherOperatorExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__0();
@@ -3799,11 +3713,11 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalPerspectiveDsl.g:1142:1: entryRuleOpOther : ruleOpOther EOF ;
+    // InternalPerspectiveDsl.g:1117:1: entryRuleOpOther : ruleOpOther EOF ;
     public final void entryRuleOpOther() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1143:1: ( ruleOpOther EOF )
-            // InternalPerspectiveDsl.g:1144:1: ruleOpOther EOF
+            // InternalPerspectiveDsl.g:1118:1: ( ruleOpOther EOF )
+            // InternalPerspectiveDsl.g:1119:1: ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherRule()); 
@@ -3833,23 +3747,23 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalPerspectiveDsl.g:1151:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1126:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
     public final void ruleOpOther() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1155:2: ( ( ( rule__OpOther__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1156:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalPerspectiveDsl.g:1130:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1131:2: ( ( rule__OpOther__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1156:2: ( ( rule__OpOther__Alternatives ) )
-            // InternalPerspectiveDsl.g:1157:3: ( rule__OpOther__Alternatives )
+            // InternalPerspectiveDsl.g:1131:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalPerspectiveDsl.g:1132:3: ( rule__OpOther__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1158:3: ( rule__OpOther__Alternatives )
-            // InternalPerspectiveDsl.g:1158:4: rule__OpOther__Alternatives
+            // InternalPerspectiveDsl.g:1133:3: ( rule__OpOther__Alternatives )
+            // InternalPerspectiveDsl.g:1133:4: rule__OpOther__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives();
@@ -3884,11 +3798,11 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalPerspectiveDsl.g:1167:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    // InternalPerspectiveDsl.g:1142:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
     public final void entryRuleXAdditiveExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1168:1: ( ruleXAdditiveExpression EOF )
-            // InternalPerspectiveDsl.g:1169:1: ruleXAdditiveExpression EOF
+            // InternalPerspectiveDsl.g:1143:1: ( ruleXAdditiveExpression EOF )
+            // InternalPerspectiveDsl.g:1144:1: ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionRule()); 
@@ -3918,23 +3832,23 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalPerspectiveDsl.g:1176:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1151:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
     public final void ruleXAdditiveExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1180:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1181:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1155:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1156:2: ( ( rule__XAdditiveExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1181:2: ( ( rule__XAdditiveExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1182:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1156:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1157:3: ( rule__XAdditiveExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1183:3: ( rule__XAdditiveExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1183:4: rule__XAdditiveExpression__Group__0
+            // InternalPerspectiveDsl.g:1158:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1158:4: rule__XAdditiveExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__0();
@@ -3969,11 +3883,11 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalPerspectiveDsl.g:1192:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    // InternalPerspectiveDsl.g:1167:1: entryRuleOpAdd : ruleOpAdd EOF ;
     public final void entryRuleOpAdd() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1193:1: ( ruleOpAdd EOF )
-            // InternalPerspectiveDsl.g:1194:1: ruleOpAdd EOF
+            // InternalPerspectiveDsl.g:1168:1: ( ruleOpAdd EOF )
+            // InternalPerspectiveDsl.g:1169:1: ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddRule()); 
@@ -4003,23 +3917,23 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalPerspectiveDsl.g:1201:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1176:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
     public final void ruleOpAdd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1205:2: ( ( ( rule__OpAdd__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1206:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalPerspectiveDsl.g:1180:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1181:2: ( ( rule__OpAdd__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1206:2: ( ( rule__OpAdd__Alternatives ) )
-            // InternalPerspectiveDsl.g:1207:3: ( rule__OpAdd__Alternatives )
+            // InternalPerspectiveDsl.g:1181:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalPerspectiveDsl.g:1182:3: ( rule__OpAdd__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1208:3: ( rule__OpAdd__Alternatives )
-            // InternalPerspectiveDsl.g:1208:4: rule__OpAdd__Alternatives
+            // InternalPerspectiveDsl.g:1183:3: ( rule__OpAdd__Alternatives )
+            // InternalPerspectiveDsl.g:1183:4: rule__OpAdd__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpAdd__Alternatives();
@@ -4054,11 +3968,11 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalPerspectiveDsl.g:1217:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    // InternalPerspectiveDsl.g:1192:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
     public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1218:1: ( ruleXMultiplicativeExpression EOF )
-            // InternalPerspectiveDsl.g:1219:1: ruleXMultiplicativeExpression EOF
+            // InternalPerspectiveDsl.g:1193:1: ( ruleXMultiplicativeExpression EOF )
+            // InternalPerspectiveDsl.g:1194:1: ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -4088,23 +4002,23 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalPerspectiveDsl.g:1226:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1201:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
     public final void ruleXMultiplicativeExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1230:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1231:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1205:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1206:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1231:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1232:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1206:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1207:3: ( rule__XMultiplicativeExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1233:3: ( rule__XMultiplicativeExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1233:4: rule__XMultiplicativeExpression__Group__0
+            // InternalPerspectiveDsl.g:1208:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1208:4: rule__XMultiplicativeExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__0();
@@ -4139,11 +4053,11 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalPerspectiveDsl.g:1242:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    // InternalPerspectiveDsl.g:1217:1: entryRuleOpMulti : ruleOpMulti EOF ;
     public final void entryRuleOpMulti() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1243:1: ( ruleOpMulti EOF )
-            // InternalPerspectiveDsl.g:1244:1: ruleOpMulti EOF
+            // InternalPerspectiveDsl.g:1218:1: ( ruleOpMulti EOF )
+            // InternalPerspectiveDsl.g:1219:1: ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiRule()); 
@@ -4173,23 +4087,23 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalPerspectiveDsl.g:1251:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1226:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
     public final void ruleOpMulti() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1255:2: ( ( ( rule__OpMulti__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1256:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalPerspectiveDsl.g:1230:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1231:2: ( ( rule__OpMulti__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1256:2: ( ( rule__OpMulti__Alternatives ) )
-            // InternalPerspectiveDsl.g:1257:3: ( rule__OpMulti__Alternatives )
+            // InternalPerspectiveDsl.g:1231:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalPerspectiveDsl.g:1232:3: ( rule__OpMulti__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1258:3: ( rule__OpMulti__Alternatives )
-            // InternalPerspectiveDsl.g:1258:4: rule__OpMulti__Alternatives
+            // InternalPerspectiveDsl.g:1233:3: ( rule__OpMulti__Alternatives )
+            // InternalPerspectiveDsl.g:1233:4: rule__OpMulti__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMulti__Alternatives();
@@ -4224,11 +4138,11 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalPerspectiveDsl.g:1267:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    // InternalPerspectiveDsl.g:1242:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
     public final void entryRuleXUnaryOperation() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1268:1: ( ruleXUnaryOperation EOF )
-            // InternalPerspectiveDsl.g:1269:1: ruleXUnaryOperation EOF
+            // InternalPerspectiveDsl.g:1243:1: ( ruleXUnaryOperation EOF )
+            // InternalPerspectiveDsl.g:1244:1: ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationRule()); 
@@ -4258,23 +4172,23 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalPerspectiveDsl.g:1276:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1251:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
     public final void ruleXUnaryOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1280:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1281:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalPerspectiveDsl.g:1255:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1256:2: ( ( rule__XUnaryOperation__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1281:2: ( ( rule__XUnaryOperation__Alternatives ) )
-            // InternalPerspectiveDsl.g:1282:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalPerspectiveDsl.g:1256:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalPerspectiveDsl.g:1257:3: ( rule__XUnaryOperation__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1283:3: ( rule__XUnaryOperation__Alternatives )
-            // InternalPerspectiveDsl.g:1283:4: rule__XUnaryOperation__Alternatives
+            // InternalPerspectiveDsl.g:1258:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalPerspectiveDsl.g:1258:4: rule__XUnaryOperation__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Alternatives();
@@ -4309,11 +4223,11 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalPerspectiveDsl.g:1292:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    // InternalPerspectiveDsl.g:1267:1: entryRuleOpUnary : ruleOpUnary EOF ;
     public final void entryRuleOpUnary() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1293:1: ( ruleOpUnary EOF )
-            // InternalPerspectiveDsl.g:1294:1: ruleOpUnary EOF
+            // InternalPerspectiveDsl.g:1268:1: ( ruleOpUnary EOF )
+            // InternalPerspectiveDsl.g:1269:1: ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryRule()); 
@@ -4343,23 +4257,23 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalPerspectiveDsl.g:1301:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1276:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
     public final void ruleOpUnary() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1305:2: ( ( ( rule__OpUnary__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1306:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalPerspectiveDsl.g:1280:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1281:2: ( ( rule__OpUnary__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1306:2: ( ( rule__OpUnary__Alternatives ) )
-            // InternalPerspectiveDsl.g:1307:3: ( rule__OpUnary__Alternatives )
+            // InternalPerspectiveDsl.g:1281:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalPerspectiveDsl.g:1282:3: ( rule__OpUnary__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1308:3: ( rule__OpUnary__Alternatives )
-            // InternalPerspectiveDsl.g:1308:4: rule__OpUnary__Alternatives
+            // InternalPerspectiveDsl.g:1283:3: ( rule__OpUnary__Alternatives )
+            // InternalPerspectiveDsl.g:1283:4: rule__OpUnary__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpUnary__Alternatives();
@@ -4394,11 +4308,11 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalPerspectiveDsl.g:1317:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    // InternalPerspectiveDsl.g:1292:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
     public final void entryRuleXCastedExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1318:1: ( ruleXCastedExpression EOF )
-            // InternalPerspectiveDsl.g:1319:1: ruleXCastedExpression EOF
+            // InternalPerspectiveDsl.g:1293:1: ( ruleXCastedExpression EOF )
+            // InternalPerspectiveDsl.g:1294:1: ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionRule()); 
@@ -4428,23 +4342,23 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalPerspectiveDsl.g:1326:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1301:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
     public final void ruleXCastedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1330:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1331:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1305:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1306:2: ( ( rule__XCastedExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1331:2: ( ( rule__XCastedExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1332:3: ( rule__XCastedExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1306:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1307:3: ( rule__XCastedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1333:3: ( rule__XCastedExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1333:4: rule__XCastedExpression__Group__0
+            // InternalPerspectiveDsl.g:1308:3: ( rule__XCastedExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1308:4: rule__XCastedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__0();
@@ -4479,11 +4393,11 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalPerspectiveDsl.g:1342:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    // InternalPerspectiveDsl.g:1317:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
     public final void entryRuleXPostfixOperation() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1343:1: ( ruleXPostfixOperation EOF )
-            // InternalPerspectiveDsl.g:1344:1: ruleXPostfixOperation EOF
+            // InternalPerspectiveDsl.g:1318:1: ( ruleXPostfixOperation EOF )
+            // InternalPerspectiveDsl.g:1319:1: ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationRule()); 
@@ -4513,23 +4427,23 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalPerspectiveDsl.g:1351:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1326:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
     public final void ruleXPostfixOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1355:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1356:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalPerspectiveDsl.g:1330:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1331:2: ( ( rule__XPostfixOperation__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1356:2: ( ( rule__XPostfixOperation__Group__0 ) )
-            // InternalPerspectiveDsl.g:1357:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalPerspectiveDsl.g:1331:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalPerspectiveDsl.g:1332:3: ( rule__XPostfixOperation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1358:3: ( rule__XPostfixOperation__Group__0 )
-            // InternalPerspectiveDsl.g:1358:4: rule__XPostfixOperation__Group__0
+            // InternalPerspectiveDsl.g:1333:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalPerspectiveDsl.g:1333:4: rule__XPostfixOperation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__0();
@@ -4564,11 +4478,11 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalPerspectiveDsl.g:1367:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    // InternalPerspectiveDsl.g:1342:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
     public final void entryRuleOpPostfix() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1368:1: ( ruleOpPostfix EOF )
-            // InternalPerspectiveDsl.g:1369:1: ruleOpPostfix EOF
+            // InternalPerspectiveDsl.g:1343:1: ( ruleOpPostfix EOF )
+            // InternalPerspectiveDsl.g:1344:1: ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixRule()); 
@@ -4598,23 +4512,23 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalPerspectiveDsl.g:1376:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1351:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
     public final void ruleOpPostfix() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1380:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1381:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalPerspectiveDsl.g:1355:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1356:2: ( ( rule__OpPostfix__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1381:2: ( ( rule__OpPostfix__Alternatives ) )
-            // InternalPerspectiveDsl.g:1382:3: ( rule__OpPostfix__Alternatives )
+            // InternalPerspectiveDsl.g:1356:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalPerspectiveDsl.g:1357:3: ( rule__OpPostfix__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1383:3: ( rule__OpPostfix__Alternatives )
-            // InternalPerspectiveDsl.g:1383:4: rule__OpPostfix__Alternatives
+            // InternalPerspectiveDsl.g:1358:3: ( rule__OpPostfix__Alternatives )
+            // InternalPerspectiveDsl.g:1358:4: rule__OpPostfix__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpPostfix__Alternatives();
@@ -4649,11 +4563,11 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalPerspectiveDsl.g:1392:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    // InternalPerspectiveDsl.g:1367:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
     public final void entryRuleXMemberFeatureCall() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1393:1: ( ruleXMemberFeatureCall EOF )
-            // InternalPerspectiveDsl.g:1394:1: ruleXMemberFeatureCall EOF
+            // InternalPerspectiveDsl.g:1368:1: ( ruleXMemberFeatureCall EOF )
+            // InternalPerspectiveDsl.g:1369:1: ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallRule()); 
@@ -4683,23 +4597,23 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalPerspectiveDsl.g:1401:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1376:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
     public final void ruleXMemberFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1405:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1406:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalPerspectiveDsl.g:1380:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1381:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1406:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
-            // InternalPerspectiveDsl.g:1407:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalPerspectiveDsl.g:1381:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalPerspectiveDsl.g:1382:3: ( rule__XMemberFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1408:3: ( rule__XMemberFeatureCall__Group__0 )
-            // InternalPerspectiveDsl.g:1408:4: rule__XMemberFeatureCall__Group__0
+            // InternalPerspectiveDsl.g:1383:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalPerspectiveDsl.g:1383:4: rule__XMemberFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__0();
@@ -4734,11 +4648,11 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalPerspectiveDsl.g:1417:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    // InternalPerspectiveDsl.g:1392:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
     public final void entryRuleXPrimaryExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1418:1: ( ruleXPrimaryExpression EOF )
-            // InternalPerspectiveDsl.g:1419:1: ruleXPrimaryExpression EOF
+            // InternalPerspectiveDsl.g:1393:1: ( ruleXPrimaryExpression EOF )
+            // InternalPerspectiveDsl.g:1394:1: ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionRule()); 
@@ -4768,23 +4682,23 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalPerspectiveDsl.g:1426:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1401:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
     public final void ruleXPrimaryExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1430:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1431:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalPerspectiveDsl.g:1405:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1406:2: ( ( rule__XPrimaryExpression__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1431:2: ( ( rule__XPrimaryExpression__Alternatives ) )
-            // InternalPerspectiveDsl.g:1432:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalPerspectiveDsl.g:1406:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalPerspectiveDsl.g:1407:3: ( rule__XPrimaryExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1433:3: ( rule__XPrimaryExpression__Alternatives )
-            // InternalPerspectiveDsl.g:1433:4: rule__XPrimaryExpression__Alternatives
+            // InternalPerspectiveDsl.g:1408:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalPerspectiveDsl.g:1408:4: rule__XPrimaryExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XPrimaryExpression__Alternatives();
@@ -4819,11 +4733,11 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalPerspectiveDsl.g:1442:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    // InternalPerspectiveDsl.g:1417:1: entryRuleXLiteral : ruleXLiteral EOF ;
     public final void entryRuleXLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1443:1: ( ruleXLiteral EOF )
-            // InternalPerspectiveDsl.g:1444:1: ruleXLiteral EOF
+            // InternalPerspectiveDsl.g:1418:1: ( ruleXLiteral EOF )
+            // InternalPerspectiveDsl.g:1419:1: ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralRule()); 
@@ -4853,23 +4767,23 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalPerspectiveDsl.g:1451:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1426:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
     public final void ruleXLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1455:2: ( ( ( rule__XLiteral__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1456:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalPerspectiveDsl.g:1430:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1431:2: ( ( rule__XLiteral__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1456:2: ( ( rule__XLiteral__Alternatives ) )
-            // InternalPerspectiveDsl.g:1457:3: ( rule__XLiteral__Alternatives )
+            // InternalPerspectiveDsl.g:1431:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalPerspectiveDsl.g:1432:3: ( rule__XLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1458:3: ( rule__XLiteral__Alternatives )
-            // InternalPerspectiveDsl.g:1458:4: rule__XLiteral__Alternatives
+            // InternalPerspectiveDsl.g:1433:3: ( rule__XLiteral__Alternatives )
+            // InternalPerspectiveDsl.g:1433:4: rule__XLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XLiteral__Alternatives();
@@ -4904,11 +4818,11 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalPerspectiveDsl.g:1467:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    // InternalPerspectiveDsl.g:1442:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
     public final void entryRuleXCollectionLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1468:1: ( ruleXCollectionLiteral EOF )
-            // InternalPerspectiveDsl.g:1469:1: ruleXCollectionLiteral EOF
+            // InternalPerspectiveDsl.g:1443:1: ( ruleXCollectionLiteral EOF )
+            // InternalPerspectiveDsl.g:1444:1: ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralRule()); 
@@ -4938,23 +4852,23 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalPerspectiveDsl.g:1476:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1451:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
     public final void ruleXCollectionLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1480:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1481:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalPerspectiveDsl.g:1455:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1456:2: ( ( rule__XCollectionLiteral__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1481:2: ( ( rule__XCollectionLiteral__Alternatives ) )
-            // InternalPerspectiveDsl.g:1482:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalPerspectiveDsl.g:1456:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalPerspectiveDsl.g:1457:3: ( rule__XCollectionLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1483:3: ( rule__XCollectionLiteral__Alternatives )
-            // InternalPerspectiveDsl.g:1483:4: rule__XCollectionLiteral__Alternatives
+            // InternalPerspectiveDsl.g:1458:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalPerspectiveDsl.g:1458:4: rule__XCollectionLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XCollectionLiteral__Alternatives();
@@ -4989,11 +4903,11 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalPerspectiveDsl.g:1492:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    // InternalPerspectiveDsl.g:1467:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
     public final void entryRuleXSetLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1493:1: ( ruleXSetLiteral EOF )
-            // InternalPerspectiveDsl.g:1494:1: ruleXSetLiteral EOF
+            // InternalPerspectiveDsl.g:1468:1: ( ruleXSetLiteral EOF )
+            // InternalPerspectiveDsl.g:1469:1: ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralRule()); 
@@ -5023,23 +4937,23 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalPerspectiveDsl.g:1501:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1476:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
     public final void ruleXSetLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1505:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1506:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:1480:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1481:2: ( ( rule__XSetLiteral__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1506:2: ( ( rule__XSetLiteral__Group__0 ) )
-            // InternalPerspectiveDsl.g:1507:3: ( rule__XSetLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:1481:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:1482:3: ( rule__XSetLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1508:3: ( rule__XSetLiteral__Group__0 )
-            // InternalPerspectiveDsl.g:1508:4: rule__XSetLiteral__Group__0
+            // InternalPerspectiveDsl.g:1483:3: ( rule__XSetLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:1483:4: rule__XSetLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__0();
@@ -5074,11 +4988,11 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalPerspectiveDsl.g:1517:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    // InternalPerspectiveDsl.g:1492:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
     public final void entryRuleXListLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1518:1: ( ruleXListLiteral EOF )
-            // InternalPerspectiveDsl.g:1519:1: ruleXListLiteral EOF
+            // InternalPerspectiveDsl.g:1493:1: ( ruleXListLiteral EOF )
+            // InternalPerspectiveDsl.g:1494:1: ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralRule()); 
@@ -5108,23 +5022,23 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalPerspectiveDsl.g:1526:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1501:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
     public final void ruleXListLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1530:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1531:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:1505:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1506:2: ( ( rule__XListLiteral__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1531:2: ( ( rule__XListLiteral__Group__0 ) )
-            // InternalPerspectiveDsl.g:1532:3: ( rule__XListLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:1506:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:1507:3: ( rule__XListLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1533:3: ( rule__XListLiteral__Group__0 )
-            // InternalPerspectiveDsl.g:1533:4: rule__XListLiteral__Group__0
+            // InternalPerspectiveDsl.g:1508:3: ( rule__XListLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:1508:4: rule__XListLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__0();
@@ -5159,11 +5073,11 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalPerspectiveDsl.g:1542:1: entryRuleXClosure : ruleXClosure EOF ;
+    // InternalPerspectiveDsl.g:1517:1: entryRuleXClosure : ruleXClosure EOF ;
     public final void entryRuleXClosure() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1543:1: ( ruleXClosure EOF )
-            // InternalPerspectiveDsl.g:1544:1: ruleXClosure EOF
+            // InternalPerspectiveDsl.g:1518:1: ( ruleXClosure EOF )
+            // InternalPerspectiveDsl.g:1519:1: ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureRule()); 
@@ -5193,23 +5107,23 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalPerspectiveDsl.g:1551:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1526:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
     public final void ruleXClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1555:2: ( ( ( rule__XClosure__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1556:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalPerspectiveDsl.g:1530:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1531:2: ( ( rule__XClosure__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1556:2: ( ( rule__XClosure__Group__0 ) )
-            // InternalPerspectiveDsl.g:1557:3: ( rule__XClosure__Group__0 )
+            // InternalPerspectiveDsl.g:1531:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalPerspectiveDsl.g:1532:3: ( rule__XClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1558:3: ( rule__XClosure__Group__0 )
-            // InternalPerspectiveDsl.g:1558:4: rule__XClosure__Group__0
+            // InternalPerspectiveDsl.g:1533:3: ( rule__XClosure__Group__0 )
+            // InternalPerspectiveDsl.g:1533:4: rule__XClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__0();
@@ -5244,11 +5158,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalPerspectiveDsl.g:1567:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    // InternalPerspectiveDsl.g:1542:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
     public final void entryRuleXExpressionInClosure() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1568:1: ( ruleXExpressionInClosure EOF )
-            // InternalPerspectiveDsl.g:1569:1: ruleXExpressionInClosure EOF
+            // InternalPerspectiveDsl.g:1543:1: ( ruleXExpressionInClosure EOF )
+            // InternalPerspectiveDsl.g:1544:1: ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureRule()); 
@@ -5278,23 +5192,23 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalPerspectiveDsl.g:1576:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1551:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
     public final void ruleXExpressionInClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1580:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1581:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalPerspectiveDsl.g:1555:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1556:2: ( ( rule__XExpressionInClosure__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1581:2: ( ( rule__XExpressionInClosure__Group__0 ) )
-            // InternalPerspectiveDsl.g:1582:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalPerspectiveDsl.g:1556:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalPerspectiveDsl.g:1557:3: ( rule__XExpressionInClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1583:3: ( rule__XExpressionInClosure__Group__0 )
-            // InternalPerspectiveDsl.g:1583:4: rule__XExpressionInClosure__Group__0
+            // InternalPerspectiveDsl.g:1558:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalPerspectiveDsl.g:1558:4: rule__XExpressionInClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__0();
@@ -5329,11 +5243,11 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalPerspectiveDsl.g:1592:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    // InternalPerspectiveDsl.g:1567:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
     public final void entryRuleXShortClosure() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1593:1: ( ruleXShortClosure EOF )
-            // InternalPerspectiveDsl.g:1594:1: ruleXShortClosure EOF
+            // InternalPerspectiveDsl.g:1568:1: ( ruleXShortClosure EOF )
+            // InternalPerspectiveDsl.g:1569:1: ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureRule()); 
@@ -5363,23 +5277,23 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalPerspectiveDsl.g:1601:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1576:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
     public final void ruleXShortClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1605:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1606:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalPerspectiveDsl.g:1580:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1581:2: ( ( rule__XShortClosure__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1606:2: ( ( rule__XShortClosure__Group__0 ) )
-            // InternalPerspectiveDsl.g:1607:3: ( rule__XShortClosure__Group__0 )
+            // InternalPerspectiveDsl.g:1581:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalPerspectiveDsl.g:1582:3: ( rule__XShortClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1608:3: ( rule__XShortClosure__Group__0 )
-            // InternalPerspectiveDsl.g:1608:4: rule__XShortClosure__Group__0
+            // InternalPerspectiveDsl.g:1583:3: ( rule__XShortClosure__Group__0 )
+            // InternalPerspectiveDsl.g:1583:4: rule__XShortClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__0();
@@ -5414,11 +5328,11 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalPerspectiveDsl.g:1617:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    // InternalPerspectiveDsl.g:1592:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
     public final void entryRuleXParenthesizedExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1618:1: ( ruleXParenthesizedExpression EOF )
-            // InternalPerspectiveDsl.g:1619:1: ruleXParenthesizedExpression EOF
+            // InternalPerspectiveDsl.g:1593:1: ( ruleXParenthesizedExpression EOF )
+            // InternalPerspectiveDsl.g:1594:1: ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -5448,23 +5362,23 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalPerspectiveDsl.g:1626:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1601:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
     public final void ruleXParenthesizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1630:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1631:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1605:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1606:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1631:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1632:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1606:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1607:3: ( rule__XParenthesizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1633:3: ( rule__XParenthesizedExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1633:4: rule__XParenthesizedExpression__Group__0
+            // InternalPerspectiveDsl.g:1608:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1608:4: rule__XParenthesizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__0();
@@ -5499,11 +5413,11 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalPerspectiveDsl.g:1642:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    // InternalPerspectiveDsl.g:1617:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
     public final void entryRuleXIfExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1643:1: ( ruleXIfExpression EOF )
-            // InternalPerspectiveDsl.g:1644:1: ruleXIfExpression EOF
+            // InternalPerspectiveDsl.g:1618:1: ( ruleXIfExpression EOF )
+            // InternalPerspectiveDsl.g:1619:1: ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionRule()); 
@@ -5533,23 +5447,23 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalPerspectiveDsl.g:1651:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1626:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
     public final void ruleXIfExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1655:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1656:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1630:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1631:2: ( ( rule__XIfExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1656:2: ( ( rule__XIfExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1657:3: ( rule__XIfExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1631:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1632:3: ( rule__XIfExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1658:3: ( rule__XIfExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1658:4: rule__XIfExpression__Group__0
+            // InternalPerspectiveDsl.g:1633:3: ( rule__XIfExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1633:4: rule__XIfExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__0();
@@ -5584,11 +5498,11 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalPerspectiveDsl.g:1667:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    // InternalPerspectiveDsl.g:1642:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
     public final void entryRuleXSwitchExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1668:1: ( ruleXSwitchExpression EOF )
-            // InternalPerspectiveDsl.g:1669:1: ruleXSwitchExpression EOF
+            // InternalPerspectiveDsl.g:1643:1: ( ruleXSwitchExpression EOF )
+            // InternalPerspectiveDsl.g:1644:1: ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionRule()); 
@@ -5618,23 +5532,23 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalPerspectiveDsl.g:1676:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1651:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
     public final void ruleXSwitchExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1680:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1681:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1655:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1656:2: ( ( rule__XSwitchExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1681:2: ( ( rule__XSwitchExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1682:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1656:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1657:3: ( rule__XSwitchExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1683:3: ( rule__XSwitchExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1683:4: rule__XSwitchExpression__Group__0
+            // InternalPerspectiveDsl.g:1658:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1658:4: rule__XSwitchExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__0();
@@ -5669,11 +5583,11 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalPerspectiveDsl.g:1692:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    // InternalPerspectiveDsl.g:1667:1: entryRuleXCasePart : ruleXCasePart EOF ;
     public final void entryRuleXCasePart() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1693:1: ( ruleXCasePart EOF )
-            // InternalPerspectiveDsl.g:1694:1: ruleXCasePart EOF
+            // InternalPerspectiveDsl.g:1668:1: ( ruleXCasePart EOF )
+            // InternalPerspectiveDsl.g:1669:1: ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartRule()); 
@@ -5703,23 +5617,23 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalPerspectiveDsl.g:1701:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1676:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
     public final void ruleXCasePart() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1705:2: ( ( ( rule__XCasePart__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1706:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalPerspectiveDsl.g:1680:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1681:2: ( ( rule__XCasePart__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1706:2: ( ( rule__XCasePart__Group__0 ) )
-            // InternalPerspectiveDsl.g:1707:3: ( rule__XCasePart__Group__0 )
+            // InternalPerspectiveDsl.g:1681:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalPerspectiveDsl.g:1682:3: ( rule__XCasePart__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1708:3: ( rule__XCasePart__Group__0 )
-            // InternalPerspectiveDsl.g:1708:4: rule__XCasePart__Group__0
+            // InternalPerspectiveDsl.g:1683:3: ( rule__XCasePart__Group__0 )
+            // InternalPerspectiveDsl.g:1683:4: rule__XCasePart__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__0();
@@ -5754,11 +5668,11 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalPerspectiveDsl.g:1717:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    // InternalPerspectiveDsl.g:1692:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
     public final void entryRuleXForLoopExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1718:1: ( ruleXForLoopExpression EOF )
-            // InternalPerspectiveDsl.g:1719:1: ruleXForLoopExpression EOF
+            // InternalPerspectiveDsl.g:1693:1: ( ruleXForLoopExpression EOF )
+            // InternalPerspectiveDsl.g:1694:1: ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionRule()); 
@@ -5788,23 +5702,23 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalPerspectiveDsl.g:1726:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1701:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
     public final void ruleXForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1730:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1731:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1705:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1706:2: ( ( rule__XForLoopExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1731:2: ( ( rule__XForLoopExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1732:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1706:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1707:3: ( rule__XForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1733:3: ( rule__XForLoopExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1733:4: rule__XForLoopExpression__Group__0
+            // InternalPerspectiveDsl.g:1708:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1708:4: rule__XForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__0();
@@ -5839,11 +5753,11 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalPerspectiveDsl.g:1742:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    // InternalPerspectiveDsl.g:1717:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
     public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1743:1: ( ruleXBasicForLoopExpression EOF )
-            // InternalPerspectiveDsl.g:1744:1: ruleXBasicForLoopExpression EOF
+            // InternalPerspectiveDsl.g:1718:1: ( ruleXBasicForLoopExpression EOF )
+            // InternalPerspectiveDsl.g:1719:1: ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -5873,23 +5787,23 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalPerspectiveDsl.g:1751:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1726:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
     public final void ruleXBasicForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1755:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1756:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1730:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1731:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1756:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1757:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1731:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1732:3: ( rule__XBasicForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1758:3: ( rule__XBasicForLoopExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1758:4: rule__XBasicForLoopExpression__Group__0
+            // InternalPerspectiveDsl.g:1733:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1733:4: rule__XBasicForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__0();
@@ -5924,11 +5838,11 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalPerspectiveDsl.g:1767:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    // InternalPerspectiveDsl.g:1742:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
     public final void entryRuleXWhileExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1768:1: ( ruleXWhileExpression EOF )
-            // InternalPerspectiveDsl.g:1769:1: ruleXWhileExpression EOF
+            // InternalPerspectiveDsl.g:1743:1: ( ruleXWhileExpression EOF )
+            // InternalPerspectiveDsl.g:1744:1: ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionRule()); 
@@ -5958,23 +5872,23 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalPerspectiveDsl.g:1776:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1751:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
     public final void ruleXWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1780:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1781:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1755:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1756:2: ( ( rule__XWhileExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1781:2: ( ( rule__XWhileExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1782:3: ( rule__XWhileExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1756:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1757:3: ( rule__XWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1783:3: ( rule__XWhileExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1783:4: rule__XWhileExpression__Group__0
+            // InternalPerspectiveDsl.g:1758:3: ( rule__XWhileExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1758:4: rule__XWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__0();
@@ -6009,11 +5923,11 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalPerspectiveDsl.g:1792:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    // InternalPerspectiveDsl.g:1767:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
     public final void entryRuleXDoWhileExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1793:1: ( ruleXDoWhileExpression EOF )
-            // InternalPerspectiveDsl.g:1794:1: ruleXDoWhileExpression EOF
+            // InternalPerspectiveDsl.g:1768:1: ( ruleXDoWhileExpression EOF )
+            // InternalPerspectiveDsl.g:1769:1: ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionRule()); 
@@ -6043,23 +5957,23 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalPerspectiveDsl.g:1801:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1776:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
     public final void ruleXDoWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1805:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1806:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1780:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1781:2: ( ( rule__XDoWhileExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1806:2: ( ( rule__XDoWhileExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1807:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1781:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1782:3: ( rule__XDoWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1808:3: ( rule__XDoWhileExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1808:4: rule__XDoWhileExpression__Group__0
+            // InternalPerspectiveDsl.g:1783:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1783:4: rule__XDoWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__0();
@@ -6094,11 +6008,11 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalPerspectiveDsl.g:1817:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    // InternalPerspectiveDsl.g:1792:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
     public final void entryRuleXBlockExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1818:1: ( ruleXBlockExpression EOF )
-            // InternalPerspectiveDsl.g:1819:1: ruleXBlockExpression EOF
+            // InternalPerspectiveDsl.g:1793:1: ( ruleXBlockExpression EOF )
+            // InternalPerspectiveDsl.g:1794:1: ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionRule()); 
@@ -6128,23 +6042,23 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalPerspectiveDsl.g:1826:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1801:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
     public final void ruleXBlockExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1830:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1831:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1805:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1806:2: ( ( rule__XBlockExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1831:2: ( ( rule__XBlockExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:1832:3: ( rule__XBlockExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1806:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:1807:3: ( rule__XBlockExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1833:3: ( rule__XBlockExpression__Group__0 )
-            // InternalPerspectiveDsl.g:1833:4: rule__XBlockExpression__Group__0
+            // InternalPerspectiveDsl.g:1808:3: ( rule__XBlockExpression__Group__0 )
+            // InternalPerspectiveDsl.g:1808:4: rule__XBlockExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__0();
@@ -6179,11 +6093,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalPerspectiveDsl.g:1842:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    // InternalPerspectiveDsl.g:1817:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
     public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1843:1: ( ruleXExpressionOrVarDeclaration EOF )
-            // InternalPerspectiveDsl.g:1844:1: ruleXExpressionOrVarDeclaration EOF
+            // InternalPerspectiveDsl.g:1818:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // InternalPerspectiveDsl.g:1819:1: ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -6213,23 +6127,23 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalPerspectiveDsl.g:1851:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1826:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
     public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1855:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1856:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalPerspectiveDsl.g:1830:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1831:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1856:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
-            // InternalPerspectiveDsl.g:1857:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalPerspectiveDsl.g:1831:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalPerspectiveDsl.g:1832:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1858:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
-            // InternalPerspectiveDsl.g:1858:4: rule__XExpressionOrVarDeclaration__Alternatives
+            // InternalPerspectiveDsl.g:1833:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalPerspectiveDsl.g:1833:4: rule__XExpressionOrVarDeclaration__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionOrVarDeclaration__Alternatives();
@@ -6264,11 +6178,11 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalPerspectiveDsl.g:1867:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    // InternalPerspectiveDsl.g:1842:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
     public final void entryRuleXVariableDeclaration() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1868:1: ( ruleXVariableDeclaration EOF )
-            // InternalPerspectiveDsl.g:1869:1: ruleXVariableDeclaration EOF
+            // InternalPerspectiveDsl.g:1843:1: ( ruleXVariableDeclaration EOF )
+            // InternalPerspectiveDsl.g:1844:1: ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationRule()); 
@@ -6298,23 +6212,23 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalPerspectiveDsl.g:1876:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1851:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
     public final void ruleXVariableDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1880:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1881:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalPerspectiveDsl.g:1855:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1856:2: ( ( rule__XVariableDeclaration__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1881:2: ( ( rule__XVariableDeclaration__Group__0 ) )
-            // InternalPerspectiveDsl.g:1882:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalPerspectiveDsl.g:1856:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalPerspectiveDsl.g:1857:3: ( rule__XVariableDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1883:3: ( rule__XVariableDeclaration__Group__0 )
-            // InternalPerspectiveDsl.g:1883:4: rule__XVariableDeclaration__Group__0
+            // InternalPerspectiveDsl.g:1858:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalPerspectiveDsl.g:1858:4: rule__XVariableDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__0();
@@ -6349,11 +6263,11 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalPerspectiveDsl.g:1892:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    // InternalPerspectiveDsl.g:1867:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
     public final void entryRuleJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1893:1: ( ruleJvmFormalParameter EOF )
-            // InternalPerspectiveDsl.g:1894:1: ruleJvmFormalParameter EOF
+            // InternalPerspectiveDsl.g:1868:1: ( ruleJvmFormalParameter EOF )
+            // InternalPerspectiveDsl.g:1869:1: ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterRule()); 
@@ -6383,23 +6297,23 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalPerspectiveDsl.g:1901:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1876:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
     public final void ruleJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1905:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1906:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalPerspectiveDsl.g:1880:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1881:2: ( ( rule__JvmFormalParameter__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1906:2: ( ( rule__JvmFormalParameter__Group__0 ) )
-            // InternalPerspectiveDsl.g:1907:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalPerspectiveDsl.g:1881:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalPerspectiveDsl.g:1882:3: ( rule__JvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1908:3: ( rule__JvmFormalParameter__Group__0 )
-            // InternalPerspectiveDsl.g:1908:4: rule__JvmFormalParameter__Group__0
+            // InternalPerspectiveDsl.g:1883:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalPerspectiveDsl.g:1883:4: rule__JvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__0();
@@ -6434,11 +6348,11 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalPerspectiveDsl.g:1917:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    // InternalPerspectiveDsl.g:1892:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
     public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1918:1: ( ruleFullJvmFormalParameter EOF )
-            // InternalPerspectiveDsl.g:1919:1: ruleFullJvmFormalParameter EOF
+            // InternalPerspectiveDsl.g:1893:1: ( ruleFullJvmFormalParameter EOF )
+            // InternalPerspectiveDsl.g:1894:1: ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -6468,23 +6382,23 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalPerspectiveDsl.g:1926:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1901:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
     public final void ruleFullJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1930:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1931:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalPerspectiveDsl.g:1905:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1906:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1931:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
-            // InternalPerspectiveDsl.g:1932:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalPerspectiveDsl.g:1906:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalPerspectiveDsl.g:1907:3: ( rule__FullJvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1933:3: ( rule__FullJvmFormalParameter__Group__0 )
-            // InternalPerspectiveDsl.g:1933:4: rule__FullJvmFormalParameter__Group__0
+            // InternalPerspectiveDsl.g:1908:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalPerspectiveDsl.g:1908:4: rule__FullJvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__0();
@@ -6519,11 +6433,11 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalPerspectiveDsl.g:1942:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    // InternalPerspectiveDsl.g:1917:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
     public final void entryRuleXFeatureCall() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1943:1: ( ruleXFeatureCall EOF )
-            // InternalPerspectiveDsl.g:1944:1: ruleXFeatureCall EOF
+            // InternalPerspectiveDsl.g:1918:1: ( ruleXFeatureCall EOF )
+            // InternalPerspectiveDsl.g:1919:1: ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallRule()); 
@@ -6553,23 +6467,23 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalPerspectiveDsl.g:1951:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:1926:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
     public final void ruleXFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1955:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:1956:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalPerspectiveDsl.g:1930:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:1931:2: ( ( rule__XFeatureCall__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:1956:2: ( ( rule__XFeatureCall__Group__0 ) )
-            // InternalPerspectiveDsl.g:1957:3: ( rule__XFeatureCall__Group__0 )
+            // InternalPerspectiveDsl.g:1931:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalPerspectiveDsl.g:1932:3: ( rule__XFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:1958:3: ( rule__XFeatureCall__Group__0 )
-            // InternalPerspectiveDsl.g:1958:4: rule__XFeatureCall__Group__0
+            // InternalPerspectiveDsl.g:1933:3: ( rule__XFeatureCall__Group__0 )
+            // InternalPerspectiveDsl.g:1933:4: rule__XFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__0();
@@ -6604,11 +6518,11 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalPerspectiveDsl.g:1967:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    // InternalPerspectiveDsl.g:1942:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
     public final void entryRuleFeatureCallID() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1968:1: ( ruleFeatureCallID EOF )
-            // InternalPerspectiveDsl.g:1969:1: ruleFeatureCallID EOF
+            // InternalPerspectiveDsl.g:1943:1: ( ruleFeatureCallID EOF )
+            // InternalPerspectiveDsl.g:1944:1: ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDRule()); 
@@ -6638,23 +6552,23 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalPerspectiveDsl.g:1976:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1951:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
     public final void ruleFeatureCallID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:1980:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:1981:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalPerspectiveDsl.g:1955:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1956:2: ( ( rule__FeatureCallID__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:1981:2: ( ( rule__FeatureCallID__Alternatives ) )
-            // InternalPerspectiveDsl.g:1982:3: ( rule__FeatureCallID__Alternatives )
+            // InternalPerspectiveDsl.g:1956:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalPerspectiveDsl.g:1957:3: ( rule__FeatureCallID__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:1983:3: ( rule__FeatureCallID__Alternatives )
-            // InternalPerspectiveDsl.g:1983:4: rule__FeatureCallID__Alternatives
+            // InternalPerspectiveDsl.g:1958:3: ( rule__FeatureCallID__Alternatives )
+            // InternalPerspectiveDsl.g:1958:4: rule__FeatureCallID__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FeatureCallID__Alternatives();
@@ -6689,11 +6603,11 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalPerspectiveDsl.g:1992:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    // InternalPerspectiveDsl.g:1967:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
     public final void entryRuleIdOrSuper() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:1993:1: ( ruleIdOrSuper EOF )
-            // InternalPerspectiveDsl.g:1994:1: ruleIdOrSuper EOF
+            // InternalPerspectiveDsl.g:1968:1: ( ruleIdOrSuper EOF )
+            // InternalPerspectiveDsl.g:1969:1: ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperRule()); 
@@ -6723,23 +6637,23 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalPerspectiveDsl.g:2001:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:1976:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
     public final void ruleIdOrSuper() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2005:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:2006:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalPerspectiveDsl.g:1980:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:1981:2: ( ( rule__IdOrSuper__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:2006:2: ( ( rule__IdOrSuper__Alternatives ) )
-            // InternalPerspectiveDsl.g:2007:3: ( rule__IdOrSuper__Alternatives )
+            // InternalPerspectiveDsl.g:1981:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalPerspectiveDsl.g:1982:3: ( rule__IdOrSuper__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:2008:3: ( rule__IdOrSuper__Alternatives )
-            // InternalPerspectiveDsl.g:2008:4: rule__IdOrSuper__Alternatives
+            // InternalPerspectiveDsl.g:1983:3: ( rule__IdOrSuper__Alternatives )
+            // InternalPerspectiveDsl.g:1983:4: rule__IdOrSuper__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__IdOrSuper__Alternatives();
@@ -6774,11 +6688,11 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalPerspectiveDsl.g:2017:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    // InternalPerspectiveDsl.g:1992:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
     public final void entryRuleXConstructorCall() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2018:1: ( ruleXConstructorCall EOF )
-            // InternalPerspectiveDsl.g:2019:1: ruleXConstructorCall EOF
+            // InternalPerspectiveDsl.g:1993:1: ( ruleXConstructorCall EOF )
+            // InternalPerspectiveDsl.g:1994:1: ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallRule()); 
@@ -6808,23 +6722,23 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalPerspectiveDsl.g:2026:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2001:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
     public final void ruleXConstructorCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2030:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2031:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalPerspectiveDsl.g:2005:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2006:2: ( ( rule__XConstructorCall__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2031:2: ( ( rule__XConstructorCall__Group__0 ) )
-            // InternalPerspectiveDsl.g:2032:3: ( rule__XConstructorCall__Group__0 )
+            // InternalPerspectiveDsl.g:2006:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalPerspectiveDsl.g:2007:3: ( rule__XConstructorCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2033:3: ( rule__XConstructorCall__Group__0 )
-            // InternalPerspectiveDsl.g:2033:4: rule__XConstructorCall__Group__0
+            // InternalPerspectiveDsl.g:2008:3: ( rule__XConstructorCall__Group__0 )
+            // InternalPerspectiveDsl.g:2008:4: rule__XConstructorCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__0();
@@ -6859,11 +6773,11 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalPerspectiveDsl.g:2042:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    // InternalPerspectiveDsl.g:2017:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
     public final void entryRuleXBooleanLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2043:1: ( ruleXBooleanLiteral EOF )
-            // InternalPerspectiveDsl.g:2044:1: ruleXBooleanLiteral EOF
+            // InternalPerspectiveDsl.g:2018:1: ( ruleXBooleanLiteral EOF )
+            // InternalPerspectiveDsl.g:2019:1: ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralRule()); 
@@ -6893,23 +6807,23 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalPerspectiveDsl.g:2051:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2026:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
     public final void ruleXBooleanLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2055:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2056:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2030:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2031:2: ( ( rule__XBooleanLiteral__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2056:2: ( ( rule__XBooleanLiteral__Group__0 ) )
-            // InternalPerspectiveDsl.g:2057:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2031:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2032:3: ( rule__XBooleanLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2058:3: ( rule__XBooleanLiteral__Group__0 )
-            // InternalPerspectiveDsl.g:2058:4: rule__XBooleanLiteral__Group__0
+            // InternalPerspectiveDsl.g:2033:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2033:4: rule__XBooleanLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__0();
@@ -6944,11 +6858,11 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalPerspectiveDsl.g:2067:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    // InternalPerspectiveDsl.g:2042:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
     public final void entryRuleXNullLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2068:1: ( ruleXNullLiteral EOF )
-            // InternalPerspectiveDsl.g:2069:1: ruleXNullLiteral EOF
+            // InternalPerspectiveDsl.g:2043:1: ( ruleXNullLiteral EOF )
+            // InternalPerspectiveDsl.g:2044:1: ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralRule()); 
@@ -6978,23 +6892,23 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalPerspectiveDsl.g:2076:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2051:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
     public final void ruleXNullLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2080:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2081:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2055:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2056:2: ( ( rule__XNullLiteral__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2081:2: ( ( rule__XNullLiteral__Group__0 ) )
-            // InternalPerspectiveDsl.g:2082:3: ( rule__XNullLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2056:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2057:3: ( rule__XNullLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2083:3: ( rule__XNullLiteral__Group__0 )
-            // InternalPerspectiveDsl.g:2083:4: rule__XNullLiteral__Group__0
+            // InternalPerspectiveDsl.g:2058:3: ( rule__XNullLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2058:4: rule__XNullLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__0();
@@ -7029,11 +6943,11 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalPerspectiveDsl.g:2092:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    // InternalPerspectiveDsl.g:2067:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
     public final void entryRuleXNumberLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2093:1: ( ruleXNumberLiteral EOF )
-            // InternalPerspectiveDsl.g:2094:1: ruleXNumberLiteral EOF
+            // InternalPerspectiveDsl.g:2068:1: ( ruleXNumberLiteral EOF )
+            // InternalPerspectiveDsl.g:2069:1: ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralRule()); 
@@ -7063,23 +6977,23 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalPerspectiveDsl.g:2101:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2076:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
     public final void ruleXNumberLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2105:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2106:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2080:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2081:2: ( ( rule__XNumberLiteral__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2106:2: ( ( rule__XNumberLiteral__Group__0 ) )
-            // InternalPerspectiveDsl.g:2107:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2081:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2082:3: ( rule__XNumberLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2108:3: ( rule__XNumberLiteral__Group__0 )
-            // InternalPerspectiveDsl.g:2108:4: rule__XNumberLiteral__Group__0
+            // InternalPerspectiveDsl.g:2083:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2083:4: rule__XNumberLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__0();
@@ -7114,11 +7028,11 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalPerspectiveDsl.g:2117:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    // InternalPerspectiveDsl.g:2092:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
     public final void entryRuleXStringLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2118:1: ( ruleXStringLiteral EOF )
-            // InternalPerspectiveDsl.g:2119:1: ruleXStringLiteral EOF
+            // InternalPerspectiveDsl.g:2093:1: ( ruleXStringLiteral EOF )
+            // InternalPerspectiveDsl.g:2094:1: ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralRule()); 
@@ -7148,23 +7062,23 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalPerspectiveDsl.g:2126:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2101:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
     public final void ruleXStringLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2130:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2131:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2105:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2106:2: ( ( rule__XStringLiteral__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2131:2: ( ( rule__XStringLiteral__Group__0 ) )
-            // InternalPerspectiveDsl.g:2132:3: ( rule__XStringLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2106:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2107:3: ( rule__XStringLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2133:3: ( rule__XStringLiteral__Group__0 )
-            // InternalPerspectiveDsl.g:2133:4: rule__XStringLiteral__Group__0
+            // InternalPerspectiveDsl.g:2108:3: ( rule__XStringLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2108:4: rule__XStringLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__0();
@@ -7199,11 +7113,11 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalPerspectiveDsl.g:2142:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    // InternalPerspectiveDsl.g:2117:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
     public final void entryRuleXTypeLiteral() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2143:1: ( ruleXTypeLiteral EOF )
-            // InternalPerspectiveDsl.g:2144:1: ruleXTypeLiteral EOF
+            // InternalPerspectiveDsl.g:2118:1: ( ruleXTypeLiteral EOF )
+            // InternalPerspectiveDsl.g:2119:1: ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralRule()); 
@@ -7233,23 +7147,23 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalPerspectiveDsl.g:2151:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2126:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
     public final void ruleXTypeLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2155:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2156:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2130:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2131:2: ( ( rule__XTypeLiteral__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2156:2: ( ( rule__XTypeLiteral__Group__0 ) )
-            // InternalPerspectiveDsl.g:2157:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2131:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalPerspectiveDsl.g:2132:3: ( rule__XTypeLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2158:3: ( rule__XTypeLiteral__Group__0 )
-            // InternalPerspectiveDsl.g:2158:4: rule__XTypeLiteral__Group__0
+            // InternalPerspectiveDsl.g:2133:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalPerspectiveDsl.g:2133:4: rule__XTypeLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__0();
@@ -7284,11 +7198,11 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalPerspectiveDsl.g:2167:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    // InternalPerspectiveDsl.g:2142:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
     public final void entryRuleXThrowExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2168:1: ( ruleXThrowExpression EOF )
-            // InternalPerspectiveDsl.g:2169:1: ruleXThrowExpression EOF
+            // InternalPerspectiveDsl.g:2143:1: ( ruleXThrowExpression EOF )
+            // InternalPerspectiveDsl.g:2144:1: ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionRule()); 
@@ -7318,23 +7232,23 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalPerspectiveDsl.g:2176:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2151:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
     public final void ruleXThrowExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2180:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2181:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2155:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2156:2: ( ( rule__XThrowExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2181:2: ( ( rule__XThrowExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:2182:3: ( rule__XThrowExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2156:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2157:3: ( rule__XThrowExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2183:3: ( rule__XThrowExpression__Group__0 )
-            // InternalPerspectiveDsl.g:2183:4: rule__XThrowExpression__Group__0
+            // InternalPerspectiveDsl.g:2158:3: ( rule__XThrowExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2158:4: rule__XThrowExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__0();
@@ -7369,11 +7283,11 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalPerspectiveDsl.g:2192:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    // InternalPerspectiveDsl.g:2167:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
     public final void entryRuleXReturnExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2193:1: ( ruleXReturnExpression EOF )
-            // InternalPerspectiveDsl.g:2194:1: ruleXReturnExpression EOF
+            // InternalPerspectiveDsl.g:2168:1: ( ruleXReturnExpression EOF )
+            // InternalPerspectiveDsl.g:2169:1: ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionRule()); 
@@ -7403,23 +7317,23 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalPerspectiveDsl.g:2201:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2176:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
     public final void ruleXReturnExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2205:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2206:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2180:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2181:2: ( ( rule__XReturnExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2206:2: ( ( rule__XReturnExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:2207:3: ( rule__XReturnExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2181:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2182:3: ( rule__XReturnExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2208:3: ( rule__XReturnExpression__Group__0 )
-            // InternalPerspectiveDsl.g:2208:4: rule__XReturnExpression__Group__0
+            // InternalPerspectiveDsl.g:2183:3: ( rule__XReturnExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2183:4: rule__XReturnExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__0();
@@ -7454,11 +7368,11 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalPerspectiveDsl.g:2217:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    // InternalPerspectiveDsl.g:2192:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
     public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2218:1: ( ruleXTryCatchFinallyExpression EOF )
-            // InternalPerspectiveDsl.g:2219:1: ruleXTryCatchFinallyExpression EOF
+            // InternalPerspectiveDsl.g:2193:1: ( ruleXTryCatchFinallyExpression EOF )
+            // InternalPerspectiveDsl.g:2194:1: ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -7488,23 +7402,23 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalPerspectiveDsl.g:2226:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2201:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
     public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2230:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2231:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2205:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2206:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2231:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:2232:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2206:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2207:3: ( rule__XTryCatchFinallyExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2233:3: ( rule__XTryCatchFinallyExpression__Group__0 )
-            // InternalPerspectiveDsl.g:2233:4: rule__XTryCatchFinallyExpression__Group__0
+            // InternalPerspectiveDsl.g:2208:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2208:4: rule__XTryCatchFinallyExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__0();
@@ -7539,11 +7453,11 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalPerspectiveDsl.g:2242:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    // InternalPerspectiveDsl.g:2217:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
     public final void entryRuleXSynchronizedExpression() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2243:1: ( ruleXSynchronizedExpression EOF )
-            // InternalPerspectiveDsl.g:2244:1: ruleXSynchronizedExpression EOF
+            // InternalPerspectiveDsl.g:2218:1: ( ruleXSynchronizedExpression EOF )
+            // InternalPerspectiveDsl.g:2219:1: ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -7573,23 +7487,23 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalPerspectiveDsl.g:2251:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2226:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
     public final void ruleXSynchronizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2255:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2256:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2230:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2231:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2256:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
-            // InternalPerspectiveDsl.g:2257:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2231:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalPerspectiveDsl.g:2232:3: ( rule__XSynchronizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2258:3: ( rule__XSynchronizedExpression__Group__0 )
-            // InternalPerspectiveDsl.g:2258:4: rule__XSynchronizedExpression__Group__0
+            // InternalPerspectiveDsl.g:2233:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalPerspectiveDsl.g:2233:4: rule__XSynchronizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__0();
@@ -7624,11 +7538,11 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalPerspectiveDsl.g:2267:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    // InternalPerspectiveDsl.g:2242:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
     public final void entryRuleXCatchClause() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2268:1: ( ruleXCatchClause EOF )
-            // InternalPerspectiveDsl.g:2269:1: ruleXCatchClause EOF
+            // InternalPerspectiveDsl.g:2243:1: ( ruleXCatchClause EOF )
+            // InternalPerspectiveDsl.g:2244:1: ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseRule()); 
@@ -7658,23 +7572,23 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalPerspectiveDsl.g:2276:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2251:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
     public final void ruleXCatchClause() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2280:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2281:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalPerspectiveDsl.g:2255:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2256:2: ( ( rule__XCatchClause__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2281:2: ( ( rule__XCatchClause__Group__0 ) )
-            // InternalPerspectiveDsl.g:2282:3: ( rule__XCatchClause__Group__0 )
+            // InternalPerspectiveDsl.g:2256:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalPerspectiveDsl.g:2257:3: ( rule__XCatchClause__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2283:3: ( rule__XCatchClause__Group__0 )
-            // InternalPerspectiveDsl.g:2283:4: rule__XCatchClause__Group__0
+            // InternalPerspectiveDsl.g:2258:3: ( rule__XCatchClause__Group__0 )
+            // InternalPerspectiveDsl.g:2258:4: rule__XCatchClause__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__0();
@@ -7709,11 +7623,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalPerspectiveDsl.g:2292:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalPerspectiveDsl.g:2267:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2293:1: ( ruleQualifiedName EOF )
-            // InternalPerspectiveDsl.g:2294:1: ruleQualifiedName EOF
+            // InternalPerspectiveDsl.g:2268:1: ( ruleQualifiedName EOF )
+            // InternalPerspectiveDsl.g:2269:1: ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameRule()); 
@@ -7743,23 +7657,23 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalPerspectiveDsl.g:2301:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2276:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2305:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2306:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalPerspectiveDsl.g:2280:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2281:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2306:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalPerspectiveDsl.g:2307:3: ( rule__QualifiedName__Group__0 )
+            // InternalPerspectiveDsl.g:2281:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalPerspectiveDsl.g:2282:3: ( rule__QualifiedName__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2308:3: ( rule__QualifiedName__Group__0 )
-            // InternalPerspectiveDsl.g:2308:4: rule__QualifiedName__Group__0
+            // InternalPerspectiveDsl.g:2283:3: ( rule__QualifiedName__Group__0 )
+            // InternalPerspectiveDsl.g:2283:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -7794,14 +7708,14 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalPerspectiveDsl.g:2317:1: entryRuleNumber : ruleNumber EOF ;
+    // InternalPerspectiveDsl.g:2292:1: entryRuleNumber : ruleNumber EOF ;
     public final void entryRuleNumber() throws RecognitionException {
          
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalPerspectiveDsl.g:2321:1: ( ruleNumber EOF )
-            // InternalPerspectiveDsl.g:2322:1: ruleNumber EOF
+            // InternalPerspectiveDsl.g:2296:1: ( ruleNumber EOF )
+            // InternalPerspectiveDsl.g:2297:1: ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberRule()); 
@@ -7834,24 +7748,24 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalPerspectiveDsl.g:2332:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:2307:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
     public final void ruleNumber() throws RecognitionException {
 
         		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2337:2: ( ( ( rule__Number__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:2338:2: ( ( rule__Number__Alternatives ) )
+            // InternalPerspectiveDsl.g:2312:2: ( ( ( rule__Number__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:2313:2: ( ( rule__Number__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:2338:2: ( ( rule__Number__Alternatives ) )
-            // InternalPerspectiveDsl.g:2339:3: ( rule__Number__Alternatives )
+            // InternalPerspectiveDsl.g:2313:2: ( ( rule__Number__Alternatives ) )
+            // InternalPerspectiveDsl.g:2314:3: ( rule__Number__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:2340:3: ( rule__Number__Alternatives )
-            // InternalPerspectiveDsl.g:2340:4: rule__Number__Alternatives
+            // InternalPerspectiveDsl.g:2315:3: ( rule__Number__Alternatives )
+            // InternalPerspectiveDsl.g:2315:4: rule__Number__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives();
@@ -7887,11 +7801,11 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalPerspectiveDsl.g:2350:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    // InternalPerspectiveDsl.g:2325:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
     public final void entryRuleJvmTypeReference() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2351:1: ( ruleJvmTypeReference EOF )
-            // InternalPerspectiveDsl.g:2352:1: ruleJvmTypeReference EOF
+            // InternalPerspectiveDsl.g:2326:1: ( ruleJvmTypeReference EOF )
+            // InternalPerspectiveDsl.g:2327:1: ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceRule()); 
@@ -7921,23 +7835,23 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalPerspectiveDsl.g:2359:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:2334:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
     public final void ruleJvmTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2363:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:2364:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalPerspectiveDsl.g:2338:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:2339:2: ( ( rule__JvmTypeReference__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:2364:2: ( ( rule__JvmTypeReference__Alternatives ) )
-            // InternalPerspectiveDsl.g:2365:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalPerspectiveDsl.g:2339:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalPerspectiveDsl.g:2340:3: ( rule__JvmTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:2366:3: ( rule__JvmTypeReference__Alternatives )
-            // InternalPerspectiveDsl.g:2366:4: rule__JvmTypeReference__Alternatives
+            // InternalPerspectiveDsl.g:2341:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalPerspectiveDsl.g:2341:4: rule__JvmTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Alternatives();
@@ -7972,11 +7886,11 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalPerspectiveDsl.g:2375:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    // InternalPerspectiveDsl.g:2350:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
     public final void entryRuleArrayBrackets() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2376:1: ( ruleArrayBrackets EOF )
-            // InternalPerspectiveDsl.g:2377:1: ruleArrayBrackets EOF
+            // InternalPerspectiveDsl.g:2351:1: ( ruleArrayBrackets EOF )
+            // InternalPerspectiveDsl.g:2352:1: ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsRule()); 
@@ -8006,23 +7920,23 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalPerspectiveDsl.g:2384:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2359:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
     public final void ruleArrayBrackets() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2388:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2389:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalPerspectiveDsl.g:2363:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2364:2: ( ( rule__ArrayBrackets__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2389:2: ( ( rule__ArrayBrackets__Group__0 ) )
-            // InternalPerspectiveDsl.g:2390:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalPerspectiveDsl.g:2364:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalPerspectiveDsl.g:2365:3: ( rule__ArrayBrackets__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2391:3: ( rule__ArrayBrackets__Group__0 )
-            // InternalPerspectiveDsl.g:2391:4: rule__ArrayBrackets__Group__0
+            // InternalPerspectiveDsl.g:2366:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalPerspectiveDsl.g:2366:4: rule__ArrayBrackets__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__0();
@@ -8057,11 +7971,11 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalPerspectiveDsl.g:2400:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    // InternalPerspectiveDsl.g:2375:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
     public final void entryRuleXFunctionTypeRef() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2401:1: ( ruleXFunctionTypeRef EOF )
-            // InternalPerspectiveDsl.g:2402:1: ruleXFunctionTypeRef EOF
+            // InternalPerspectiveDsl.g:2376:1: ( ruleXFunctionTypeRef EOF )
+            // InternalPerspectiveDsl.g:2377:1: ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefRule()); 
@@ -8091,23 +8005,23 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalPerspectiveDsl.g:2409:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2384:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
     public final void ruleXFunctionTypeRef() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2413:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2414:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalPerspectiveDsl.g:2388:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2389:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2414:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
-            // InternalPerspectiveDsl.g:2415:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalPerspectiveDsl.g:2389:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalPerspectiveDsl.g:2390:3: ( rule__XFunctionTypeRef__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2416:3: ( rule__XFunctionTypeRef__Group__0 )
-            // InternalPerspectiveDsl.g:2416:4: rule__XFunctionTypeRef__Group__0
+            // InternalPerspectiveDsl.g:2391:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalPerspectiveDsl.g:2391:4: rule__XFunctionTypeRef__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__0();
@@ -8142,11 +8056,11 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalPerspectiveDsl.g:2425:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    // InternalPerspectiveDsl.g:2400:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
     public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2426:1: ( ruleJvmParameterizedTypeReference EOF )
-            // InternalPerspectiveDsl.g:2427:1: ruleJvmParameterizedTypeReference EOF
+            // InternalPerspectiveDsl.g:2401:1: ( ruleJvmParameterizedTypeReference EOF )
+            // InternalPerspectiveDsl.g:2402:1: ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -8176,23 +8090,23 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalPerspectiveDsl.g:2434:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2409:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
     public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2438:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2439:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalPerspectiveDsl.g:2413:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2414:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2439:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
-            // InternalPerspectiveDsl.g:2440:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalPerspectiveDsl.g:2414:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalPerspectiveDsl.g:2415:3: ( rule__JvmParameterizedTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2441:3: ( rule__JvmParameterizedTypeReference__Group__0 )
-            // InternalPerspectiveDsl.g:2441:4: rule__JvmParameterizedTypeReference__Group__0
+            // InternalPerspectiveDsl.g:2416:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalPerspectiveDsl.g:2416:4: rule__JvmParameterizedTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__0();
@@ -8227,11 +8141,11 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalPerspectiveDsl.g:2450:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    // InternalPerspectiveDsl.g:2425:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
     public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2451:1: ( ruleJvmArgumentTypeReference EOF )
-            // InternalPerspectiveDsl.g:2452:1: ruleJvmArgumentTypeReference EOF
+            // InternalPerspectiveDsl.g:2426:1: ( ruleJvmArgumentTypeReference EOF )
+            // InternalPerspectiveDsl.g:2427:1: ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -8261,23 +8175,23 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalPerspectiveDsl.g:2459:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:2434:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
     public final void ruleJvmArgumentTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2463:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:2464:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalPerspectiveDsl.g:2438:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:2439:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:2464:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
-            // InternalPerspectiveDsl.g:2465:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalPerspectiveDsl.g:2439:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalPerspectiveDsl.g:2440:3: ( rule__JvmArgumentTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:2466:3: ( rule__JvmArgumentTypeReference__Alternatives )
-            // InternalPerspectiveDsl.g:2466:4: rule__JvmArgumentTypeReference__Alternatives
+            // InternalPerspectiveDsl.g:2441:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalPerspectiveDsl.g:2441:4: rule__JvmArgumentTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmArgumentTypeReference__Alternatives();
@@ -8312,11 +8226,11 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalPerspectiveDsl.g:2475:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    // InternalPerspectiveDsl.g:2450:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
     public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2476:1: ( ruleJvmWildcardTypeReference EOF )
-            // InternalPerspectiveDsl.g:2477:1: ruleJvmWildcardTypeReference EOF
+            // InternalPerspectiveDsl.g:2451:1: ( ruleJvmWildcardTypeReference EOF )
+            // InternalPerspectiveDsl.g:2452:1: ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -8346,23 +8260,23 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalPerspectiveDsl.g:2484:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2459:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
     public final void ruleJvmWildcardTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2488:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2489:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalPerspectiveDsl.g:2463:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2464:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2489:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
-            // InternalPerspectiveDsl.g:2490:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalPerspectiveDsl.g:2464:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalPerspectiveDsl.g:2465:3: ( rule__JvmWildcardTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2491:3: ( rule__JvmWildcardTypeReference__Group__0 )
-            // InternalPerspectiveDsl.g:2491:4: rule__JvmWildcardTypeReference__Group__0
+            // InternalPerspectiveDsl.g:2466:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalPerspectiveDsl.g:2466:4: rule__JvmWildcardTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__0();
@@ -8397,11 +8311,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalPerspectiveDsl.g:2500:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    // InternalPerspectiveDsl.g:2475:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
     public final void entryRuleJvmUpperBound() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2501:1: ( ruleJvmUpperBound EOF )
-            // InternalPerspectiveDsl.g:2502:1: ruleJvmUpperBound EOF
+            // InternalPerspectiveDsl.g:2476:1: ( ruleJvmUpperBound EOF )
+            // InternalPerspectiveDsl.g:2477:1: ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundRule()); 
@@ -8431,23 +8345,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalPerspectiveDsl.g:2509:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2484:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
     public final void ruleJvmUpperBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2513:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2514:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalPerspectiveDsl.g:2488:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2489:2: ( ( rule__JvmUpperBound__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2514:2: ( ( rule__JvmUpperBound__Group__0 ) )
-            // InternalPerspectiveDsl.g:2515:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalPerspectiveDsl.g:2489:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalPerspectiveDsl.g:2490:3: ( rule__JvmUpperBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2516:3: ( rule__JvmUpperBound__Group__0 )
-            // InternalPerspectiveDsl.g:2516:4: rule__JvmUpperBound__Group__0
+            // InternalPerspectiveDsl.g:2491:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalPerspectiveDsl.g:2491:4: rule__JvmUpperBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__0();
@@ -8482,11 +8396,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalPerspectiveDsl.g:2525:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    // InternalPerspectiveDsl.g:2500:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
     public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2526:1: ( ruleJvmUpperBoundAnded EOF )
-            // InternalPerspectiveDsl.g:2527:1: ruleJvmUpperBoundAnded EOF
+            // InternalPerspectiveDsl.g:2501:1: ( ruleJvmUpperBoundAnded EOF )
+            // InternalPerspectiveDsl.g:2502:1: ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -8516,23 +8430,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalPerspectiveDsl.g:2534:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2509:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
     public final void ruleJvmUpperBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2538:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2539:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalPerspectiveDsl.g:2513:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2514:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2539:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
-            // InternalPerspectiveDsl.g:2540:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalPerspectiveDsl.g:2514:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalPerspectiveDsl.g:2515:3: ( rule__JvmUpperBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2541:3: ( rule__JvmUpperBoundAnded__Group__0 )
-            // InternalPerspectiveDsl.g:2541:4: rule__JvmUpperBoundAnded__Group__0
+            // InternalPerspectiveDsl.g:2516:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalPerspectiveDsl.g:2516:4: rule__JvmUpperBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__0();
@@ -8567,11 +8481,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalPerspectiveDsl.g:2550:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    // InternalPerspectiveDsl.g:2525:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
     public final void entryRuleJvmLowerBound() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2551:1: ( ruleJvmLowerBound EOF )
-            // InternalPerspectiveDsl.g:2552:1: ruleJvmLowerBound EOF
+            // InternalPerspectiveDsl.g:2526:1: ( ruleJvmLowerBound EOF )
+            // InternalPerspectiveDsl.g:2527:1: ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundRule()); 
@@ -8601,23 +8515,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalPerspectiveDsl.g:2559:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2534:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
     public final void ruleJvmLowerBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2563:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2564:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalPerspectiveDsl.g:2538:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2539:2: ( ( rule__JvmLowerBound__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2564:2: ( ( rule__JvmLowerBound__Group__0 ) )
-            // InternalPerspectiveDsl.g:2565:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalPerspectiveDsl.g:2539:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalPerspectiveDsl.g:2540:3: ( rule__JvmLowerBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2566:3: ( rule__JvmLowerBound__Group__0 )
-            // InternalPerspectiveDsl.g:2566:4: rule__JvmLowerBound__Group__0
+            // InternalPerspectiveDsl.g:2541:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalPerspectiveDsl.g:2541:4: rule__JvmLowerBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__0();
@@ -8652,11 +8566,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalPerspectiveDsl.g:2575:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    // InternalPerspectiveDsl.g:2550:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
     public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2576:1: ( ruleJvmLowerBoundAnded EOF )
-            // InternalPerspectiveDsl.g:2577:1: ruleJvmLowerBoundAnded EOF
+            // InternalPerspectiveDsl.g:2551:1: ( ruleJvmLowerBoundAnded EOF )
+            // InternalPerspectiveDsl.g:2552:1: ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -8686,23 +8600,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalPerspectiveDsl.g:2584:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2559:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
     public final void ruleJvmLowerBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2588:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2589:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalPerspectiveDsl.g:2563:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2564:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2589:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
-            // InternalPerspectiveDsl.g:2590:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalPerspectiveDsl.g:2564:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalPerspectiveDsl.g:2565:3: ( rule__JvmLowerBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2591:3: ( rule__JvmLowerBoundAnded__Group__0 )
-            // InternalPerspectiveDsl.g:2591:4: rule__JvmLowerBoundAnded__Group__0
+            // InternalPerspectiveDsl.g:2566:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalPerspectiveDsl.g:2566:4: rule__JvmLowerBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__0();
@@ -8737,11 +8651,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalPerspectiveDsl.g:2600:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    // InternalPerspectiveDsl.g:2575:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
     public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2601:1: ( ruleQualifiedNameWithWildcard EOF )
-            // InternalPerspectiveDsl.g:2602:1: ruleQualifiedNameWithWildcard EOF
+            // InternalPerspectiveDsl.g:2576:1: ( ruleQualifiedNameWithWildcard EOF )
+            // InternalPerspectiveDsl.g:2577:1: ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -8771,23 +8685,23 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalPerspectiveDsl.g:2609:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    // InternalPerspectiveDsl.g:2584:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
     public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2613:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
-            // InternalPerspectiveDsl.g:2614:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalPerspectiveDsl.g:2588:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // InternalPerspectiveDsl.g:2589:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
             {
-            // InternalPerspectiveDsl.g:2614:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
-            // InternalPerspectiveDsl.g:2615:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalPerspectiveDsl.g:2589:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalPerspectiveDsl.g:2590:3: ( rule__QualifiedNameWithWildcard__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2616:3: ( rule__QualifiedNameWithWildcard__Group__0 )
-            // InternalPerspectiveDsl.g:2616:4: rule__QualifiedNameWithWildcard__Group__0
+            // InternalPerspectiveDsl.g:2591:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalPerspectiveDsl.g:2591:4: rule__QualifiedNameWithWildcard__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__0();
@@ -8822,11 +8736,11 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalPerspectiveDsl.g:2625:1: entryRuleValidID : ruleValidID EOF ;
+    // InternalPerspectiveDsl.g:2600:1: entryRuleValidID : ruleValidID EOF ;
     public final void entryRuleValidID() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2626:1: ( ruleValidID EOF )
-            // InternalPerspectiveDsl.g:2627:1: ruleValidID EOF
+            // InternalPerspectiveDsl.g:2601:1: ( ruleValidID EOF )
+            // InternalPerspectiveDsl.g:2602:1: ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDRule()); 
@@ -8856,17 +8770,17 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalPerspectiveDsl.g:2634:1: ruleValidID : ( RULE_ID ) ;
+    // InternalPerspectiveDsl.g:2609:1: ruleValidID : ( RULE_ID ) ;
     public final void ruleValidID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2638:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:2639:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:2613:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:2614:2: ( RULE_ID )
             {
-            // InternalPerspectiveDsl.g:2639:2: ( RULE_ID )
-            // InternalPerspectiveDsl.g:2640:3: RULE_ID
+            // InternalPerspectiveDsl.g:2614:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:2615:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
@@ -8897,11 +8811,11 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalPerspectiveDsl.g:2650:1: entryRuleXImportSection : ruleXImportSection EOF ;
+    // InternalPerspectiveDsl.g:2625:1: entryRuleXImportSection : ruleXImportSection EOF ;
     public final void entryRuleXImportSection() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2651:1: ( ruleXImportSection EOF )
-            // InternalPerspectiveDsl.g:2652:1: ruleXImportSection EOF
+            // InternalPerspectiveDsl.g:2626:1: ( ruleXImportSection EOF )
+            // InternalPerspectiveDsl.g:2627:1: ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionRule()); 
@@ -8931,26 +8845,26 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalPerspectiveDsl.g:2659:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
+    // InternalPerspectiveDsl.g:2634:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
     public final void ruleXImportSection() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2663:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
-            // InternalPerspectiveDsl.g:2664:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalPerspectiveDsl.g:2638:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
+            // InternalPerspectiveDsl.g:2639:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
             {
-            // InternalPerspectiveDsl.g:2664:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
-            // InternalPerspectiveDsl.g:2665:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalPerspectiveDsl.g:2639:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalPerspectiveDsl.g:2640:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
             {
-            // InternalPerspectiveDsl.g:2665:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
-            // InternalPerspectiveDsl.g:2666:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalPerspectiveDsl.g:2640:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
+            // InternalPerspectiveDsl.g:2641:4: ( rule__XImportSection__ImportDeclarationsAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalPerspectiveDsl.g:2667:4: ( rule__XImportSection__ImportDeclarationsAssignment )
-            // InternalPerspectiveDsl.g:2667:5: rule__XImportSection__ImportDeclarationsAssignment
+            // InternalPerspectiveDsl.g:2642:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalPerspectiveDsl.g:2642:5: rule__XImportSection__ImportDeclarationsAssignment
             {
             pushFollow(FOLLOW_3);
             rule__XImportSection__ImportDeclarationsAssignment();
@@ -8966,13 +8880,13 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2670:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
-            // InternalPerspectiveDsl.g:2671:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalPerspectiveDsl.g:2645:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalPerspectiveDsl.g:2646:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalPerspectiveDsl.g:2672:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalPerspectiveDsl.g:2647:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             loop1:
             do {
                 int alt1=2;
@@ -8985,7 +8899,7 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:2672:5: rule__XImportSection__ImportDeclarationsAssignment
+            	    // InternalPerspectiveDsl.g:2647:5: rule__XImportSection__ImportDeclarationsAssignment
             	    {
             	    pushFollow(FOLLOW_3);
             	    rule__XImportSection__ImportDeclarationsAssignment();
@@ -9029,11 +8943,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalPerspectiveDsl.g:2682:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    // InternalPerspectiveDsl.g:2657:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
     public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         try {
-            // InternalPerspectiveDsl.g:2683:1: ( ruleQualifiedNameInStaticImport EOF )
-            // InternalPerspectiveDsl.g:2684:1: ruleQualifiedNameInStaticImport EOF
+            // InternalPerspectiveDsl.g:2658:1: ( ruleQualifiedNameInStaticImport EOF )
+            // InternalPerspectiveDsl.g:2659:1: ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -9063,26 +8977,26 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalPerspectiveDsl.g:2691:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    // InternalPerspectiveDsl.g:2666:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
     public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2695:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
-            // InternalPerspectiveDsl.g:2696:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalPerspectiveDsl.g:2670:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // InternalPerspectiveDsl.g:2671:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
             {
-            // InternalPerspectiveDsl.g:2696:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
-            // InternalPerspectiveDsl.g:2697:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalPerspectiveDsl.g:2671:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalPerspectiveDsl.g:2672:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
             {
-            // InternalPerspectiveDsl.g:2697:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
-            // InternalPerspectiveDsl.g:2698:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalPerspectiveDsl.g:2672:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // InternalPerspectiveDsl.g:2673:4: ( rule__QualifiedNameInStaticImport__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2699:4: ( rule__QualifiedNameInStaticImport__Group__0 )
-            // InternalPerspectiveDsl.g:2699:5: rule__QualifiedNameInStaticImport__Group__0
+            // InternalPerspectiveDsl.g:2674:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalPerspectiveDsl.g:2674:5: rule__QualifiedNameInStaticImport__Group__0
             {
             pushFollow(FOLLOW_4);
             rule__QualifiedNameInStaticImport__Group__0();
@@ -9098,13 +9012,13 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2702:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
-            // InternalPerspectiveDsl.g:2703:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalPerspectiveDsl.g:2677:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalPerspectiveDsl.g:2678:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalPerspectiveDsl.g:2704:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalPerspectiveDsl.g:2679:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             loop2:
             do {
                 int alt2=2;
@@ -9123,7 +9037,7 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:2704:5: rule__QualifiedNameInStaticImport__Group__0
+            	    // InternalPerspectiveDsl.g:2679:5: rule__QualifiedNameInStaticImport__Group__0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__QualifiedNameInStaticImport__Group__0();
@@ -9167,23 +9081,23 @@
 
 
     // $ANTLR start "ruleSashOrientation"
-    // InternalPerspectiveDsl.g:2714:1: ruleSashOrientation : ( ( rule__SashOrientation__Alternatives ) ) ;
+    // InternalPerspectiveDsl.g:2689:1: ruleSashOrientation : ( ( rule__SashOrientation__Alternatives ) ) ;
     public final void ruleSashOrientation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2718:1: ( ( ( rule__SashOrientation__Alternatives ) ) )
-            // InternalPerspectiveDsl.g:2719:2: ( ( rule__SashOrientation__Alternatives ) )
+            // InternalPerspectiveDsl.g:2693:1: ( ( ( rule__SashOrientation__Alternatives ) ) )
+            // InternalPerspectiveDsl.g:2694:2: ( ( rule__SashOrientation__Alternatives ) )
             {
-            // InternalPerspectiveDsl.g:2719:2: ( ( rule__SashOrientation__Alternatives ) )
-            // InternalPerspectiveDsl.g:2720:3: ( rule__SashOrientation__Alternatives )
+            // InternalPerspectiveDsl.g:2694:2: ( ( rule__SashOrientation__Alternatives ) )
+            // InternalPerspectiveDsl.g:2695:3: ( rule__SashOrientation__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSashOrientationAccess().getAlternatives()); 
             }
-            // InternalPerspectiveDsl.g:2721:3: ( rule__SashOrientation__Alternatives )
-            // InternalPerspectiveDsl.g:2721:4: rule__SashOrientation__Alternatives
+            // InternalPerspectiveDsl.g:2696:3: ( rule__SashOrientation__Alternatives )
+            // InternalPerspectiveDsl.g:2696:4: rule__SashOrientation__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__SashOrientation__Alternatives();
@@ -9218,13 +9132,13 @@
 
 
     // $ANTLR start "rule__PerspectiveElement__Alternatives"
-    // InternalPerspectiveDsl.g:2729:1: rule__PerspectiveElement__Alternatives : ( ( rulePerspectiveSashContainer ) | ( rulePerspectivePartStack ) | ( rulePerspectivePart ) );
+    // InternalPerspectiveDsl.g:2704:1: rule__PerspectiveElement__Alternatives : ( ( rulePerspectiveSashContainer ) | ( rulePerspectivePartStack ) | ( rulePerspectivePart ) );
     public final void rule__PerspectiveElement__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2733:1: ( ( rulePerspectiveSashContainer ) | ( rulePerspectivePartStack ) | ( rulePerspectivePart ) )
+            // InternalPerspectiveDsl.g:2708:1: ( ( rulePerspectiveSashContainer ) | ( rulePerspectivePartStack ) | ( rulePerspectivePart ) )
             int alt3=3;
             switch ( input.LA(1) ) {
             case 62:
@@ -9252,10 +9166,10 @@
 
             switch (alt3) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2734:2: ( rulePerspectiveSashContainer )
+                    // InternalPerspectiveDsl.g:2709:2: ( rulePerspectiveSashContainer )
                     {
-                    // InternalPerspectiveDsl.g:2734:2: ( rulePerspectiveSashContainer )
-                    // InternalPerspectiveDsl.g:2735:3: rulePerspectiveSashContainer
+                    // InternalPerspectiveDsl.g:2709:2: ( rulePerspectiveSashContainer )
+                    // InternalPerspectiveDsl.g:2710:3: rulePerspectiveSashContainer
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveElementAccess().getPerspectiveSashContainerParserRuleCall_0()); 
@@ -9275,10 +9189,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2740:2: ( rulePerspectivePartStack )
+                    // InternalPerspectiveDsl.g:2715:2: ( rulePerspectivePartStack )
                     {
-                    // InternalPerspectiveDsl.g:2740:2: ( rulePerspectivePartStack )
-                    // InternalPerspectiveDsl.g:2741:3: rulePerspectivePartStack
+                    // InternalPerspectiveDsl.g:2715:2: ( rulePerspectivePartStack )
+                    // InternalPerspectiveDsl.g:2716:3: rulePerspectivePartStack
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveElementAccess().getPerspectivePartStackParserRuleCall_1()); 
@@ -9298,10 +9212,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:2746:2: ( rulePerspectivePart )
+                    // InternalPerspectiveDsl.g:2721:2: ( rulePerspectivePart )
                     {
-                    // InternalPerspectiveDsl.g:2746:2: ( rulePerspectivePart )
-                    // InternalPerspectiveDsl.g:2747:3: rulePerspectivePart
+                    // InternalPerspectiveDsl.g:2721:2: ( rulePerspectivePart )
+                    // InternalPerspectiveDsl.g:2722:3: rulePerspectivePart
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveElementAccess().getPerspectivePartParserRuleCall_2()); 
@@ -9338,14 +9252,14 @@
 
 
     // $ANTLR start "rule__PerspectiveView__Alternatives"
-    // InternalPerspectiveDsl.g:2756:1: rule__PerspectiveView__Alternatives : ( ( rulePerspectiveSelection ) | ( rulePerspectiveTable ) | ( rulePerspectiveChart ) | ( rulePerspectiveBean ) | ( rulePerspectiveReport ) | ( rulePerspectiveOrganization ) | ( rulePerspectiveTopology ) | ( rulePerspectiveDialog ) | ( rulePerspectiveBPMN ) | ( rulePerspectiveGrid ) | ( rulePerspectiveWelcome ) | ( rulePerspectiveSearch ) | ( rulePerspectiveDataInterchange ) | ( rulePerspectiveKanban ) );
+    // InternalPerspectiveDsl.g:2731:1: rule__PerspectiveView__Alternatives : ( ( rulePerspectiveSelection ) | ( rulePerspectiveTable ) | ( rulePerspectiveChart ) | ( rulePerspectiveBean ) | ( rulePerspectiveReport ) | ( rulePerspectiveOrganization ) | ( rulePerspectiveTopology ) | ( rulePerspectiveDialog ) | ( rulePerspectiveGrid ) | ( rulePerspectiveWelcome ) | ( rulePerspectiveSearch ) | ( rulePerspectiveDataInterchange ) | ( rulePerspectiveKanban ) );
     public final void rule__PerspectiveView__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2760:1: ( ( rulePerspectiveSelection ) | ( rulePerspectiveTable ) | ( rulePerspectiveChart ) | ( rulePerspectiveBean ) | ( rulePerspectiveReport ) | ( rulePerspectiveOrganization ) | ( rulePerspectiveTopology ) | ( rulePerspectiveDialog ) | ( rulePerspectiveBPMN ) | ( rulePerspectiveGrid ) | ( rulePerspectiveWelcome ) | ( rulePerspectiveSearch ) | ( rulePerspectiveDataInterchange ) | ( rulePerspectiveKanban ) )
-            int alt4=14;
+            // InternalPerspectiveDsl.g:2735:1: ( ( rulePerspectiveSelection ) | ( rulePerspectiveTable ) | ( rulePerspectiveChart ) | ( rulePerspectiveBean ) | ( rulePerspectiveReport ) | ( rulePerspectiveOrganization ) | ( rulePerspectiveTopology ) | ( rulePerspectiveDialog ) | ( rulePerspectiveGrid ) | ( rulePerspectiveWelcome ) | ( rulePerspectiveSearch ) | ( rulePerspectiveDataInterchange ) | ( rulePerspectiveKanban ) )
+            int alt4=13;
             switch ( input.LA(1) ) {
             case 69:
                 {
@@ -9387,12 +9301,12 @@
                 alt4=8;
                 }
                 break;
-            case 78:
+            case 71:
                 {
                 alt4=9;
                 }
                 break;
-            case 71:
+            case 81:
                 {
                 alt4=10;
                 }
@@ -9402,21 +9316,16 @@
                 alt4=11;
                 }
                 break;
-            case 83:
+            case 86:
                 {
                 alt4=12;
                 }
                 break;
-            case 87:
+            case 78:
                 {
                 alt4=13;
                 }
                 break;
-            case 79:
-                {
-                alt4=14;
-                }
-                break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
@@ -9427,10 +9336,10 @@
 
             switch (alt4) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2761:2: ( rulePerspectiveSelection )
+                    // InternalPerspectiveDsl.g:2736:2: ( rulePerspectiveSelection )
                     {
-                    // InternalPerspectiveDsl.g:2761:2: ( rulePerspectiveSelection )
-                    // InternalPerspectiveDsl.g:2762:3: rulePerspectiveSelection
+                    // InternalPerspectiveDsl.g:2736:2: ( rulePerspectiveSelection )
+                    // InternalPerspectiveDsl.g:2737:3: rulePerspectiveSelection
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveSelectionParserRuleCall_0()); 
@@ -9450,10 +9359,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2767:2: ( rulePerspectiveTable )
+                    // InternalPerspectiveDsl.g:2742:2: ( rulePerspectiveTable )
                     {
-                    // InternalPerspectiveDsl.g:2767:2: ( rulePerspectiveTable )
-                    // InternalPerspectiveDsl.g:2768:3: rulePerspectiveTable
+                    // InternalPerspectiveDsl.g:2742:2: ( rulePerspectiveTable )
+                    // InternalPerspectiveDsl.g:2743:3: rulePerspectiveTable
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveTableParserRuleCall_1()); 
@@ -9473,10 +9382,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:2773:2: ( rulePerspectiveChart )
+                    // InternalPerspectiveDsl.g:2748:2: ( rulePerspectiveChart )
                     {
-                    // InternalPerspectiveDsl.g:2773:2: ( rulePerspectiveChart )
-                    // InternalPerspectiveDsl.g:2774:3: rulePerspectiveChart
+                    // InternalPerspectiveDsl.g:2748:2: ( rulePerspectiveChart )
+                    // InternalPerspectiveDsl.g:2749:3: rulePerspectiveChart
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveChartParserRuleCall_2()); 
@@ -9496,10 +9405,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:2779:2: ( rulePerspectiveBean )
+                    // InternalPerspectiveDsl.g:2754:2: ( rulePerspectiveBean )
                     {
-                    // InternalPerspectiveDsl.g:2779:2: ( rulePerspectiveBean )
-                    // InternalPerspectiveDsl.g:2780:3: rulePerspectiveBean
+                    // InternalPerspectiveDsl.g:2754:2: ( rulePerspectiveBean )
+                    // InternalPerspectiveDsl.g:2755:3: rulePerspectiveBean
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveBeanParserRuleCall_3()); 
@@ -9519,10 +9428,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:2785:2: ( rulePerspectiveReport )
+                    // InternalPerspectiveDsl.g:2760:2: ( rulePerspectiveReport )
                     {
-                    // InternalPerspectiveDsl.g:2785:2: ( rulePerspectiveReport )
-                    // InternalPerspectiveDsl.g:2786:3: rulePerspectiveReport
+                    // InternalPerspectiveDsl.g:2760:2: ( rulePerspectiveReport )
+                    // InternalPerspectiveDsl.g:2761:3: rulePerspectiveReport
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveReportParserRuleCall_4()); 
@@ -9542,10 +9451,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:2791:2: ( rulePerspectiveOrganization )
+                    // InternalPerspectiveDsl.g:2766:2: ( rulePerspectiveOrganization )
                     {
-                    // InternalPerspectiveDsl.g:2791:2: ( rulePerspectiveOrganization )
-                    // InternalPerspectiveDsl.g:2792:3: rulePerspectiveOrganization
+                    // InternalPerspectiveDsl.g:2766:2: ( rulePerspectiveOrganization )
+                    // InternalPerspectiveDsl.g:2767:3: rulePerspectiveOrganization
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveOrganizationParserRuleCall_5()); 
@@ -9565,10 +9474,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:2797:2: ( rulePerspectiveTopology )
+                    // InternalPerspectiveDsl.g:2772:2: ( rulePerspectiveTopology )
                     {
-                    // InternalPerspectiveDsl.g:2797:2: ( rulePerspectiveTopology )
-                    // InternalPerspectiveDsl.g:2798:3: rulePerspectiveTopology
+                    // InternalPerspectiveDsl.g:2772:2: ( rulePerspectiveTopology )
+                    // InternalPerspectiveDsl.g:2773:3: rulePerspectiveTopology
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveTopologyParserRuleCall_6()); 
@@ -9588,10 +9497,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:2803:2: ( rulePerspectiveDialog )
+                    // InternalPerspectiveDsl.g:2778:2: ( rulePerspectiveDialog )
                     {
-                    // InternalPerspectiveDsl.g:2803:2: ( rulePerspectiveDialog )
-                    // InternalPerspectiveDsl.g:2804:3: rulePerspectiveDialog
+                    // InternalPerspectiveDsl.g:2778:2: ( rulePerspectiveDialog )
+                    // InternalPerspectiveDsl.g:2779:3: rulePerspectiveDialog
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveViewAccess().getPerspectiveDialogParserRuleCall_7()); 
@@ -9611,21 +9520,21 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:2809:2: ( rulePerspectiveBPMN )
+                    // InternalPerspectiveDsl.g:2784:2: ( rulePerspectiveGrid )
                     {
-                    // InternalPerspectiveDsl.g:2809:2: ( rulePerspectiveBPMN )
-                    // InternalPerspectiveDsl.g:2810:3: rulePerspectiveBPMN
+                    // InternalPerspectiveDsl.g:2784:2: ( rulePerspectiveGrid )
+                    // InternalPerspectiveDsl.g:2785:3: rulePerspectiveGrid
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_8()); 
+                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); 
                     }
                     pushFollow(FOLLOW_2);
-                    rulePerspectiveBPMN();
+                    rulePerspectiveGrid();
 
                     state._fsp--;
                     if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_8()); 
+                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); 
                     }
 
                     }
@@ -9634,21 +9543,21 @@
                     }
                     break;
                 case 10 :
-                    // InternalPerspectiveDsl.g:2815:2: ( rulePerspectiveGrid )
+                    // InternalPerspectiveDsl.g:2790:2: ( rulePerspectiveWelcome )
                     {
-                    // InternalPerspectiveDsl.g:2815:2: ( rulePerspectiveGrid )
-                    // InternalPerspectiveDsl.g:2816:3: rulePerspectiveGrid
+                    // InternalPerspectiveDsl.g:2790:2: ( rulePerspectiveWelcome )
+                    // InternalPerspectiveDsl.g:2791:3: rulePerspectiveWelcome
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_9()); 
+                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_9()); 
                     }
                     pushFollow(FOLLOW_2);
-                    rulePerspectiveGrid();
+                    rulePerspectiveWelcome();
 
                     state._fsp--;
                     if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_9()); 
+                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_9()); 
                     }
 
                     }
@@ -9657,21 +9566,21 @@
                     }
                     break;
                 case 11 :
-                    // InternalPerspectiveDsl.g:2821:2: ( rulePerspectiveWelcome )
+                    // InternalPerspectiveDsl.g:2796:2: ( rulePerspectiveSearch )
                     {
-                    // InternalPerspectiveDsl.g:2821:2: ( rulePerspectiveWelcome )
-                    // InternalPerspectiveDsl.g:2822:3: rulePerspectiveWelcome
+                    // InternalPerspectiveDsl.g:2796:2: ( rulePerspectiveSearch )
+                    // InternalPerspectiveDsl.g:2797:3: rulePerspectiveSearch
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_10()); 
+                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_10()); 
                     }
                     pushFollow(FOLLOW_2);
-                    rulePerspectiveWelcome();
+                    rulePerspectiveSearch();
 
                     state._fsp--;
                     if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_10()); 
+                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_10()); 
                     }
 
                     }
@@ -9680,21 +9589,21 @@
                     }
                     break;
                 case 12 :
-                    // InternalPerspectiveDsl.g:2827:2: ( rulePerspectiveSearch )
+                    // InternalPerspectiveDsl.g:2802:2: ( rulePerspectiveDataInterchange )
                     {
-                    // InternalPerspectiveDsl.g:2827:2: ( rulePerspectiveSearch )
-                    // InternalPerspectiveDsl.g:2828:3: rulePerspectiveSearch
+                    // InternalPerspectiveDsl.g:2802:2: ( rulePerspectiveDataInterchange )
+                    // InternalPerspectiveDsl.g:2803:3: rulePerspectiveDataInterchange
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_11()); 
+                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_11()); 
                     }
                     pushFollow(FOLLOW_2);
-                    rulePerspectiveSearch();
+                    rulePerspectiveDataInterchange();
 
                     state._fsp--;
                     if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_11()); 
+                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_11()); 
                     }
 
                     }
@@ -9703,36 +9612,13 @@
                     }
                     break;
                 case 13 :
-                    // InternalPerspectiveDsl.g:2833:2: ( rulePerspectiveDataInterchange )
+                    // InternalPerspectiveDsl.g:2808:2: ( rulePerspectiveKanban )
                     {
-                    // InternalPerspectiveDsl.g:2833:2: ( rulePerspectiveDataInterchange )
-                    // InternalPerspectiveDsl.g:2834:3: rulePerspectiveDataInterchange
+                    // InternalPerspectiveDsl.g:2808:2: ( rulePerspectiveKanban )
+                    // InternalPerspectiveDsl.g:2809:3: rulePerspectiveKanban
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_12()); 
-                    }
-                    pushFollow(FOLLOW_2);
-                    rulePerspectiveDataInterchange();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_12()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 14 :
-                    // InternalPerspectiveDsl.g:2839:2: ( rulePerspectiveKanban )
-                    {
-                    // InternalPerspectiveDsl.g:2839:2: ( rulePerspectiveKanban )
-                    // InternalPerspectiveDsl.g:2840:3: rulePerspectiveKanban
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_13()); 
+                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_12()); 
                     }
                     pushFollow(FOLLOW_2);
                     rulePerspectiveKanban();
@@ -9740,7 +9626,7 @@
                     state._fsp--;
                     if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_13()); 
+                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_12()); 
                     }
 
                     }
@@ -9766,27 +9652,27 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2"
-    // InternalPerspectiveDsl.g:2849: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:2818: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:2853:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
+            // InternalPerspectiveDsl.g:2822: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) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2854:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:2823:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2854:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:2855:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:2823:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:2824:3: ( rule__XImportDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:2856:3: ( rule__XImportDeclaration__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:2856:4: rule__XImportDeclaration__Group_2_0__0
+                    // InternalPerspectiveDsl.g:2825:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:2825:4: rule__XImportDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_0__0();
@@ -9806,16 +9692,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2860:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:2829:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:2860:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
-                    // InternalPerspectiveDsl.g:2861:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:2829:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:2830:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:2862:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
-                    // InternalPerspectiveDsl.g:2862:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
+                    // InternalPerspectiveDsl.g:2831:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:2831:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedTypeAssignment_2_1();
@@ -9835,16 +9721,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:2866:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalPerspectiveDsl.g:2835:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
                     {
-                    // InternalPerspectiveDsl.g:2866:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
-                    // InternalPerspectiveDsl.g:2867:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalPerspectiveDsl.g:2835:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalPerspectiveDsl.g:2836:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
                     }
-                    // InternalPerspectiveDsl.g:2868:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
-                    // InternalPerspectiveDsl.g:2868:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+                    // InternalPerspectiveDsl.g:2837:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalPerspectiveDsl.g:2837:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedNamespaceAssignment_2_2();
@@ -9864,16 +9750,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:2872:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalPerspectiveDsl.g:2841:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2872:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
-                    // InternalPerspectiveDsl.g:2873:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalPerspectiveDsl.g:2841:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalPerspectiveDsl.g:2842:3: ( rule__XImportDeclaration__Group_2_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
                     }
-                    // InternalPerspectiveDsl.g:2874:3: ( rule__XImportDeclaration__Group_2_3__0 )
-                    // InternalPerspectiveDsl.g:2874:4: rule__XImportDeclaration__Group_2_3__0
+                    // InternalPerspectiveDsl.g:2843:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalPerspectiveDsl.g:2843:4: rule__XImportDeclaration__Group_2_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_3__0();
@@ -9910,13 +9796,13 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2_0_3"
-    // InternalPerspectiveDsl.g:2882:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
+    // InternalPerspectiveDsl.g:2851: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:2886:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
+            // InternalPerspectiveDsl.g:2855:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -9935,16 +9821,16 @@
             }
             switch (alt6) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2887:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalPerspectiveDsl.g:2856:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2887:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
-                    // InternalPerspectiveDsl.g:2888:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalPerspectiveDsl.g:2856:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalPerspectiveDsl.g:2857:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:2889:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
-                    // InternalPerspectiveDsl.g:2889:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+                    // InternalPerspectiveDsl.g:2858:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalPerspectiveDsl.g:2858:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__WildcardAssignment_2_0_3_0();
@@ -9964,16 +9850,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2893:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalPerspectiveDsl.g:2862:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:2893:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
-                    // InternalPerspectiveDsl.g:2894:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalPerspectiveDsl.g:2862:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalPerspectiveDsl.g:2863:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:2895:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
-                    // InternalPerspectiveDsl.g:2895:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+                    // InternalPerspectiveDsl.g:2864:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalPerspectiveDsl.g:2864:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__MemberNameAssignment_2_0_3_1();
@@ -10010,27 +9896,27 @@
 
 
     // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
-    // InternalPerspectiveDsl.g:2903:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    // InternalPerspectiveDsl.g:2872: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:2907:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:2876:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2908:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:2877:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2908:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:2909:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalPerspectiveDsl.g:2877:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:2878:3: ( rule__XAnnotation__Group_3_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:2910:3: ( rule__XAnnotation__Group_3_1_0__0 )
-                    // InternalPerspectiveDsl.g:2910:4: rule__XAnnotation__Group_3_1_0__0
+                    // InternalPerspectiveDsl.g:2879:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalPerspectiveDsl.g:2879:4: rule__XAnnotation__Group_3_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3_1_0__0();
@@ -10050,16 +9936,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2914:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalPerspectiveDsl.g:2883:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:2914:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    // InternalPerspectiveDsl.g:2915:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalPerspectiveDsl.g:2883:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalPerspectiveDsl.g:2884:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:2916:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    // InternalPerspectiveDsl.g:2916:4: rule__XAnnotation__ValueAssignment_3_1_1
+                    // InternalPerspectiveDsl.g:2885:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalPerspectiveDsl.g:2885:4: rule__XAnnotation__ValueAssignment_3_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__ValueAssignment_3_1_1();
@@ -10096,27 +9982,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
-    // InternalPerspectiveDsl.g:2924:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    // InternalPerspectiveDsl.g:2893: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:2928:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            // InternalPerspectiveDsl.g:2897:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
             int alt8=2;
             alt8 = dfa8.predict(input);
             switch (alt8) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2929:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:2898:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2929:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:2930:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalPerspectiveDsl.g:2898:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:2899:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:2931:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    // InternalPerspectiveDsl.g:2931:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    // InternalPerspectiveDsl.g:2900:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalPerspectiveDsl.g:2900:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -10136,16 +10022,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2935:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:2904:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2935:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:2936:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalPerspectiveDsl.g:2904:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:2905:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:2937:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    // InternalPerspectiveDsl.g:2937:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    // InternalPerspectiveDsl.g:2906:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalPerspectiveDsl.g:2906:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1__0();
@@ -10182,27 +10068,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
-    // InternalPerspectiveDsl.g:2945:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    // InternalPerspectiveDsl.g:2914:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
     public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2949:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:2918:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
             int alt9=2;
             alt9 = dfa9.predict(input);
             switch (alt9) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2950:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:2919:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2950:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:2951:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalPerspectiveDsl.g:2919:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:2920:3: ( rule__XAnnotationElementValue__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:2952:3: ( rule__XAnnotationElementValue__Group_0__0 )
-                    // InternalPerspectiveDsl.g:2952:4: rule__XAnnotationElementValue__Group_0__0
+                    // InternalPerspectiveDsl.g:2921:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalPerspectiveDsl.g:2921:4: rule__XAnnotationElementValue__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0__0();
@@ -10222,10 +10108,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2956:2: ( ruleXAnnotationOrExpression )
+                    // InternalPerspectiveDsl.g:2925:2: ( ruleXAnnotationOrExpression )
                     {
-                    // InternalPerspectiveDsl.g:2956:2: ( ruleXAnnotationOrExpression )
-                    // InternalPerspectiveDsl.g:2957:3: ruleXAnnotationOrExpression
+                    // InternalPerspectiveDsl.g:2925:2: ( ruleXAnnotationOrExpression )
+                    // InternalPerspectiveDsl.g:2926:3: ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
@@ -10262,20 +10148,20 @@
 
 
     // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
-    // InternalPerspectiveDsl.g:2966:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    // InternalPerspectiveDsl.g:2935:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
     public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:2970:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:2939:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
-            if ( (LA10_0==89) ) {
+            if ( (LA10_0==88) ) {
                 alt10=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==90||(LA10_0>=94 && LA10_0<=95)||LA10_0==98||LA10_0==100||(LA10_0>=104 && LA10_0<=112)||LA10_0==114||LA10_0==125) ) {
+            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==89||(LA10_0>=93 && LA10_0<=94)||LA10_0==97||LA10_0==99||(LA10_0>=103 && LA10_0<=111)||LA10_0==113||LA10_0==124) ) {
                 alt10=2;
             }
             else {
@@ -10287,10 +10173,10 @@
             }
             switch (alt10) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2971:2: ( ruleXAnnotation )
+                    // InternalPerspectiveDsl.g:2940:2: ( ruleXAnnotation )
                     {
-                    // InternalPerspectiveDsl.g:2971:2: ( ruleXAnnotation )
-                    // InternalPerspectiveDsl.g:2972:3: ruleXAnnotation
+                    // InternalPerspectiveDsl.g:2940:2: ( ruleXAnnotation )
+                    // InternalPerspectiveDsl.g:2941:3: ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
@@ -10310,10 +10196,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2977:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:2946:2: ( ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:2977:2: ( ruleXExpression )
-                    // InternalPerspectiveDsl.g:2978:3: ruleXExpression
+                    // InternalPerspectiveDsl.g:2946:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:2947:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -10350,25 +10236,25 @@
 
 
     // $ANTLR start "rule__XAssignment__Alternatives"
-    // InternalPerspectiveDsl.g:2987:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    // InternalPerspectiveDsl.g:2956: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:2991:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            // InternalPerspectiveDsl.g:2960:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
             int alt11=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
                 int LA11_1 = input.LA(2);
 
-                if ( (LA11_1==13) ) {
-                    alt11=1;
-                }
-                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==88||(LA11_1>=90 && LA11_1<=115)||(LA11_1>=121 && LA11_1<=122)||(LA11_1>=124 && LA11_1<=125)) ) {
+                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==87||(LA11_1>=89 && LA11_1<=114)||(LA11_1>=120 && LA11_1<=121)||(LA11_1>=123 && LA11_1<=124)) ) {
                     alt11=2;
                 }
+                else if ( (LA11_1==13) ) {
+                    alt11=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10382,7 +10268,7 @@
                 {
                 int LA11_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==88||(LA11_2>=90 && LA11_2<=115)||(LA11_2>=121 && LA11_2<=122)||(LA11_2>=124 && LA11_2<=125)) ) {
+                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==87||(LA11_2>=89 && LA11_2<=114)||(LA11_2>=120 && LA11_2<=121)||(LA11_2>=123 && LA11_2<=124)) ) {
                     alt11=2;
                 }
                 else if ( (LA11_2==13) ) {
@@ -10401,12 +10287,12 @@
                 {
                 int LA11_3 = input.LA(2);
 
-                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==88||(LA11_3>=90 && LA11_3<=115)||(LA11_3>=121 && LA11_3<=122)||(LA11_3>=124 && LA11_3<=125)) ) {
-                    alt11=2;
-                }
-                else if ( (LA11_3==13) ) {
+                if ( (LA11_3==13) ) {
                     alt11=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==87||(LA11_3>=89 && LA11_3<=114)||(LA11_3>=120 && LA11_3<=121)||(LA11_3>=123 && LA11_3<=124)) ) {
+                    alt11=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10423,7 +10309,7 @@
                 if ( (LA11_4==13) ) {
                     alt11=1;
                 }
-                else 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==88||(LA11_4>=90 && LA11_4<=115)||(LA11_4>=121 && LA11_4<=122)||(LA11_4>=124 && LA11_4<=125)) ) {
+                else 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==87||(LA11_4>=89 && LA11_4<=114)||(LA11_4>=120 && LA11_4<=121)||(LA11_4>=123 && LA11_4<=124)) ) {
                     alt11=2;
                 }
                 else {
@@ -10439,12 +10325,12 @@
                 {
                 int LA11_5 = input.LA(2);
 
-                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==88||(LA11_5>=90 && LA11_5<=115)||(LA11_5>=121 && LA11_5<=122)||(LA11_5>=124 && LA11_5<=125)) ) {
-                    alt11=2;
-                }
-                else if ( (LA11_5==13) ) {
+                if ( (LA11_5==13) ) {
                     alt11=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==87||(LA11_5>=89 && LA11_5<=114)||(LA11_5>=120 && LA11_5<=121)||(LA11_5>=123 && LA11_5<=124)) ) {
+                    alt11=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10465,11 +10351,12 @@
             case 49:
             case 50:
             case 54:
-            case 90:
+            case 89:
+            case 93:
             case 94:
-            case 95:
-            case 98:
-            case 100:
+            case 97:
+            case 99:
+            case 103:
             case 104:
             case 105:
             case 106:
@@ -10478,9 +10365,8 @@
             case 109:
             case 110:
             case 111:
-            case 112:
-            case 114:
-            case 125:
+            case 113:
+            case 124:
                 {
                 alt11=2;
                 }
@@ -10495,16 +10381,16 @@
 
             switch (alt11) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2992:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:2961:2: ( ( rule__XAssignment__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2992:2: ( ( rule__XAssignment__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:2993:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalPerspectiveDsl.g:2961:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:2962:3: ( rule__XAssignment__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:2994:3: ( rule__XAssignment__Group_0__0 )
-                    // InternalPerspectiveDsl.g:2994:4: rule__XAssignment__Group_0__0
+                    // InternalPerspectiveDsl.g:2963:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalPerspectiveDsl.g:2963:4: rule__XAssignment__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_0__0();
@@ -10524,16 +10410,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2998:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:2967:2: ( ( rule__XAssignment__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:2998:2: ( ( rule__XAssignment__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:2999:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalPerspectiveDsl.g:2967:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:2968:3: ( rule__XAssignment__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3000:3: ( rule__XAssignment__Group_1__0 )
-                    // InternalPerspectiveDsl.g:3000:4: rule__XAssignment__Group_1__0
+                    // InternalPerspectiveDsl.g:2969:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalPerspectiveDsl.g:2969:4: rule__XAssignment__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1__0();
@@ -10570,13 +10456,13 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Alternatives"
-    // InternalPerspectiveDsl.g:3008:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    // InternalPerspectiveDsl.g:2977: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:3012:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            // InternalPerspectiveDsl.g:2981:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
             int alt12=7;
             switch ( input.LA(1) ) {
             case 16:
@@ -10624,10 +10510,10 @@
 
             switch (alt12) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3013:2: ( '+=' )
+                    // InternalPerspectiveDsl.g:2982:2: ( '+=' )
                     {
-                    // InternalPerspectiveDsl.g:3013:2: ( '+=' )
-                    // InternalPerspectiveDsl.g:3014:3: '+='
+                    // InternalPerspectiveDsl.g:2982:2: ( '+=' )
+                    // InternalPerspectiveDsl.g:2983:3: '+='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
@@ -10643,10 +10529,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3019:2: ( '-=' )
+                    // InternalPerspectiveDsl.g:2988:2: ( '-=' )
                     {
-                    // InternalPerspectiveDsl.g:3019:2: ( '-=' )
-                    // InternalPerspectiveDsl.g:3020:3: '-='
+                    // InternalPerspectiveDsl.g:2988:2: ( '-=' )
+                    // InternalPerspectiveDsl.g:2989:3: '-='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
@@ -10662,10 +10548,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3025:2: ( '*=' )
+                    // InternalPerspectiveDsl.g:2994:2: ( '*=' )
                     {
-                    // InternalPerspectiveDsl.g:3025:2: ( '*=' )
-                    // InternalPerspectiveDsl.g:3026:3: '*='
+                    // InternalPerspectiveDsl.g:2994:2: ( '*=' )
+                    // InternalPerspectiveDsl.g:2995:3: '*='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
@@ -10681,10 +10567,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3031:2: ( '/=' )
+                    // InternalPerspectiveDsl.g:3000:2: ( '/=' )
                     {
-                    // InternalPerspectiveDsl.g:3031:2: ( '/=' )
-                    // InternalPerspectiveDsl.g:3032:3: '/='
+                    // InternalPerspectiveDsl.g:3000:2: ( '/=' )
+                    // InternalPerspectiveDsl.g:3001:3: '/='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
@@ -10700,10 +10586,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3037:2: ( '%=' )
+                    // InternalPerspectiveDsl.g:3006:2: ( '%=' )
                     {
-                    // InternalPerspectiveDsl.g:3037:2: ( '%=' )
-                    // InternalPerspectiveDsl.g:3038:3: '%='
+                    // InternalPerspectiveDsl.g:3006:2: ( '%=' )
+                    // InternalPerspectiveDsl.g:3007:3: '%='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
@@ -10719,16 +10605,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3043:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3012:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3043:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    // InternalPerspectiveDsl.g:3044:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3012:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3013:3: ( rule__OpMultiAssign__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                     }
-                    // InternalPerspectiveDsl.g:3045:3: ( rule__OpMultiAssign__Group_5__0 )
-                    // InternalPerspectiveDsl.g:3045:4: rule__OpMultiAssign__Group_5__0
+                    // InternalPerspectiveDsl.g:3014:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3014:4: rule__OpMultiAssign__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_5__0();
@@ -10748,16 +10634,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3049:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3018:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3049:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    // InternalPerspectiveDsl.g:3050:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3018:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3019:3: ( rule__OpMultiAssign__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                     }
-                    // InternalPerspectiveDsl.g:3051:3: ( rule__OpMultiAssign__Group_6__0 )
-                    // InternalPerspectiveDsl.g:3051:4: rule__OpMultiAssign__Group_6__0
+                    // InternalPerspectiveDsl.g:3020:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3020:4: rule__OpMultiAssign__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_6__0();
@@ -10794,13 +10680,13 @@
 
 
     // $ANTLR start "rule__OpEquality__Alternatives"
-    // InternalPerspectiveDsl.g:3059:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    // InternalPerspectiveDsl.g:3028:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
     public final void rule__OpEquality__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3063:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            // InternalPerspectiveDsl.g:3032:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
             int alt13=4;
             switch ( input.LA(1) ) {
             case 21:
@@ -10833,10 +10719,10 @@
 
             switch (alt13) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3064:2: ( '==' )
+                    // InternalPerspectiveDsl.g:3033:2: ( '==' )
                     {
-                    // InternalPerspectiveDsl.g:3064:2: ( '==' )
-                    // InternalPerspectiveDsl.g:3065:3: '=='
+                    // InternalPerspectiveDsl.g:3033:2: ( '==' )
+                    // InternalPerspectiveDsl.g:3034:3: '=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
@@ -10852,10 +10738,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3070:2: ( '!=' )
+                    // InternalPerspectiveDsl.g:3039:2: ( '!=' )
                     {
-                    // InternalPerspectiveDsl.g:3070:2: ( '!=' )
-                    // InternalPerspectiveDsl.g:3071:3: '!='
+                    // InternalPerspectiveDsl.g:3039:2: ( '!=' )
+                    // InternalPerspectiveDsl.g:3040:3: '!='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
@@ -10871,10 +10757,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3076:2: ( '===' )
+                    // InternalPerspectiveDsl.g:3045:2: ( '===' )
                     {
-                    // InternalPerspectiveDsl.g:3076:2: ( '===' )
-                    // InternalPerspectiveDsl.g:3077:3: '==='
+                    // InternalPerspectiveDsl.g:3045:2: ( '===' )
+                    // InternalPerspectiveDsl.g:3046:3: '==='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
@@ -10890,10 +10776,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3082:2: ( '!==' )
+                    // InternalPerspectiveDsl.g:3051:2: ( '!==' )
                     {
-                    // InternalPerspectiveDsl.g:3082:2: ( '!==' )
-                    // InternalPerspectiveDsl.g:3083:3: '!=='
+                    // InternalPerspectiveDsl.g:3051:2: ( '!==' )
+                    // InternalPerspectiveDsl.g:3052:3: '!=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
@@ -10926,17 +10812,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
-    // InternalPerspectiveDsl.g:3092:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3061: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:3096:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3065:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( (LA14_0==96) ) {
+            if ( (LA14_0==95) ) {
                 alt14=1;
             }
             else if ( ((LA14_0>=25 && LA14_0<=27)) ) {
@@ -10951,16 +10837,16 @@
             }
             switch (alt14) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3097:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3066:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3097:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3098:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3066:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3067:3: ( rule__XRelationalExpression__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3099:3: ( rule__XRelationalExpression__Group_1_0__0 )
-                    // InternalPerspectiveDsl.g:3099:4: rule__XRelationalExpression__Group_1_0__0
+                    // InternalPerspectiveDsl.g:3068:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3068:4: rule__XRelationalExpression__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_0__0();
@@ -10980,16 +10866,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3103:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3072:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3103:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3104:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3072:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3073:3: ( rule__XRelationalExpression__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3105:3: ( rule__XRelationalExpression__Group_1_1__0 )
-                    // InternalPerspectiveDsl.g:3105:4: rule__XRelationalExpression__Group_1_1__0
+                    // InternalPerspectiveDsl.g:3074:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3074:4: rule__XRelationalExpression__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_1__0();
@@ -11026,13 +10912,13 @@
 
 
     // $ANTLR start "rule__OpCompare__Alternatives"
-    // InternalPerspectiveDsl.g:3113:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
+    // InternalPerspectiveDsl.g:3082:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
     public final void rule__OpCompare__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3117:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
+            // InternalPerspectiveDsl.g:3086:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
             int alt15=4;
             switch ( input.LA(1) ) {
             case 25:
@@ -11047,7 +10933,7 @@
                 if ( (LA15_2==13) ) {
                     alt15=2;
                 }
-                else 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==90||(LA15_2>=94 && LA15_2<=95)||LA15_2==98||LA15_2==100||(LA15_2>=104 && LA15_2<=112)||LA15_2==114||LA15_2==125) ) {
+                else 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==89||(LA15_2>=93 && LA15_2<=94)||LA15_2==97||LA15_2==99||(LA15_2>=103 && LA15_2<=111)||LA15_2==113||LA15_2==124) ) {
                     alt15=4;
                 }
                 else {
@@ -11074,10 +10960,10 @@
 
             switch (alt15) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3118:2: ( '>=' )
+                    // InternalPerspectiveDsl.g:3087:2: ( '>=' )
                     {
-                    // InternalPerspectiveDsl.g:3118:2: ( '>=' )
-                    // InternalPerspectiveDsl.g:3119:3: '>='
+                    // InternalPerspectiveDsl.g:3087:2: ( '>=' )
+                    // InternalPerspectiveDsl.g:3088:3: '>='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
@@ -11093,16 +10979,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3124:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3093:2: ( ( rule__OpCompare__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3124:2: ( ( rule__OpCompare__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:3125:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3093:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3094:3: ( rule__OpCompare__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3126:3: ( rule__OpCompare__Group_1__0 )
-                    // InternalPerspectiveDsl.g:3126:4: rule__OpCompare__Group_1__0
+                    // InternalPerspectiveDsl.g:3095:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3095:4: rule__OpCompare__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpCompare__Group_1__0();
@@ -11122,10 +11008,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3130:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3099:2: ( '>' )
                     {
-                    // InternalPerspectiveDsl.g:3130:2: ( '>' )
-                    // InternalPerspectiveDsl.g:3131:3: '>'
+                    // InternalPerspectiveDsl.g:3099:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3100:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
@@ -11141,10 +11027,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3136:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3105:2: ( '<' )
                     {
-                    // InternalPerspectiveDsl.g:3136:2: ( '<' )
-                    // InternalPerspectiveDsl.g:3137:3: '<'
+                    // InternalPerspectiveDsl.g:3105:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3106:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
@@ -11177,21 +11063,21 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives"
-    // InternalPerspectiveDsl.g:3146:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
+    // InternalPerspectiveDsl.g:3115: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:3150:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
+            // InternalPerspectiveDsl.g:3119: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) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3151:2: ( '->' )
+                    // InternalPerspectiveDsl.g:3120:2: ( '->' )
                     {
-                    // InternalPerspectiveDsl.g:3151:2: ( '->' )
-                    // InternalPerspectiveDsl.g:3152:3: '->'
+                    // InternalPerspectiveDsl.g:3120:2: ( '->' )
+                    // InternalPerspectiveDsl.g:3121:3: '->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
@@ -11207,10 +11093,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3157:2: ( '..<' )
+                    // InternalPerspectiveDsl.g:3126:2: ( '..<' )
                     {
-                    // InternalPerspectiveDsl.g:3157:2: ( '..<' )
-                    // InternalPerspectiveDsl.g:3158:3: '..<'
+                    // InternalPerspectiveDsl.g:3126:2: ( '..<' )
+                    // InternalPerspectiveDsl.g:3127:3: '..<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
@@ -11226,16 +11112,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3163:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalPerspectiveDsl.g:3132:2: ( ( rule__OpOther__Group_2__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3163:2: ( ( rule__OpOther__Group_2__0 ) )
-                    // InternalPerspectiveDsl.g:3164:3: ( rule__OpOther__Group_2__0 )
+                    // InternalPerspectiveDsl.g:3132:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalPerspectiveDsl.g:3133:3: ( rule__OpOther__Group_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                     }
-                    // InternalPerspectiveDsl.g:3165:3: ( rule__OpOther__Group_2__0 )
-                    // InternalPerspectiveDsl.g:3165:4: rule__OpOther__Group_2__0
+                    // InternalPerspectiveDsl.g:3134:3: ( rule__OpOther__Group_2__0 )
+                    // InternalPerspectiveDsl.g:3134:4: rule__OpOther__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_2__0();
@@ -11255,10 +11141,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3169:2: ( '..' )
+                    // InternalPerspectiveDsl.g:3138:2: ( '..' )
                     {
-                    // InternalPerspectiveDsl.g:3169:2: ( '..' )
-                    // InternalPerspectiveDsl.g:3170:3: '..'
+                    // InternalPerspectiveDsl.g:3138:2: ( '..' )
+                    // InternalPerspectiveDsl.g:3139:3: '..'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
@@ -11274,10 +11160,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3175:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3144:2: ( '=>' )
                     {
-                    // InternalPerspectiveDsl.g:3175:2: ( '=>' )
-                    // InternalPerspectiveDsl.g:3176:3: '=>'
+                    // InternalPerspectiveDsl.g:3144:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3145:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
@@ -11293,16 +11179,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3181:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3150:2: ( ( rule__OpOther__Group_5__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3181:2: ( ( rule__OpOther__Group_5__0 ) )
-                    // InternalPerspectiveDsl.g:3182:3: ( rule__OpOther__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3150:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalPerspectiveDsl.g:3151:3: ( rule__OpOther__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                     }
-                    // InternalPerspectiveDsl.g:3183:3: ( rule__OpOther__Group_5__0 )
-                    // InternalPerspectiveDsl.g:3183:4: rule__OpOther__Group_5__0
+                    // InternalPerspectiveDsl.g:3152:3: ( rule__OpOther__Group_5__0 )
+                    // InternalPerspectiveDsl.g:3152:4: rule__OpOther__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5__0();
@@ -11322,16 +11208,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3187:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3156:2: ( ( rule__OpOther__Group_6__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3187:2: ( ( rule__OpOther__Group_6__0 ) )
-                    // InternalPerspectiveDsl.g:3188:3: ( rule__OpOther__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3156:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalPerspectiveDsl.g:3157:3: ( rule__OpOther__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                     }
-                    // InternalPerspectiveDsl.g:3189:3: ( rule__OpOther__Group_6__0 )
-                    // InternalPerspectiveDsl.g:3189:4: rule__OpOther__Group_6__0
+                    // InternalPerspectiveDsl.g:3158:3: ( rule__OpOther__Group_6__0 )
+                    // InternalPerspectiveDsl.g:3158:4: rule__OpOther__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6__0();
@@ -11351,10 +11237,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:3193:2: ( '<>' )
+                    // InternalPerspectiveDsl.g:3162:2: ( '<>' )
                     {
-                    // InternalPerspectiveDsl.g:3193:2: ( '<>' )
-                    // InternalPerspectiveDsl.g:3194:3: '<>'
+                    // InternalPerspectiveDsl.g:3162:2: ( '<>' )
+                    // InternalPerspectiveDsl.g:3163:3: '<>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
@@ -11370,10 +11256,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:3199:2: ( '?:' )
+                    // InternalPerspectiveDsl.g:3168:2: ( '?:' )
                     {
-                    // InternalPerspectiveDsl.g:3199:2: ( '?:' )
-                    // InternalPerspectiveDsl.g:3200:3: '?:'
+                    // InternalPerspectiveDsl.g:3168:2: ( '?:' )
+                    // InternalPerspectiveDsl.g:3169:3: '?:'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
@@ -11406,13 +11292,13 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_5_1"
-    // InternalPerspectiveDsl.g:3209:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+    // InternalPerspectiveDsl.g:3178: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:3213:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+            // InternalPerspectiveDsl.g:3182:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
             int alt17=2;
             int LA17_0 = input.LA(1);
 
@@ -11422,7 +11308,7 @@
                 if ( (LA17_1==26) ) {
                     alt17=1;
                 }
-                else 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==90||(LA17_1>=94 && LA17_1<=95)||LA17_1==98||LA17_1==100||(LA17_1>=104 && LA17_1<=112)||LA17_1==114||LA17_1==125) ) {
+                else 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==89||(LA17_1>=93 && LA17_1<=94)||LA17_1==97||LA17_1==99||(LA17_1>=103 && LA17_1<=111)||LA17_1==113||LA17_1==124) ) {
                     alt17=2;
                 }
                 else {
@@ -11442,16 +11328,16 @@
             }
             switch (alt17) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3214:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3183:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3214:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3215:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalPerspectiveDsl.g:3183:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3184:3: ( rule__OpOther__Group_5_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3216:3: ( rule__OpOther__Group_5_1_0__0 )
-                    // InternalPerspectiveDsl.g:3216:4: rule__OpOther__Group_5_1_0__0
+                    // InternalPerspectiveDsl.g:3185:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalPerspectiveDsl.g:3185:4: rule__OpOther__Group_5_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5_1_0__0();
@@ -11471,10 +11357,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3220:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3189:2: ( '>' )
                     {
-                    // InternalPerspectiveDsl.g:3220:2: ( '>' )
-                    // InternalPerspectiveDsl.g:3221:3: '>'
+                    // InternalPerspectiveDsl.g:3189:2: ( '>' )
+                    // InternalPerspectiveDsl.g:3190:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
@@ -11507,23 +11393,23 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_6_1"
-    // InternalPerspectiveDsl.g:3230:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
+    // InternalPerspectiveDsl.g:3199: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:3234:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
+            // InternalPerspectiveDsl.g:3203:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
             int alt18=3;
             int LA18_0 = input.LA(1);
 
             if ( (LA18_0==27) ) {
                 int LA18_1 = input.LA(2);
 
-                if ( (synpred49_InternalPerspectiveDsl()) ) {
+                if ( (synpred48_InternalPerspectiveDsl()) ) {
                     alt18=1;
                 }
-                else if ( (synpred50_InternalPerspectiveDsl()) ) {
+                else if ( (synpred49_InternalPerspectiveDsl()) ) {
                     alt18=2;
                 }
                 else {
@@ -11546,16 +11432,16 @@
             }
             switch (alt18) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3235:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3204:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3235:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3236:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalPerspectiveDsl.g:3204:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3205:3: ( rule__OpOther__Group_6_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3237:3: ( rule__OpOther__Group_6_1_0__0 )
-                    // InternalPerspectiveDsl.g:3237:4: rule__OpOther__Group_6_1_0__0
+                    // InternalPerspectiveDsl.g:3206:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalPerspectiveDsl.g:3206:4: rule__OpOther__Group_6_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6_1_0__0();
@@ -11575,10 +11461,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3241:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3210:2: ( '<' )
                     {
-                    // InternalPerspectiveDsl.g:3241:2: ( '<' )
-                    // InternalPerspectiveDsl.g:3242:3: '<'
+                    // InternalPerspectiveDsl.g:3210:2: ( '<' )
+                    // InternalPerspectiveDsl.g:3211:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -11594,10 +11480,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3247:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3216:2: ( '=>' )
                     {
-                    // InternalPerspectiveDsl.g:3247:2: ( '=>' )
-                    // InternalPerspectiveDsl.g:3248:3: '=>'
+                    // InternalPerspectiveDsl.g:3216:2: ( '=>' )
+                    // InternalPerspectiveDsl.g:3217:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
@@ -11630,13 +11516,13 @@
 
 
     // $ANTLR start "rule__OpAdd__Alternatives"
-    // InternalPerspectiveDsl.g:3257:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+    // InternalPerspectiveDsl.g:3226:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
     public final void rule__OpAdd__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3261:1: ( ( '+' ) | ( '-' ) )
+            // InternalPerspectiveDsl.g:3230:1: ( ( '+' ) | ( '-' ) )
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -11655,10 +11541,10 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3262:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3231:2: ( '+' )
                     {
-                    // InternalPerspectiveDsl.g:3262:2: ( '+' )
-                    // InternalPerspectiveDsl.g:3263:3: '+'
+                    // InternalPerspectiveDsl.g:3231:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3232:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
@@ -11674,10 +11560,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3268:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3237:2: ( '-' )
                     {
-                    // InternalPerspectiveDsl.g:3268:2: ( '-' )
-                    // InternalPerspectiveDsl.g:3269:3: '-'
+                    // InternalPerspectiveDsl.g:3237:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3238:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
@@ -11710,13 +11596,13 @@
 
 
     // $ANTLR start "rule__OpMulti__Alternatives"
-    // InternalPerspectiveDsl.g:3278:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+    // InternalPerspectiveDsl.g:3247:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
     public final void rule__OpMulti__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3282:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+            // InternalPerspectiveDsl.g:3251:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
             int alt20=4;
             switch ( input.LA(1) ) {
             case 36:
@@ -11749,10 +11635,10 @@
 
             switch (alt20) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3283:2: ( '*' )
+                    // InternalPerspectiveDsl.g:3252:2: ( '*' )
                     {
-                    // InternalPerspectiveDsl.g:3283:2: ( '*' )
-                    // InternalPerspectiveDsl.g:3284:3: '*'
+                    // InternalPerspectiveDsl.g:3252:2: ( '*' )
+                    // InternalPerspectiveDsl.g:3253:3: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
@@ -11768,10 +11654,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3289:2: ( '**' )
+                    // InternalPerspectiveDsl.g:3258:2: ( '**' )
                     {
-                    // InternalPerspectiveDsl.g:3289:2: ( '**' )
-                    // InternalPerspectiveDsl.g:3290:3: '**'
+                    // InternalPerspectiveDsl.g:3258:2: ( '**' )
+                    // InternalPerspectiveDsl.g:3259:3: '**'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
@@ -11787,10 +11673,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3295:2: ( '/' )
+                    // InternalPerspectiveDsl.g:3264:2: ( '/' )
                     {
-                    // InternalPerspectiveDsl.g:3295:2: ( '/' )
-                    // InternalPerspectiveDsl.g:3296:3: '/'
+                    // InternalPerspectiveDsl.g:3264:2: ( '/' )
+                    // InternalPerspectiveDsl.g:3265:3: '/'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
@@ -11806,10 +11692,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3301:2: ( '%' )
+                    // InternalPerspectiveDsl.g:3270:2: ( '%' )
                     {
-                    // InternalPerspectiveDsl.g:3301:2: ( '%' )
-                    // InternalPerspectiveDsl.g:3302:3: '%'
+                    // InternalPerspectiveDsl.g:3270:2: ( '%' )
+                    // InternalPerspectiveDsl.g:3271:3: '%'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
@@ -11842,20 +11728,20 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Alternatives"
-    // InternalPerspectiveDsl.g:3311:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+    // InternalPerspectiveDsl.g:3280:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
     public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3315:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+            // InternalPerspectiveDsl.g:3284:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
             int alt21=2;
             int LA21_0 = input.LA(1);
 
             if ( ((LA21_0>=34 && LA21_0<=35)||LA21_0==40) ) {
                 alt21=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==90||(LA21_0>=94 && LA21_0<=95)||LA21_0==98||LA21_0==100||(LA21_0>=104 && LA21_0<=112)||LA21_0==114||LA21_0==125) ) {
+            else if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_DECIMAL)||LA21_0==27||(LA21_0>=45 && LA21_0<=50)||LA21_0==54||LA21_0==89||(LA21_0>=93 && LA21_0<=94)||LA21_0==97||LA21_0==99||(LA21_0>=103 && LA21_0<=111)||LA21_0==113||LA21_0==124) ) {
                 alt21=2;
             }
             else {
@@ -11867,16 +11753,16 @@
             }
             switch (alt21) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3316:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3285:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3316:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:3317:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3285:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3286:3: ( rule__XUnaryOperation__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3318:3: ( rule__XUnaryOperation__Group_0__0 )
-                    // InternalPerspectiveDsl.g:3318:4: rule__XUnaryOperation__Group_0__0
+                    // InternalPerspectiveDsl.g:3287:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3287:4: rule__XUnaryOperation__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XUnaryOperation__Group_0__0();
@@ -11896,10 +11782,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3322:2: ( ruleXCastedExpression )
+                    // InternalPerspectiveDsl.g:3291:2: ( ruleXCastedExpression )
                     {
-                    // InternalPerspectiveDsl.g:3322:2: ( ruleXCastedExpression )
-                    // InternalPerspectiveDsl.g:3323:3: ruleXCastedExpression
+                    // InternalPerspectiveDsl.g:3291:2: ( ruleXCastedExpression )
+                    // InternalPerspectiveDsl.g:3292:3: ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
@@ -11936,13 +11822,13 @@
 
 
     // $ANTLR start "rule__OpUnary__Alternatives"
-    // InternalPerspectiveDsl.g:3332:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+    // InternalPerspectiveDsl.g:3301:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
     public final void rule__OpUnary__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3336:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+            // InternalPerspectiveDsl.g:3305:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
             int alt22=3;
             switch ( input.LA(1) ) {
             case 40:
@@ -11970,10 +11856,10 @@
 
             switch (alt22) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3337:2: ( '!' )
+                    // InternalPerspectiveDsl.g:3306:2: ( '!' )
                     {
-                    // InternalPerspectiveDsl.g:3337:2: ( '!' )
-                    // InternalPerspectiveDsl.g:3338:3: '!'
+                    // InternalPerspectiveDsl.g:3306:2: ( '!' )
+                    // InternalPerspectiveDsl.g:3307:3: '!'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
@@ -11989,10 +11875,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3343:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3312:2: ( '-' )
                     {
-                    // InternalPerspectiveDsl.g:3343:2: ( '-' )
-                    // InternalPerspectiveDsl.g:3344:3: '-'
+                    // InternalPerspectiveDsl.g:3312:2: ( '-' )
+                    // InternalPerspectiveDsl.g:3313:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
@@ -12008,10 +11894,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3349:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3318:2: ( '+' )
                     {
-                    // InternalPerspectiveDsl.g:3349:2: ( '+' )
-                    // InternalPerspectiveDsl.g:3350:3: '+'
+                    // InternalPerspectiveDsl.g:3318:2: ( '+' )
+                    // InternalPerspectiveDsl.g:3319:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
@@ -12044,13 +11930,13 @@
 
 
     // $ANTLR start "rule__OpPostfix__Alternatives"
-    // InternalPerspectiveDsl.g:3359:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
+    // InternalPerspectiveDsl.g:3328:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
     public final void rule__OpPostfix__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3363:1: ( ( '++' ) | ( '--' ) )
+            // InternalPerspectiveDsl.g:3332:1: ( ( '++' ) | ( '--' ) )
             int alt23=2;
             int LA23_0 = input.LA(1);
 
@@ -12069,10 +11955,10 @@
             }
             switch (alt23) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3364:2: ( '++' )
+                    // InternalPerspectiveDsl.g:3333:2: ( '++' )
                     {
-                    // InternalPerspectiveDsl.g:3364:2: ( '++' )
-                    // InternalPerspectiveDsl.g:3365:3: '++'
+                    // InternalPerspectiveDsl.g:3333:2: ( '++' )
+                    // InternalPerspectiveDsl.g:3334:3: '++'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
@@ -12088,10 +11974,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3370:2: ( '--' )
+                    // InternalPerspectiveDsl.g:3339:2: ( '--' )
                     {
-                    // InternalPerspectiveDsl.g:3370:2: ( '--' )
-                    // InternalPerspectiveDsl.g:3371:3: '--'
+                    // InternalPerspectiveDsl.g:3339:2: ( '--' )
+                    // InternalPerspectiveDsl.g:3340:3: '--'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
@@ -12124,27 +12010,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
-    // InternalPerspectiveDsl.g:3380:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3349: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:3384:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3353:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
             int alt24=2;
             alt24 = dfa24.predict(input);
             switch (alt24) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3385:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3354:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3385:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
-                    // InternalPerspectiveDsl.g:3386:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3354:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalPerspectiveDsl.g:3355:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3387:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
-                    // InternalPerspectiveDsl.g:3387:4: rule__XMemberFeatureCall__Group_1_0__0
+                    // InternalPerspectiveDsl.g:3356:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalPerspectiveDsl.g:3356:4: rule__XMemberFeatureCall__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_0__0();
@@ -12164,16 +12050,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3391:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3360:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3391:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3392:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3360:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3361:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3393:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
-                    // InternalPerspectiveDsl.g:3393:4: rule__XMemberFeatureCall__Group_1_1__0
+                    // InternalPerspectiveDsl.g:3362:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalPerspectiveDsl.g:3362:4: rule__XMemberFeatureCall__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1__0();
@@ -12210,20 +12096,20 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
-    // InternalPerspectiveDsl.g:3401:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+    // InternalPerspectiveDsl.g:3370: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:3405:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:3374:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
             int alt25=2;
             int LA25_0 = input.LA(1);
 
             if ( (LA25_0==43) ) {
                 alt25=1;
             }
-            else if ( (LA25_0==121) ) {
+            else if ( (LA25_0==120) ) {
                 alt25=2;
             }
             else {
@@ -12235,10 +12121,10 @@
             }
             switch (alt25) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3406:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3375:2: ( '.' )
                     {
-                    // InternalPerspectiveDsl.g:3406:2: ( '.' )
-                    // InternalPerspectiveDsl.g:3407:3: '.'
+                    // InternalPerspectiveDsl.g:3375:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3376:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
@@ -12254,16 +12140,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3412:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3381:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3412:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
-                    // InternalPerspectiveDsl.g:3413:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3381:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3382: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:3414:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
-                    // InternalPerspectiveDsl.g:3414:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+                    // InternalPerspectiveDsl.g:3383:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3383:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
@@ -12300,13 +12186,13 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
-    // InternalPerspectiveDsl.g:3422: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:3391: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:3426:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+            // InternalPerspectiveDsl.g:3395:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
             int alt26=3;
             switch ( input.LA(1) ) {
             case 43:
@@ -12314,12 +12200,12 @@
                 alt26=1;
                 }
                 break;
-            case 122:
+            case 121:
                 {
                 alt26=2;
                 }
                 break;
-            case 121:
+            case 120:
                 {
                 alt26=3;
                 }
@@ -12334,10 +12220,10 @@
 
             switch (alt26) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3427:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3396:2: ( '.' )
                     {
-                    // InternalPerspectiveDsl.g:3427:2: ( '.' )
-                    // InternalPerspectiveDsl.g:3428:3: '.'
+                    // InternalPerspectiveDsl.g:3396:2: ( '.' )
+                    // InternalPerspectiveDsl.g:3397:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
@@ -12353,16 +12239,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3433:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3402:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3433:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
-                    // InternalPerspectiveDsl.g:3434:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3402:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalPerspectiveDsl.g:3403: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:3435:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
-                    // InternalPerspectiveDsl.g:3435:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+                    // InternalPerspectiveDsl.g:3404:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalPerspectiveDsl.g:3404:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
@@ -12382,16 +12268,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3439:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalPerspectiveDsl.g:3408:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                     {
-                    // InternalPerspectiveDsl.g:3439:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
-                    // InternalPerspectiveDsl.g:3440:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalPerspectiveDsl.g:3408:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalPerspectiveDsl.g:3409: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:3441:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
-                    // InternalPerspectiveDsl.g:3441:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+                    // InternalPerspectiveDsl.g:3410:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalPerspectiveDsl.g:3410:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
@@ -12428,27 +12314,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
-    // InternalPerspectiveDsl.g:3449: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:3418: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:3453:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3422: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) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3454:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3423:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3454:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-                    // InternalPerspectiveDsl.g:3455:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalPerspectiveDsl.g:3423:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3424:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3456:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-                    // InternalPerspectiveDsl.g:3456:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+                    // InternalPerspectiveDsl.g:3425:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalPerspectiveDsl.g:3425:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -12468,16 +12354,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3460:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3429:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3460:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3461:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3429:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3430: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:3462:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
-                    // InternalPerspectiveDsl.g:3462:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+                    // InternalPerspectiveDsl.g:3431:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3431:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
@@ -12514,21 +12400,21 @@
 
 
     // $ANTLR start "rule__XPrimaryExpression__Alternatives"
-    // InternalPerspectiveDsl.g:3470:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+    // InternalPerspectiveDsl.g:3439: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:3474:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+            // InternalPerspectiveDsl.g:3443: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) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3475:2: ( ruleXConstructorCall )
+                    // InternalPerspectiveDsl.g:3444:2: ( ruleXConstructorCall )
                     {
-                    // InternalPerspectiveDsl.g:3475:2: ( ruleXConstructorCall )
-                    // InternalPerspectiveDsl.g:3476:3: ruleXConstructorCall
+                    // InternalPerspectiveDsl.g:3444:2: ( ruleXConstructorCall )
+                    // InternalPerspectiveDsl.g:3445:3: ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
@@ -12548,10 +12434,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3481:2: ( ruleXBlockExpression )
+                    // InternalPerspectiveDsl.g:3450:2: ( ruleXBlockExpression )
                     {
-                    // InternalPerspectiveDsl.g:3481:2: ( ruleXBlockExpression )
-                    // InternalPerspectiveDsl.g:3482:3: ruleXBlockExpression
+                    // InternalPerspectiveDsl.g:3450:2: ( ruleXBlockExpression )
+                    // InternalPerspectiveDsl.g:3451:3: ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
@@ -12571,10 +12457,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3487:2: ( ruleXSwitchExpression )
+                    // InternalPerspectiveDsl.g:3456:2: ( ruleXSwitchExpression )
                     {
-                    // InternalPerspectiveDsl.g:3487:2: ( ruleXSwitchExpression )
-                    // InternalPerspectiveDsl.g:3488:3: ruleXSwitchExpression
+                    // InternalPerspectiveDsl.g:3456:2: ( ruleXSwitchExpression )
+                    // InternalPerspectiveDsl.g:3457:3: ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
@@ -12594,16 +12480,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3493:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalPerspectiveDsl.g:3462:2: ( ( ruleXSynchronizedExpression ) )
                     {
-                    // InternalPerspectiveDsl.g:3493:2: ( ( ruleXSynchronizedExpression ) )
-                    // InternalPerspectiveDsl.g:3494:3: ( ruleXSynchronizedExpression )
+                    // InternalPerspectiveDsl.g:3462:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalPerspectiveDsl.g:3463:3: ( ruleXSynchronizedExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                     }
-                    // InternalPerspectiveDsl.g:3495:3: ( ruleXSynchronizedExpression )
-                    // InternalPerspectiveDsl.g:3495:4: ruleXSynchronizedExpression
+                    // InternalPerspectiveDsl.g:3464:3: ( ruleXSynchronizedExpression )
+                    // InternalPerspectiveDsl.g:3464:4: ruleXSynchronizedExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXSynchronizedExpression();
@@ -12623,10 +12509,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3499:2: ( ruleXFeatureCall )
+                    // InternalPerspectiveDsl.g:3468:2: ( ruleXFeatureCall )
                     {
-                    // InternalPerspectiveDsl.g:3499:2: ( ruleXFeatureCall )
-                    // InternalPerspectiveDsl.g:3500:3: ruleXFeatureCall
+                    // InternalPerspectiveDsl.g:3468:2: ( ruleXFeatureCall )
+                    // InternalPerspectiveDsl.g:3469:3: ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
@@ -12646,10 +12532,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3505:2: ( ruleXLiteral )
+                    // InternalPerspectiveDsl.g:3474:2: ( ruleXLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3505:2: ( ruleXLiteral )
-                    // InternalPerspectiveDsl.g:3506:3: ruleXLiteral
+                    // InternalPerspectiveDsl.g:3474:2: ( ruleXLiteral )
+                    // InternalPerspectiveDsl.g:3475:3: ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
@@ -12669,10 +12555,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3511:2: ( ruleXIfExpression )
+                    // InternalPerspectiveDsl.g:3480:2: ( ruleXIfExpression )
                     {
-                    // InternalPerspectiveDsl.g:3511:2: ( ruleXIfExpression )
-                    // InternalPerspectiveDsl.g:3512:3: ruleXIfExpression
+                    // InternalPerspectiveDsl.g:3480:2: ( ruleXIfExpression )
+                    // InternalPerspectiveDsl.g:3481:3: ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
@@ -12692,16 +12578,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:3517:2: ( ( ruleXForLoopExpression ) )
+                    // InternalPerspectiveDsl.g:3486:2: ( ( ruleXForLoopExpression ) )
                     {
-                    // InternalPerspectiveDsl.g:3517:2: ( ( ruleXForLoopExpression ) )
-                    // InternalPerspectiveDsl.g:3518:3: ( ruleXForLoopExpression )
+                    // InternalPerspectiveDsl.g:3486:2: ( ( ruleXForLoopExpression ) )
+                    // InternalPerspectiveDsl.g:3487:3: ( ruleXForLoopExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                     }
-                    // InternalPerspectiveDsl.g:3519:3: ( ruleXForLoopExpression )
-                    // InternalPerspectiveDsl.g:3519:4: ruleXForLoopExpression
+                    // InternalPerspectiveDsl.g:3488:3: ( ruleXForLoopExpression )
+                    // InternalPerspectiveDsl.g:3488:4: ruleXForLoopExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXForLoopExpression();
@@ -12721,10 +12607,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:3523:2: ( ruleXBasicForLoopExpression )
+                    // InternalPerspectiveDsl.g:3492:2: ( ruleXBasicForLoopExpression )
                     {
-                    // InternalPerspectiveDsl.g:3523:2: ( ruleXBasicForLoopExpression )
-                    // InternalPerspectiveDsl.g:3524:3: ruleXBasicForLoopExpression
+                    // InternalPerspectiveDsl.g:3492:2: ( ruleXBasicForLoopExpression )
+                    // InternalPerspectiveDsl.g:3493:3: ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -12744,10 +12630,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalPerspectiveDsl.g:3529:2: ( ruleXWhileExpression )
+                    // InternalPerspectiveDsl.g:3498:2: ( ruleXWhileExpression )
                     {
-                    // InternalPerspectiveDsl.g:3529:2: ( ruleXWhileExpression )
-                    // InternalPerspectiveDsl.g:3530:3: ruleXWhileExpression
+                    // InternalPerspectiveDsl.g:3498:2: ( ruleXWhileExpression )
+                    // InternalPerspectiveDsl.g:3499:3: ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
@@ -12767,10 +12653,10 @@
                     }
                     break;
                 case 11 :
-                    // InternalPerspectiveDsl.g:3535:2: ( ruleXDoWhileExpression )
+                    // InternalPerspectiveDsl.g:3504:2: ( ruleXDoWhileExpression )
                     {
-                    // InternalPerspectiveDsl.g:3535:2: ( ruleXDoWhileExpression )
-                    // InternalPerspectiveDsl.g:3536:3: ruleXDoWhileExpression
+                    // InternalPerspectiveDsl.g:3504:2: ( ruleXDoWhileExpression )
+                    // InternalPerspectiveDsl.g:3505:3: ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
@@ -12790,10 +12676,10 @@
                     }
                     break;
                 case 12 :
-                    // InternalPerspectiveDsl.g:3541:2: ( ruleXThrowExpression )
+                    // InternalPerspectiveDsl.g:3510:2: ( ruleXThrowExpression )
                     {
-                    // InternalPerspectiveDsl.g:3541:2: ( ruleXThrowExpression )
-                    // InternalPerspectiveDsl.g:3542:3: ruleXThrowExpression
+                    // InternalPerspectiveDsl.g:3510:2: ( ruleXThrowExpression )
+                    // InternalPerspectiveDsl.g:3511:3: ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
@@ -12813,10 +12699,10 @@
                     }
                     break;
                 case 13 :
-                    // InternalPerspectiveDsl.g:3547:2: ( ruleXReturnExpression )
+                    // InternalPerspectiveDsl.g:3516:2: ( ruleXReturnExpression )
                     {
-                    // InternalPerspectiveDsl.g:3547:2: ( ruleXReturnExpression )
-                    // InternalPerspectiveDsl.g:3548:3: ruleXReturnExpression
+                    // InternalPerspectiveDsl.g:3516:2: ( ruleXReturnExpression )
+                    // InternalPerspectiveDsl.g:3517:3: ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
@@ -12836,10 +12722,10 @@
                     }
                     break;
                 case 14 :
-                    // InternalPerspectiveDsl.g:3553:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalPerspectiveDsl.g:3522:2: ( ruleXTryCatchFinallyExpression )
                     {
-                    // InternalPerspectiveDsl.g:3553:2: ( ruleXTryCatchFinallyExpression )
-                    // InternalPerspectiveDsl.g:3554:3: ruleXTryCatchFinallyExpression
+                    // InternalPerspectiveDsl.g:3522:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalPerspectiveDsl.g:3523:3: ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
@@ -12859,10 +12745,10 @@
                     }
                     break;
                 case 15 :
-                    // InternalPerspectiveDsl.g:3559:2: ( ruleXParenthesizedExpression )
+                    // InternalPerspectiveDsl.g:3528:2: ( ruleXParenthesizedExpression )
                     {
-                    // InternalPerspectiveDsl.g:3559:2: ( ruleXParenthesizedExpression )
-                    // InternalPerspectiveDsl.g:3560:3: ruleXParenthesizedExpression
+                    // InternalPerspectiveDsl.g:3528:2: ( ruleXParenthesizedExpression )
+                    // InternalPerspectiveDsl.g:3529:3: ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
@@ -12899,27 +12785,27 @@
 
 
     // $ANTLR start "rule__XLiteral__Alternatives"
-    // InternalPerspectiveDsl.g:3569:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+    // InternalPerspectiveDsl.g:3538: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:3573:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+            // InternalPerspectiveDsl.g:3542:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
             int alt29=7;
             switch ( input.LA(1) ) {
-            case 94:
+            case 93:
                 {
                 alt29=1;
                 }
                 break;
-            case 95:
+            case 94:
                 {
                 alt29=2;
                 }
                 break;
             case 50:
-            case 125:
+            case 124:
                 {
                 alt29=3;
                 }
@@ -12931,7 +12817,7 @@
                 alt29=4;
                 }
                 break;
-            case 108:
+            case 107:
                 {
                 alt29=5;
                 }
@@ -12941,7 +12827,7 @@
                 alt29=6;
                 }
                 break;
-            case 109:
+            case 108:
                 {
                 alt29=7;
                 }
@@ -12956,10 +12842,10 @@
 
             switch (alt29) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3574:2: ( ruleXCollectionLiteral )
+                    // InternalPerspectiveDsl.g:3543:2: ( ruleXCollectionLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3574:2: ( ruleXCollectionLiteral )
-                    // InternalPerspectiveDsl.g:3575:3: ruleXCollectionLiteral
+                    // InternalPerspectiveDsl.g:3543:2: ( ruleXCollectionLiteral )
+                    // InternalPerspectiveDsl.g:3544:3: ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
@@ -12979,16 +12865,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3580:2: ( ( ruleXClosure ) )
+                    // InternalPerspectiveDsl.g:3549:2: ( ( ruleXClosure ) )
                     {
-                    // InternalPerspectiveDsl.g:3580:2: ( ( ruleXClosure ) )
-                    // InternalPerspectiveDsl.g:3581:3: ( ruleXClosure )
+                    // InternalPerspectiveDsl.g:3549:2: ( ( ruleXClosure ) )
+                    // InternalPerspectiveDsl.g:3550:3: ( ruleXClosure )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3582:3: ( ruleXClosure )
-                    // InternalPerspectiveDsl.g:3582:4: ruleXClosure
+                    // InternalPerspectiveDsl.g:3551:3: ( ruleXClosure )
+                    // InternalPerspectiveDsl.g:3551:4: ruleXClosure
                     {
                     pushFollow(FOLLOW_2);
                     ruleXClosure();
@@ -13008,10 +12894,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3586:2: ( ruleXBooleanLiteral )
+                    // InternalPerspectiveDsl.g:3555:2: ( ruleXBooleanLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3586:2: ( ruleXBooleanLiteral )
-                    // InternalPerspectiveDsl.g:3587:3: ruleXBooleanLiteral
+                    // InternalPerspectiveDsl.g:3555:2: ( ruleXBooleanLiteral )
+                    // InternalPerspectiveDsl.g:3556:3: ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
@@ -13031,10 +12917,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3592:2: ( ruleXNumberLiteral )
+                    // InternalPerspectiveDsl.g:3561:2: ( ruleXNumberLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3592:2: ( ruleXNumberLiteral )
-                    // InternalPerspectiveDsl.g:3593:3: ruleXNumberLiteral
+                    // InternalPerspectiveDsl.g:3561:2: ( ruleXNumberLiteral )
+                    // InternalPerspectiveDsl.g:3562:3: ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
@@ -13054,10 +12940,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3598:2: ( ruleXNullLiteral )
+                    // InternalPerspectiveDsl.g:3567:2: ( ruleXNullLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3598:2: ( ruleXNullLiteral )
-                    // InternalPerspectiveDsl.g:3599:3: ruleXNullLiteral
+                    // InternalPerspectiveDsl.g:3567:2: ( ruleXNullLiteral )
+                    // InternalPerspectiveDsl.g:3568:3: ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
@@ -13077,10 +12963,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3604:2: ( ruleXStringLiteral )
+                    // InternalPerspectiveDsl.g:3573:2: ( ruleXStringLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3604:2: ( ruleXStringLiteral )
-                    // InternalPerspectiveDsl.g:3605:3: ruleXStringLiteral
+                    // InternalPerspectiveDsl.g:3573:2: ( ruleXStringLiteral )
+                    // InternalPerspectiveDsl.g:3574:3: ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
@@ -13100,10 +12986,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3610:2: ( ruleXTypeLiteral )
+                    // InternalPerspectiveDsl.g:3579:2: ( ruleXTypeLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3610:2: ( ruleXTypeLiteral )
-                    // InternalPerspectiveDsl.g:3611:3: ruleXTypeLiteral
+                    // InternalPerspectiveDsl.g:3579:2: ( ruleXTypeLiteral )
+                    // InternalPerspectiveDsl.g:3580:3: ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
@@ -13140,23 +13026,23 @@
 
 
     // $ANTLR start "rule__XCollectionLiteral__Alternatives"
-    // InternalPerspectiveDsl.g:3620:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+    // InternalPerspectiveDsl.g:3589:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
     public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3624:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+            // InternalPerspectiveDsl.g:3593:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
             int alt30=2;
             int LA30_0 = input.LA(1);
 
-            if ( (LA30_0==94) ) {
+            if ( (LA30_0==93) ) {
                 int LA30_1 = input.LA(2);
 
                 if ( (LA30_1==54) ) {
                     alt30=1;
                 }
-                else if ( (LA30_1==95) ) {
+                else if ( (LA30_1==94) ) {
                     alt30=2;
                 }
                 else {
@@ -13176,10 +13062,10 @@
             }
             switch (alt30) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3625:2: ( ruleXSetLiteral )
+                    // InternalPerspectiveDsl.g:3594:2: ( ruleXSetLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3625:2: ( ruleXSetLiteral )
-                    // InternalPerspectiveDsl.g:3626:3: ruleXSetLiteral
+                    // InternalPerspectiveDsl.g:3594:2: ( ruleXSetLiteral )
+                    // InternalPerspectiveDsl.g:3595:3: ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
@@ -13199,10 +13085,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3631:2: ( ruleXListLiteral )
+                    // InternalPerspectiveDsl.g:3600:2: ( ruleXListLiteral )
                     {
-                    // InternalPerspectiveDsl.g:3631:2: ( ruleXListLiteral )
-                    // InternalPerspectiveDsl.g:3632:3: ruleXListLiteral
+                    // InternalPerspectiveDsl.g:3600:2: ( ruleXListLiteral )
+                    // InternalPerspectiveDsl.g:3601:3: ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
@@ -13239,27 +13125,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
-    // InternalPerspectiveDsl.g:3641:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3610: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:3645:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3614:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
             int alt31=2;
             alt31 = dfa31.predict(input);
             switch (alt31) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3646:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3615:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3646:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:3647:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3615:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3616:3: ( rule__XSwitchExpression__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3648:3: ( rule__XSwitchExpression__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:3648:4: rule__XSwitchExpression__Group_2_0__0
+                    // InternalPerspectiveDsl.g:3617:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3617:4: rule__XSwitchExpression__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_0__0();
@@ -13279,16 +13165,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3652:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:3621:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3652:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
-                    // InternalPerspectiveDsl.g:3653:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:3621:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:3622:3: ( rule__XSwitchExpression__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3654:3: ( rule__XSwitchExpression__Group_2_1__0 )
-                    // InternalPerspectiveDsl.g:3654:4: rule__XSwitchExpression__Group_2_1__0
+                    // InternalPerspectiveDsl.g:3623:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:3623:4: rule__XSwitchExpression__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1__0();
@@ -13325,20 +13211,20 @@
 
 
     // $ANTLR start "rule__XCasePart__Alternatives_3"
-    // InternalPerspectiveDsl.g:3662:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
+    // InternalPerspectiveDsl.g:3631: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:3666:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
+            // InternalPerspectiveDsl.g:3635:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
             int alt32=2;
             int LA32_0 = input.LA(1);
 
-            if ( (LA32_0==101) ) {
+            if ( (LA32_0==100) ) {
                 alt32=1;
             }
-            else if ( (LA32_0==92) ) {
+            else if ( (LA32_0==91) ) {
                 alt32=2;
             }
             else {
@@ -13350,16 +13236,16 @@
             }
             switch (alt32) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3667:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:3636:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3667:2: ( ( rule__XCasePart__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:3668:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:3636:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:3637:3: ( rule__XCasePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3669:3: ( rule__XCasePart__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:3669:4: rule__XCasePart__Group_3_0__0
+                    // InternalPerspectiveDsl.g:3638:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:3638:4: rule__XCasePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_3_0__0();
@@ -13379,16 +13265,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3673:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalPerspectiveDsl.g:3642:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3673:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
-                    // InternalPerspectiveDsl.g:3674:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalPerspectiveDsl.g:3642:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalPerspectiveDsl.g:3643:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3675:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
-                    // InternalPerspectiveDsl.g:3675:4: rule__XCasePart__FallThroughAssignment_3_1
+                    // InternalPerspectiveDsl.g:3644:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalPerspectiveDsl.g:3644:4: rule__XCasePart__FallThroughAssignment_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__FallThroughAssignment_3_1();
@@ -13425,20 +13311,20 @@
 
 
     // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
-    // InternalPerspectiveDsl.g:3683:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+    // InternalPerspectiveDsl.g:3652:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
     public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3687:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:3656:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
             int alt33=2;
             int LA33_0 = input.LA(1);
 
-            if ( (LA33_0==44||LA33_0==124) ) {
+            if ( (LA33_0==44||LA33_0==123) ) {
                 alt33=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==90||(LA33_0>=94 && LA33_0<=95)||LA33_0==98||LA33_0==100||(LA33_0>=104 && LA33_0<=112)||LA33_0==114||LA33_0==125) ) {
+            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==89||(LA33_0>=93 && LA33_0<=94)||LA33_0==97||LA33_0==99||(LA33_0>=103 && LA33_0<=111)||LA33_0==113||LA33_0==124) ) {
                 alt33=2;
             }
             else {
@@ -13450,10 +13336,10 @@
             }
             switch (alt33) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3688:2: ( ruleXVariableDeclaration )
+                    // InternalPerspectiveDsl.g:3657:2: ( ruleXVariableDeclaration )
                     {
-                    // InternalPerspectiveDsl.g:3688:2: ( ruleXVariableDeclaration )
-                    // InternalPerspectiveDsl.g:3689:3: ruleXVariableDeclaration
+                    // InternalPerspectiveDsl.g:3657:2: ( ruleXVariableDeclaration )
+                    // InternalPerspectiveDsl.g:3658:3: ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
@@ -13473,10 +13359,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3694:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:3663:2: ( ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:3694:2: ( ruleXExpression )
-                    // InternalPerspectiveDsl.g:3695:3: ruleXExpression
+                    // InternalPerspectiveDsl.g:3663:2: ( ruleXExpression )
+                    // InternalPerspectiveDsl.g:3664:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
@@ -13513,17 +13399,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
-    // InternalPerspectiveDsl.g:3704:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+    // InternalPerspectiveDsl.g:3673: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:3708:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+            // InternalPerspectiveDsl.g:3677:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
             int alt34=2;
             int LA34_0 = input.LA(1);
 
-            if ( (LA34_0==124) ) {
+            if ( (LA34_0==123) ) {
                 alt34=1;
             }
             else if ( (LA34_0==44) ) {
@@ -13538,16 +13424,16 @@
             }
             switch (alt34) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3709:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalPerspectiveDsl.g:3678:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3709:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
-                    // InternalPerspectiveDsl.g:3710:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalPerspectiveDsl.g:3678:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalPerspectiveDsl.g:3679:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3711:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
-                    // InternalPerspectiveDsl.g:3711:4: rule__XVariableDeclaration__WriteableAssignment_1_0
+                    // InternalPerspectiveDsl.g:3680:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalPerspectiveDsl.g:3680:4: rule__XVariableDeclaration__WriteableAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__WriteableAssignment_1_0();
@@ -13567,10 +13453,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3715:2: ( 'val' )
+                    // InternalPerspectiveDsl.g:3684:2: ( 'val' )
                     {
-                    // InternalPerspectiveDsl.g:3715:2: ( 'val' )
-                    // InternalPerspectiveDsl.g:3716:3: 'val'
+                    // InternalPerspectiveDsl.g:3684:2: ( 'val' )
+                    // InternalPerspectiveDsl.g:3685:3: 'val'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
@@ -13603,20 +13489,20 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
-    // InternalPerspectiveDsl.g:3725:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+    // InternalPerspectiveDsl.g:3694: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:3729:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+            // InternalPerspectiveDsl.g:3698:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
             int alt35=2;
             int LA35_0 = input.LA(1);
 
             if ( (LA35_0==RULE_ID) ) {
                 int LA35_1 = input.LA(2);
 
-                if ( (synpred89_InternalPerspectiveDsl()) ) {
+                if ( (synpred88_InternalPerspectiveDsl()) ) {
                     alt35=1;
                 }
                 else if ( (true) ) {
@@ -13630,7 +13516,7 @@
                     throw nvae;
                 }
             }
-            else if ( (LA35_0==31||LA35_0==90) ) {
+            else if ( (LA35_0==31||LA35_0==89) ) {
                 alt35=1;
             }
             else {
@@ -13642,16 +13528,16 @@
             }
             switch (alt35) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3730:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3699:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3730:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:3731:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3699:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3700:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3732:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:3732:4: rule__XVariableDeclaration__Group_2_0__0
+                    // InternalPerspectiveDsl.g:3701:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3701:4: rule__XVariableDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_2_0__0();
@@ -13671,16 +13557,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3736:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:3705:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3736:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
-                    // InternalPerspectiveDsl.g:3737:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:3705:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalPerspectiveDsl.g:3706:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3738:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
-                    // InternalPerspectiveDsl.g:3738:4: rule__XVariableDeclaration__NameAssignment_2_1
+                    // InternalPerspectiveDsl.g:3707:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalPerspectiveDsl.g:3707:4: rule__XVariableDeclaration__NameAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__NameAssignment_2_1();
@@ -13717,27 +13603,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
-    // InternalPerspectiveDsl.g:3746:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3715: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:3750:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3719:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
             int alt36=2;
             alt36 = dfa36.predict(input);
             switch (alt36) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3751:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3720:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3751:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-                    // InternalPerspectiveDsl.g:3752:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalPerspectiveDsl.g:3720:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalPerspectiveDsl.g:3721:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3753:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-                    // InternalPerspectiveDsl.g:3753:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+                    // InternalPerspectiveDsl.g:3722:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalPerspectiveDsl.g:3722:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -13757,16 +13643,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3757:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3726:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3757:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3758:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3726:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3727:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3759:3: ( rule__XFeatureCall__Group_3_1_1__0 )
-                    // InternalPerspectiveDsl.g:3759:4: rule__XFeatureCall__Group_3_1_1__0
+                    // InternalPerspectiveDsl.g:3728:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalPerspectiveDsl.g:3728:4: rule__XFeatureCall__Group_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3_1_1__0();
@@ -13803,13 +13689,13 @@
 
 
     // $ANTLR start "rule__FeatureCallID__Alternatives"
-    // InternalPerspectiveDsl.g:3767:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+    // InternalPerspectiveDsl.g:3736:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
     public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3771:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+            // InternalPerspectiveDsl.g:3740:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
             int alt37=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
@@ -13847,10 +13733,10 @@
 
             switch (alt37) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3772:2: ( ruleValidID )
+                    // InternalPerspectiveDsl.g:3741:2: ( ruleValidID )
                     {
-                    // InternalPerspectiveDsl.g:3772:2: ( ruleValidID )
-                    // InternalPerspectiveDsl.g:3773:3: ruleValidID
+                    // InternalPerspectiveDsl.g:3741:2: ( ruleValidID )
+                    // InternalPerspectiveDsl.g:3742:3: ruleValidID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
@@ -13870,10 +13756,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3778:2: ( 'extends' )
+                    // InternalPerspectiveDsl.g:3747:2: ( 'extends' )
                     {
-                    // InternalPerspectiveDsl.g:3778:2: ( 'extends' )
-                    // InternalPerspectiveDsl.g:3779:3: 'extends'
+                    // InternalPerspectiveDsl.g:3747:2: ( 'extends' )
+                    // InternalPerspectiveDsl.g:3748:3: 'extends'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
@@ -13889,10 +13775,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3784:2: ( 'static' )
+                    // InternalPerspectiveDsl.g:3753:2: ( 'static' )
                     {
-                    // InternalPerspectiveDsl.g:3784:2: ( 'static' )
-                    // InternalPerspectiveDsl.g:3785:3: 'static'
+                    // InternalPerspectiveDsl.g:3753:2: ( 'static' )
+                    // InternalPerspectiveDsl.g:3754:3: 'static'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
@@ -13908,10 +13794,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3790:2: ( 'import' )
+                    // InternalPerspectiveDsl.g:3759:2: ( 'import' )
                     {
-                    // InternalPerspectiveDsl.g:3790:2: ( 'import' )
-                    // InternalPerspectiveDsl.g:3791:3: 'import'
+                    // InternalPerspectiveDsl.g:3759:2: ( 'import' )
+                    // InternalPerspectiveDsl.g:3760:3: 'import'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
@@ -13927,10 +13813,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3796:2: ( 'extension' )
+                    // InternalPerspectiveDsl.g:3765:2: ( 'extension' )
                     {
-                    // InternalPerspectiveDsl.g:3796:2: ( 'extension' )
-                    // InternalPerspectiveDsl.g:3797:3: 'extension'
+                    // InternalPerspectiveDsl.g:3765:2: ( 'extension' )
+                    // InternalPerspectiveDsl.g:3766:3: 'extension'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
@@ -13963,13 +13849,13 @@
 
 
     // $ANTLR start "rule__IdOrSuper__Alternatives"
-    // InternalPerspectiveDsl.g:3806:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+    // InternalPerspectiveDsl.g:3775:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
     public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3810:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+            // InternalPerspectiveDsl.g:3779:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
             int alt38=2;
             int LA38_0 = input.LA(1);
 
@@ -13988,10 +13874,10 @@
             }
             switch (alt38) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3811:2: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:3780:2: ( ruleFeatureCallID )
                     {
-                    // InternalPerspectiveDsl.g:3811:2: ( ruleFeatureCallID )
-                    // InternalPerspectiveDsl.g:3812:3: ruleFeatureCallID
+                    // InternalPerspectiveDsl.g:3780:2: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:3781:3: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
@@ -14011,10 +13897,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3817:2: ( 'super' )
+                    // InternalPerspectiveDsl.g:3786:2: ( 'super' )
                     {
-                    // InternalPerspectiveDsl.g:3817:2: ( 'super' )
-                    // InternalPerspectiveDsl.g:3818:3: 'super'
+                    // InternalPerspectiveDsl.g:3786:2: ( 'super' )
+                    // InternalPerspectiveDsl.g:3787:3: 'super'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
@@ -14047,27 +13933,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
-    // InternalPerspectiveDsl.g:3827:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3796: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:3831:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3800:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
             int alt39=2;
             alt39 = dfa39.predict(input);
             switch (alt39) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3832:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalPerspectiveDsl.g:3801:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3832:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-                    // InternalPerspectiveDsl.g:3833:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalPerspectiveDsl.g:3801:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalPerspectiveDsl.g:3802:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3834:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-                    // InternalPerspectiveDsl.g:3834:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+                    // InternalPerspectiveDsl.g:3803:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalPerspectiveDsl.g:3803:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -14087,16 +13973,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3838:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3807:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3838:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
-                    // InternalPerspectiveDsl.g:3839:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalPerspectiveDsl.g:3807:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalPerspectiveDsl.g:3808:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3840:3: ( rule__XConstructorCall__Group_4_1_1__0 )
-                    // InternalPerspectiveDsl.g:3840:4: rule__XConstructorCall__Group_4_1_1__0
+                    // InternalPerspectiveDsl.g:3809:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalPerspectiveDsl.g:3809:4: rule__XConstructorCall__Group_4_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4_1_1__0();
@@ -14133,20 +14019,20 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
-    // InternalPerspectiveDsl.g:3848:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+    // InternalPerspectiveDsl.g:3817: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:3852:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:3821:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
             int alt40=2;
             int LA40_0 = input.LA(1);
 
             if ( (LA40_0==50) ) {
                 alt40=1;
             }
-            else if ( (LA40_0==125) ) {
+            else if ( (LA40_0==124) ) {
                 alt40=2;
             }
             else {
@@ -14158,10 +14044,10 @@
             }
             switch (alt40) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3853:2: ( 'false' )
+                    // InternalPerspectiveDsl.g:3822:2: ( 'false' )
                     {
-                    // InternalPerspectiveDsl.g:3853:2: ( 'false' )
-                    // InternalPerspectiveDsl.g:3854:3: 'false'
+                    // InternalPerspectiveDsl.g:3822:2: ( 'false' )
+                    // InternalPerspectiveDsl.g:3823:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
@@ -14177,16 +14063,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3859:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalPerspectiveDsl.g:3828:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                     {
-                    // InternalPerspectiveDsl.g:3859:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
-                    // InternalPerspectiveDsl.g:3860:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalPerspectiveDsl.g:3828:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalPerspectiveDsl.g:3829:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3861:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
-                    // InternalPerspectiveDsl.g:3861:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
+                    // InternalPerspectiveDsl.g:3830:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalPerspectiveDsl.g:3830:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBooleanLiteral__IsTrueAssignment_1_1();
@@ -14223,20 +14109,20 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
-    // InternalPerspectiveDsl.g:3869:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3838: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:3873:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3842:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
             int alt41=2;
             int LA41_0 = input.LA(1);
 
-            if ( (LA41_0==115) ) {
+            if ( (LA41_0==114) ) {
                 alt41=1;
             }
-            else if ( (LA41_0==113) ) {
+            else if ( (LA41_0==112) ) {
                 alt41=2;
             }
             else {
@@ -14248,16 +14134,16 @@
             }
             switch (alt41) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3874:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:3843:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3874:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:3875:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:3843:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:3844:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3876:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:3876:4: rule__XTryCatchFinallyExpression__Group_3_0__0
+                    // InternalPerspectiveDsl.g:3845:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:3845:4: rule__XTryCatchFinallyExpression__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0__0();
@@ -14277,16 +14163,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3880:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:3849:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3880:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:3881:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:3849:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:3850:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3882:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:3882:4: rule__XTryCatchFinallyExpression__Group_3_1__0
+                    // InternalPerspectiveDsl.g:3851:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:3851:4: rule__XTryCatchFinallyExpression__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_1__0();
@@ -14323,13 +14209,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives"
-    // InternalPerspectiveDsl.g:3890:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3859: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:3894:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3863:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
             int alt42=2;
             int LA42_0 = input.LA(1);
 
@@ -14348,10 +14234,10 @@
             }
             switch (alt42) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3895:2: ( RULE_HEX )
+                    // InternalPerspectiveDsl.g:3864:2: ( RULE_HEX )
                     {
-                    // InternalPerspectiveDsl.g:3895:2: ( RULE_HEX )
-                    // InternalPerspectiveDsl.g:3896:3: RULE_HEX
+                    // InternalPerspectiveDsl.g:3864:2: ( RULE_HEX )
+                    // InternalPerspectiveDsl.g:3865:3: RULE_HEX
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
@@ -14367,16 +14253,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3901:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3870:2: ( ( rule__Number__Group_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3901:2: ( ( rule__Number__Group_1__0 ) )
-                    // InternalPerspectiveDsl.g:3902:3: ( rule__Number__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3870:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalPerspectiveDsl.g:3871:3: ( rule__Number__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getGroup_1()); 
                     }
-                    // InternalPerspectiveDsl.g:3903:3: ( rule__Number__Group_1__0 )
-                    // InternalPerspectiveDsl.g:3903:4: rule__Number__Group_1__0
+                    // InternalPerspectiveDsl.g:3872:3: ( rule__Number__Group_1__0 )
+                    // InternalPerspectiveDsl.g:3872:4: rule__Number__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1__0();
@@ -14413,13 +14299,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_0"
-    // InternalPerspectiveDsl.g:3911:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalPerspectiveDsl.g:3880: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:3915:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            // InternalPerspectiveDsl.g:3884:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
             int alt43=2;
             int LA43_0 = input.LA(1);
 
@@ -14438,10 +14324,10 @@
             }
             switch (alt43) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3916:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:3885:2: ( RULE_INT )
                     {
-                    // InternalPerspectiveDsl.g:3916:2: ( RULE_INT )
-                    // InternalPerspectiveDsl.g:3917:3: RULE_INT
+                    // InternalPerspectiveDsl.g:3885:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:3886:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
@@ -14457,10 +14343,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3922:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:3891:2: ( RULE_DECIMAL )
                     {
-                    // InternalPerspectiveDsl.g:3922:2: ( RULE_DECIMAL )
-                    // InternalPerspectiveDsl.g:3923:3: RULE_DECIMAL
+                    // InternalPerspectiveDsl.g:3891:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:3892:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
@@ -14493,13 +14379,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_1_1"
-    // InternalPerspectiveDsl.g:3932:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalPerspectiveDsl.g:3901: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:3936:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            // InternalPerspectiveDsl.g:3905:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
             int alt44=2;
             int LA44_0 = input.LA(1);
 
@@ -14518,10 +14404,10 @@
             }
             switch (alt44) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3937:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:3906:2: ( RULE_INT )
                     {
-                    // InternalPerspectiveDsl.g:3937:2: ( RULE_INT )
-                    // InternalPerspectiveDsl.g:3938:3: RULE_INT
+                    // InternalPerspectiveDsl.g:3906:2: ( RULE_INT )
+                    // InternalPerspectiveDsl.g:3907:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
@@ -14537,10 +14423,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3943:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:3912:2: ( RULE_DECIMAL )
                     {
-                    // InternalPerspectiveDsl.g:3943:2: ( RULE_DECIMAL )
-                    // InternalPerspectiveDsl.g:3944:3: RULE_DECIMAL
+                    // InternalPerspectiveDsl.g:3912:2: ( RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:3913:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
@@ -14573,20 +14459,20 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Alternatives"
-    // InternalPerspectiveDsl.g:3953:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+    // InternalPerspectiveDsl.g:3922:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
     public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3957:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+            // InternalPerspectiveDsl.g:3926:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
             int alt45=2;
             int LA45_0 = input.LA(1);
 
             if ( (LA45_0==RULE_ID) ) {
                 alt45=1;
             }
-            else if ( (LA45_0==31||LA45_0==90) ) {
+            else if ( (LA45_0==31||LA45_0==89) ) {
                 alt45=2;
             }
             else {
@@ -14598,16 +14484,16 @@
             }
             switch (alt45) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3958:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3927:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:3958:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
-                    // InternalPerspectiveDsl.g:3959:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3927:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalPerspectiveDsl.g:3928:3: ( rule__JvmTypeReference__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                     }
-                    // InternalPerspectiveDsl.g:3960:3: ( rule__JvmTypeReference__Group_0__0 )
-                    // InternalPerspectiveDsl.g:3960:4: rule__JvmTypeReference__Group_0__0
+                    // InternalPerspectiveDsl.g:3929:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalPerspectiveDsl.g:3929:4: rule__JvmTypeReference__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmTypeReference__Group_0__0();
@@ -14627,10 +14513,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3964:2: ( ruleXFunctionTypeRef )
+                    // InternalPerspectiveDsl.g:3933:2: ( ruleXFunctionTypeRef )
                     {
-                    // InternalPerspectiveDsl.g:3964:2: ( ruleXFunctionTypeRef )
-                    // InternalPerspectiveDsl.g:3965:3: ruleXFunctionTypeRef
+                    // InternalPerspectiveDsl.g:3933:2: ( ruleXFunctionTypeRef )
+                    // InternalPerspectiveDsl.g:3934:3: ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
@@ -14667,20 +14553,20 @@
 
 
     // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
-    // InternalPerspectiveDsl.g:3974:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+    // InternalPerspectiveDsl.g:3943:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
     public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:3978:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+            // InternalPerspectiveDsl.g:3947:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
             int alt46=2;
             int LA46_0 = input.LA(1);
 
-            if ( (LA46_0==RULE_ID||LA46_0==31||LA46_0==90) ) {
+            if ( (LA46_0==RULE_ID||LA46_0==31||LA46_0==89) ) {
                 alt46=1;
             }
-            else if ( (LA46_0==116) ) {
+            else if ( (LA46_0==115) ) {
                 alt46=2;
             }
             else {
@@ -14692,10 +14578,10 @@
             }
             switch (alt46) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3979:2: ( ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:3948:2: ( ruleJvmTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:3979:2: ( ruleJvmTypeReference )
-                    // InternalPerspectiveDsl.g:3980:3: ruleJvmTypeReference
+                    // InternalPerspectiveDsl.g:3948:2: ( ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:3949:3: ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
@@ -14715,10 +14601,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3985:2: ( ruleJvmWildcardTypeReference )
+                    // InternalPerspectiveDsl.g:3954:2: ( ruleJvmWildcardTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:3985:2: ( ruleJvmWildcardTypeReference )
-                    // InternalPerspectiveDsl.g:3986:3: ruleJvmWildcardTypeReference
+                    // InternalPerspectiveDsl.g:3954:2: ( ruleJvmWildcardTypeReference )
+                    // InternalPerspectiveDsl.g:3955:3: ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
@@ -14755,13 +14641,13 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
-    // InternalPerspectiveDsl.g:3995:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
+    // InternalPerspectiveDsl.g:3964: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:3999:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
+            // InternalPerspectiveDsl.g:3968:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
             int alt47=2;
             int LA47_0 = input.LA(1);
 
@@ -14780,16 +14666,16 @@
             }
             switch (alt47) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4000:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3969:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:4000:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
-                    // InternalPerspectiveDsl.g:4001:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3969:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalPerspectiveDsl.g:3970:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                     }
-                    // InternalPerspectiveDsl.g:4002:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
-                    // InternalPerspectiveDsl.g:4002:4: rule__JvmWildcardTypeReference__Group_2_0__0
+                    // InternalPerspectiveDsl.g:3971:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalPerspectiveDsl.g:3971:4: rule__JvmWildcardTypeReference__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_0__0();
@@ -14809,16 +14695,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4006:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:3975:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                     {
-                    // InternalPerspectiveDsl.g:4006:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
-                    // InternalPerspectiveDsl.g:4007:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:3975:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalPerspectiveDsl.g:3976:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                     }
-                    // InternalPerspectiveDsl.g:4008:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
-                    // InternalPerspectiveDsl.g:4008:4: rule__JvmWildcardTypeReference__Group_2_1__0
+                    // InternalPerspectiveDsl.g:3977:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalPerspectiveDsl.g:3977:4: rule__JvmWildcardTypeReference__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_1__0();
@@ -14855,13 +14741,13 @@
 
 
     // $ANTLR start "rule__SashOrientation__Alternatives"
-    // InternalPerspectiveDsl.g:4016:1: rule__SashOrientation__Alternatives : ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) );
+    // InternalPerspectiveDsl.g:3985:1: rule__SashOrientation__Alternatives : ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) );
     public final void rule__SashOrientation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4020:1: ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) )
+            // InternalPerspectiveDsl.g:3989:1: ( ( ( 'horizontal' ) ) | ( ( 'vertical' ) ) )
             int alt48=2;
             int LA48_0 = input.LA(1);
 
@@ -14880,16 +14766,16 @@
             }
             switch (alt48) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4021:2: ( ( 'horizontal' ) )
+                    // InternalPerspectiveDsl.g:3990:2: ( ( 'horizontal' ) )
                     {
-                    // InternalPerspectiveDsl.g:4021:2: ( ( 'horizontal' ) )
-                    // InternalPerspectiveDsl.g:4022:3: ( 'horizontal' )
+                    // InternalPerspectiveDsl.g:3990:2: ( ( 'horizontal' ) )
+                    // InternalPerspectiveDsl.g:3991:3: ( 'horizontal' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSashOrientationAccess().getHORIZONTALEnumLiteralDeclaration_0()); 
                     }
-                    // InternalPerspectiveDsl.g:4023:3: ( 'horizontal' )
-                    // InternalPerspectiveDsl.g:4023:4: 'horizontal'
+                    // InternalPerspectiveDsl.g:3992:3: ( 'horizontal' )
+                    // InternalPerspectiveDsl.g:3992:4: 'horizontal'
                     {
                     match(input,51,FOLLOW_2); if (state.failed) return ;
 
@@ -14905,16 +14791,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4027:2: ( ( 'vertical' ) )
+                    // InternalPerspectiveDsl.g:3996:2: ( ( 'vertical' ) )
                     {
-                    // InternalPerspectiveDsl.g:4027:2: ( ( 'vertical' ) )
-                    // InternalPerspectiveDsl.g:4028:3: ( 'vertical' )
+                    // InternalPerspectiveDsl.g:3996:2: ( ( 'vertical' ) )
+                    // InternalPerspectiveDsl.g:3997:3: ( 'vertical' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSashOrientationAccess().getVERTICALEnumLiteralDeclaration_1()); 
                     }
-                    // InternalPerspectiveDsl.g:4029:3: ( 'vertical' )
-                    // InternalPerspectiveDsl.g:4029:4: 'vertical'
+                    // InternalPerspectiveDsl.g:3998:3: ( 'vertical' )
+                    // InternalPerspectiveDsl.g:3998:4: 'vertical'
                     {
                     match(input,52,FOLLOW_2); if (state.failed) return ;
 
@@ -14947,14 +14833,14 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__0"
-    // InternalPerspectiveDsl.g:4037:1: rule__PerspectiveModel__Group__0 : rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1 ;
+    // InternalPerspectiveDsl.g:4006: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:4041:1: ( rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1 )
-            // InternalPerspectiveDsl.g:4042:2: rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1
+            // InternalPerspectiveDsl.g:4010:1: ( rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1 )
+            // InternalPerspectiveDsl.g:4011:2: rule__PerspectiveModel__Group__0__Impl rule__PerspectiveModel__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__PerspectiveModel__Group__0__Impl();
@@ -14985,22 +14871,22 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__0__Impl"
-    // InternalPerspectiveDsl.g:4049:1: rule__PerspectiveModel__Group__0__Impl : ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? ) ;
+    // InternalPerspectiveDsl.g:4018: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:4053:1: ( ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? ) )
-            // InternalPerspectiveDsl.g:4054:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
+            // InternalPerspectiveDsl.g:4022:1: ( ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? ) )
+            // InternalPerspectiveDsl.g:4023:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
             {
-            // InternalPerspectiveDsl.g:4054:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
-            // InternalPerspectiveDsl.g:4055:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
+            // InternalPerspectiveDsl.g:4023:1: ( ( rule__PerspectiveModel__ImportSectionAssignment_0 )? )
+            // InternalPerspectiveDsl.g:4024:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getImportSectionAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:4056:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
+            // InternalPerspectiveDsl.g:4025:2: ( rule__PerspectiveModel__ImportSectionAssignment_0 )?
             int alt49=2;
             int LA49_0 = input.LA(1);
 
@@ -15009,7 +14895,7 @@
             }
             switch (alt49) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4056:3: rule__PerspectiveModel__ImportSectionAssignment_0
+                    // InternalPerspectiveDsl.g:4025:3: rule__PerspectiveModel__ImportSectionAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveModel__ImportSectionAssignment_0();
@@ -15047,14 +14933,14 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__1"
-    // InternalPerspectiveDsl.g:4064:1: rule__PerspectiveModel__Group__1 : rule__PerspectiveModel__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:4033: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:4068:1: ( rule__PerspectiveModel__Group__1__Impl )
-            // InternalPerspectiveDsl.g:4069:2: rule__PerspectiveModel__Group__1__Impl
+            // InternalPerspectiveDsl.g:4037:1: ( rule__PerspectiveModel__Group__1__Impl )
+            // InternalPerspectiveDsl.g:4038:2: rule__PerspectiveModel__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveModel__Group__1__Impl();
@@ -15080,22 +14966,22 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__Group__1__Impl"
-    // InternalPerspectiveDsl.g:4075:1: rule__PerspectiveModel__Group__1__Impl : ( ( rule__PerspectiveModel__PackagesAssignment_1 )* ) ;
+    // InternalPerspectiveDsl.g:4044: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:4079:1: ( ( ( rule__PerspectiveModel__PackagesAssignment_1 )* ) )
-            // InternalPerspectiveDsl.g:4080:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
+            // InternalPerspectiveDsl.g:4048:1: ( ( ( rule__PerspectiveModel__PackagesAssignment_1 )* ) )
+            // InternalPerspectiveDsl.g:4049:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
             {
-            // InternalPerspectiveDsl.g:4080:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
-            // InternalPerspectiveDsl.g:4081:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
+            // InternalPerspectiveDsl.g:4049:1: ( ( rule__PerspectiveModel__PackagesAssignment_1 )* )
+            // InternalPerspectiveDsl.g:4050:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getPackagesAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:4082:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
+            // InternalPerspectiveDsl.g:4051:2: ( rule__PerspectiveModel__PackagesAssignment_1 )*
             loop50:
             do {
                 int alt50=2;
@@ -15108,7 +14994,7 @@
 
                 switch (alt50) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4082:3: rule__PerspectiveModel__PackagesAssignment_1
+            	    // InternalPerspectiveDsl.g:4051:3: rule__PerspectiveModel__PackagesAssignment_1
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__PerspectiveModel__PackagesAssignment_1();
@@ -15149,14 +15035,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__0"
-    // InternalPerspectiveDsl.g:4091:1: rule__PerspectivePackage__Group__0 : rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1 ;
+    // InternalPerspectiveDsl.g:4060: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:4095:1: ( rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1 )
-            // InternalPerspectiveDsl.g:4096:2: rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1
+            // InternalPerspectiveDsl.g:4064:1: ( rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1 )
+            // InternalPerspectiveDsl.g:4065:2: rule__PerspectivePackage__Group__0__Impl rule__PerspectivePackage__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__PerspectivePackage__Group__0__Impl();
@@ -15187,23 +15073,23 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__0__Impl"
-    // InternalPerspectiveDsl.g:4103:1: rule__PerspectivePackage__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:4072:1: rule__PerspectivePackage__Group__0__Impl : ( () ) ;
     public final void rule__PerspectivePackage__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4107:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:4108:1: ( () )
+            // InternalPerspectiveDsl.g:4076:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:4077:1: ( () )
             {
-            // InternalPerspectiveDsl.g:4108:1: ( () )
-            // InternalPerspectiveDsl.g:4109:2: ()
+            // InternalPerspectiveDsl.g:4077:1: ( () )
+            // InternalPerspectiveDsl.g:4078:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPerspectivePackageAction_0()); 
             }
-            // InternalPerspectiveDsl.g:4110:2: ()
-            // InternalPerspectiveDsl.g:4110:3: 
+            // InternalPerspectiveDsl.g:4079:2: ()
+            // InternalPerspectiveDsl.g:4079:3: 
             {
             }
 
@@ -15228,14 +15114,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__1"
-    // InternalPerspectiveDsl.g:4118:1: rule__PerspectivePackage__Group__1 : rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2 ;
+    // InternalPerspectiveDsl.g:4087: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:4122:1: ( rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2 )
-            // InternalPerspectiveDsl.g:4123:2: rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2
+            // InternalPerspectiveDsl.g:4091:1: ( rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2 )
+            // InternalPerspectiveDsl.g:4092:2: rule__PerspectivePackage__Group__1__Impl rule__PerspectivePackage__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePackage__Group__1__Impl();
@@ -15266,17 +15152,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__1__Impl"
-    // InternalPerspectiveDsl.g:4130:1: rule__PerspectivePackage__Group__1__Impl : ( 'package' ) ;
+    // InternalPerspectiveDsl.g:4099:1: rule__PerspectivePackage__Group__1__Impl : ( 'package' ) ;
     public final void rule__PerspectivePackage__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4134:1: ( ( 'package' ) )
-            // InternalPerspectiveDsl.g:4135:1: ( 'package' )
+            // InternalPerspectiveDsl.g:4103:1: ( ( 'package' ) )
+            // InternalPerspectiveDsl.g:4104:1: ( 'package' )
             {
-            // InternalPerspectiveDsl.g:4135:1: ( 'package' )
-            // InternalPerspectiveDsl.g:4136:2: 'package'
+            // InternalPerspectiveDsl.g:4104:1: ( 'package' )
+            // InternalPerspectiveDsl.g:4105:2: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPackageKeyword_1()); 
@@ -15307,14 +15193,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__2"
-    // InternalPerspectiveDsl.g:4145:1: rule__PerspectivePackage__Group__2 : rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3 ;
+    // InternalPerspectiveDsl.g:4114: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:4149:1: ( rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3 )
-            // InternalPerspectiveDsl.g:4150:2: rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3
+            // InternalPerspectiveDsl.g:4118:1: ( rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3 )
+            // InternalPerspectiveDsl.g:4119:2: rule__PerspectivePackage__Group__2__Impl rule__PerspectivePackage__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__PerspectivePackage__Group__2__Impl();
@@ -15345,23 +15231,23 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__2__Impl"
-    // InternalPerspectiveDsl.g:4157:1: rule__PerspectivePackage__Group__2__Impl : ( ( rule__PerspectivePackage__NameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:4126: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:4161:1: ( ( ( rule__PerspectivePackage__NameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:4162:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4130:1: ( ( ( rule__PerspectivePackage__NameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:4131:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:4162:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:4163:2: ( rule__PerspectivePackage__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4131:1: ( ( rule__PerspectivePackage__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4132:2: ( rule__PerspectivePackage__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:4164:2: ( rule__PerspectivePackage__NameAssignment_2 )
-            // InternalPerspectiveDsl.g:4164:3: rule__PerspectivePackage__NameAssignment_2
+            // InternalPerspectiveDsl.g:4133:2: ( rule__PerspectivePackage__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4133:3: rule__PerspectivePackage__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePackage__NameAssignment_2();
@@ -15396,14 +15282,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__3"
-    // InternalPerspectiveDsl.g:4172:1: rule__PerspectivePackage__Group__3 : rule__PerspectivePackage__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:4141: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:4176:1: ( rule__PerspectivePackage__Group__3__Impl )
-            // InternalPerspectiveDsl.g:4177:2: rule__PerspectivePackage__Group__3__Impl
+            // InternalPerspectiveDsl.g:4145:1: ( rule__PerspectivePackage__Group__3__Impl )
+            // InternalPerspectiveDsl.g:4146:2: rule__PerspectivePackage__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePackage__Group__3__Impl();
@@ -15429,22 +15315,22 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group__3__Impl"
-    // InternalPerspectiveDsl.g:4183:1: rule__PerspectivePackage__Group__3__Impl : ( ( rule__PerspectivePackage__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:4152: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:4187:1: ( ( ( rule__PerspectivePackage__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:4188:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4156:1: ( ( ( rule__PerspectivePackage__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:4157:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:4188:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:4189:2: ( rule__PerspectivePackage__Group_3__0 )?
+            // InternalPerspectiveDsl.g:4157:1: ( ( rule__PerspectivePackage__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4158:2: ( rule__PerspectivePackage__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:4190:2: ( rule__PerspectivePackage__Group_3__0 )?
+            // InternalPerspectiveDsl.g:4159:2: ( rule__PerspectivePackage__Group_3__0 )?
             int alt51=2;
             int LA51_0 = input.LA(1);
 
@@ -15453,7 +15339,7 @@
             }
             switch (alt51) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4190:3: rule__PerspectivePackage__Group_3__0
+                    // InternalPerspectiveDsl.g:4159:3: rule__PerspectivePackage__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePackage__Group_3__0();
@@ -15491,14 +15377,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__0"
-    // InternalPerspectiveDsl.g:4199:1: rule__PerspectivePackage__Group_3__0 : rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1 ;
+    // InternalPerspectiveDsl.g:4168: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:4203:1: ( rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1 )
-            // InternalPerspectiveDsl.g:4204:2: rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1
+            // InternalPerspectiveDsl.g:4172:1: ( rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1 )
+            // InternalPerspectiveDsl.g:4173:2: rule__PerspectivePackage__Group_3__0__Impl rule__PerspectivePackage__Group_3__1
             {
             pushFollow(FOLLOW_9);
             rule__PerspectivePackage__Group_3__0__Impl();
@@ -15529,17 +15415,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:4211:1: rule__PerspectivePackage__Group_3__0__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:4180:1: rule__PerspectivePackage__Group_3__0__Impl : ( '{' ) ;
     public final void rule__PerspectivePackage__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4215:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:4216:1: ( '{' )
+            // InternalPerspectiveDsl.g:4184:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:4185:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:4216:1: ( '{' )
-            // InternalPerspectiveDsl.g:4217:2: '{'
+            // InternalPerspectiveDsl.g:4185:1: ( '{' )
+            // InternalPerspectiveDsl.g:4186:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getLeftCurlyBracketKeyword_3_0()); 
@@ -15570,14 +15456,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__1"
-    // InternalPerspectiveDsl.g:4226:1: rule__PerspectivePackage__Group_3__1 : rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2 ;
+    // InternalPerspectiveDsl.g:4195: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:4230:1: ( rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2 )
-            // InternalPerspectiveDsl.g:4231:2: rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2
+            // InternalPerspectiveDsl.g:4199:1: ( rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2 )
+            // InternalPerspectiveDsl.g:4200:2: rule__PerspectivePackage__Group_3__1__Impl rule__PerspectivePackage__Group_3__2
             {
             pushFollow(FOLLOW_9);
             rule__PerspectivePackage__Group_3__1__Impl();
@@ -15608,22 +15494,22 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:4238:1: rule__PerspectivePackage__Group_3__1__Impl : ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* ) ;
+    // InternalPerspectiveDsl.g:4207: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:4242:1: ( ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* ) )
-            // InternalPerspectiveDsl.g:4243:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
+            // InternalPerspectiveDsl.g:4211:1: ( ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* ) )
+            // InternalPerspectiveDsl.g:4212:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
             {
-            // InternalPerspectiveDsl.g:4243:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
-            // InternalPerspectiveDsl.g:4244:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
+            // InternalPerspectiveDsl.g:4212:1: ( ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )* )
+            // InternalPerspectiveDsl.g:4213:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPerspectivesAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:4245:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
+            // InternalPerspectiveDsl.g:4214:2: ( rule__PerspectivePackage__PerspectivesAssignment_3_1 )*
             loop52:
             do {
                 int alt52=2;
@@ -15636,7 +15522,7 @@
 
                 switch (alt52) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4245:3: rule__PerspectivePackage__PerspectivesAssignment_3_1
+            	    // InternalPerspectiveDsl.g:4214:3: rule__PerspectivePackage__PerspectivesAssignment_3_1
             	    {
             	    pushFollow(FOLLOW_10);
             	    rule__PerspectivePackage__PerspectivesAssignment_3_1();
@@ -15677,14 +15563,14 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__2"
-    // InternalPerspectiveDsl.g:4253:1: rule__PerspectivePackage__Group_3__2 : rule__PerspectivePackage__Group_3__2__Impl ;
+    // InternalPerspectiveDsl.g:4222: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:4257:1: ( rule__PerspectivePackage__Group_3__2__Impl )
-            // InternalPerspectiveDsl.g:4258:2: rule__PerspectivePackage__Group_3__2__Impl
+            // InternalPerspectiveDsl.g:4226:1: ( rule__PerspectivePackage__Group_3__2__Impl )
+            // InternalPerspectiveDsl.g:4227:2: rule__PerspectivePackage__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePackage__Group_3__2__Impl();
@@ -15710,17 +15596,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:4264:1: rule__PerspectivePackage__Group_3__2__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:4233:1: rule__PerspectivePackage__Group_3__2__Impl : ( '}' ) ;
     public final void rule__PerspectivePackage__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4268:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:4269:1: ( '}' )
+            // InternalPerspectiveDsl.g:4237:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:4238:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:4269:1: ( '}' )
-            // InternalPerspectiveDsl.g:4270:2: '}'
+            // InternalPerspectiveDsl.g:4238:1: ( '}' )
+            // InternalPerspectiveDsl.g:4239:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getRightCurlyBracketKeyword_3_2()); 
@@ -15751,14 +15637,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__0"
-    // InternalPerspectiveDsl.g:4280:1: rule__Perspective__Group__0 : rule__Perspective__Group__0__Impl rule__Perspective__Group__1 ;
+    // InternalPerspectiveDsl.g:4249: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:4284:1: ( rule__Perspective__Group__0__Impl rule__Perspective__Group__1 )
-            // InternalPerspectiveDsl.g:4285:2: rule__Perspective__Group__0__Impl rule__Perspective__Group__1
+            // InternalPerspectiveDsl.g:4253:1: ( rule__Perspective__Group__0__Impl rule__Perspective__Group__1 )
+            // InternalPerspectiveDsl.g:4254:2: rule__Perspective__Group__0__Impl rule__Perspective__Group__1
             {
             pushFollow(FOLLOW_11);
             rule__Perspective__Group__0__Impl();
@@ -15789,23 +15675,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group__0__Impl"
-    // InternalPerspectiveDsl.g:4292:1: rule__Perspective__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:4261:1: rule__Perspective__Group__0__Impl : ( () ) ;
     public final void rule__Perspective__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4296:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:4297:1: ( () )
+            // InternalPerspectiveDsl.g:4265:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:4266:1: ( () )
             {
-            // InternalPerspectiveDsl.g:4297:1: ( () )
-            // InternalPerspectiveDsl.g:4298:2: ()
+            // InternalPerspectiveDsl.g:4266:1: ( () )
+            // InternalPerspectiveDsl.g:4267:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getPerspectiveAction_0()); 
             }
-            // InternalPerspectiveDsl.g:4299:2: ()
-            // InternalPerspectiveDsl.g:4299:3: 
+            // InternalPerspectiveDsl.g:4268:2: ()
+            // InternalPerspectiveDsl.g:4268:3: 
             {
             }
 
@@ -15830,14 +15716,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__1"
-    // InternalPerspectiveDsl.g:4307:1: rule__Perspective__Group__1 : rule__Perspective__Group__1__Impl rule__Perspective__Group__2 ;
+    // InternalPerspectiveDsl.g:4276: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:4311:1: ( rule__Perspective__Group__1__Impl rule__Perspective__Group__2 )
-            // InternalPerspectiveDsl.g:4312:2: rule__Perspective__Group__1__Impl rule__Perspective__Group__2
+            // InternalPerspectiveDsl.g:4280:1: ( rule__Perspective__Group__1__Impl rule__Perspective__Group__2 )
+            // InternalPerspectiveDsl.g:4281:2: rule__Perspective__Group__1__Impl rule__Perspective__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group__1__Impl();
@@ -15868,17 +15754,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group__1__Impl"
-    // InternalPerspectiveDsl.g:4319:1: rule__Perspective__Group__1__Impl : ( 'perspective' ) ;
+    // InternalPerspectiveDsl.g:4288:1: rule__Perspective__Group__1__Impl : ( 'perspective' ) ;
     public final void rule__Perspective__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4323:1: ( ( 'perspective' ) )
-            // InternalPerspectiveDsl.g:4324:1: ( 'perspective' )
+            // InternalPerspectiveDsl.g:4292:1: ( ( 'perspective' ) )
+            // InternalPerspectiveDsl.g:4293:1: ( 'perspective' )
             {
-            // InternalPerspectiveDsl.g:4324:1: ( 'perspective' )
-            // InternalPerspectiveDsl.g:4325:2: 'perspective'
+            // InternalPerspectiveDsl.g:4293:1: ( 'perspective' )
+            // InternalPerspectiveDsl.g:4294:2: 'perspective'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getPerspectiveKeyword_1()); 
@@ -15909,14 +15795,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__2"
-    // InternalPerspectiveDsl.g:4334:1: rule__Perspective__Group__2 : rule__Perspective__Group__2__Impl rule__Perspective__Group__3 ;
+    // InternalPerspectiveDsl.g:4303: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:4338:1: ( rule__Perspective__Group__2__Impl rule__Perspective__Group__3 )
-            // InternalPerspectiveDsl.g:4339:2: rule__Perspective__Group__2__Impl rule__Perspective__Group__3
+            // InternalPerspectiveDsl.g:4307:1: ( rule__Perspective__Group__2__Impl rule__Perspective__Group__3 )
+            // InternalPerspectiveDsl.g:4308:2: rule__Perspective__Group__2__Impl rule__Perspective__Group__3
             {
             pushFollow(FOLLOW_12);
             rule__Perspective__Group__2__Impl();
@@ -15947,23 +15833,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group__2__Impl"
-    // InternalPerspectiveDsl.g:4346:1: rule__Perspective__Group__2__Impl : ( ( rule__Perspective__NameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:4315: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:4350:1: ( ( ( rule__Perspective__NameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:4351:1: ( ( rule__Perspective__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4319:1: ( ( ( rule__Perspective__NameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:4320:1: ( ( rule__Perspective__NameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:4351:1: ( ( rule__Perspective__NameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:4352:2: ( rule__Perspective__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4320:1: ( ( rule__Perspective__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4321:2: ( rule__Perspective__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:4353:2: ( rule__Perspective__NameAssignment_2 )
-            // InternalPerspectiveDsl.g:4353:3: rule__Perspective__NameAssignment_2
+            // InternalPerspectiveDsl.g:4322:2: ( rule__Perspective__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:4322:3: rule__Perspective__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__NameAssignment_2();
@@ -15998,14 +15884,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__3"
-    // InternalPerspectiveDsl.g:4361:1: rule__Perspective__Group__3 : rule__Perspective__Group__3__Impl rule__Perspective__Group__4 ;
+    // InternalPerspectiveDsl.g:4330: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:4365:1: ( rule__Perspective__Group__3__Impl rule__Perspective__Group__4 )
-            // InternalPerspectiveDsl.g:4366:2: rule__Perspective__Group__3__Impl rule__Perspective__Group__4
+            // InternalPerspectiveDsl.g:4334:1: ( rule__Perspective__Group__3__Impl rule__Perspective__Group__4 )
+            // InternalPerspectiveDsl.g:4335:2: rule__Perspective__Group__3__Impl rule__Perspective__Group__4
             {
             pushFollow(FOLLOW_12);
             rule__Perspective__Group__3__Impl();
@@ -16036,31 +15922,31 @@
 
 
     // $ANTLR start "rule__Perspective__Group__3__Impl"
-    // InternalPerspectiveDsl.g:4373:1: rule__Perspective__Group__3__Impl : ( ( rule__Perspective__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:4342: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:4377:1: ( ( ( rule__Perspective__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:4378:1: ( ( rule__Perspective__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4346:1: ( ( ( rule__Perspective__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:4347:1: ( ( rule__Perspective__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:4378:1: ( ( rule__Perspective__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:4379:2: ( rule__Perspective__Group_3__0 )?
+            // InternalPerspectiveDsl.g:4347:1: ( ( rule__Perspective__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:4348:2: ( rule__Perspective__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:4380:2: ( rule__Perspective__Group_3__0 )?
+            // InternalPerspectiveDsl.g:4349:2: ( rule__Perspective__Group_3__0 )?
             int alt53=2;
             int LA53_0 = input.LA(1);
 
-            if ( (LA53_0==118) ) {
+            if ( (LA53_0==117) ) {
                 alt53=1;
             }
             switch (alt53) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4380:3: rule__Perspective__Group_3__0
+                    // InternalPerspectiveDsl.g:4349:3: rule__Perspective__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_3__0();
@@ -16098,14 +15984,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__4"
-    // InternalPerspectiveDsl.g:4388:1: rule__Perspective__Group__4 : rule__Perspective__Group__4__Impl rule__Perspective__Group__5 ;
+    // InternalPerspectiveDsl.g:4357: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:4392:1: ( rule__Perspective__Group__4__Impl rule__Perspective__Group__5 )
-            // InternalPerspectiveDsl.g:4393:2: rule__Perspective__Group__4__Impl rule__Perspective__Group__5
+            // InternalPerspectiveDsl.g:4361:1: ( rule__Perspective__Group__4__Impl rule__Perspective__Group__5 )
+            // InternalPerspectiveDsl.g:4362:2: rule__Perspective__Group__4__Impl rule__Perspective__Group__5
             {
             pushFollow(FOLLOW_12);
             rule__Perspective__Group__4__Impl();
@@ -16136,22 +16022,22 @@
 
 
     // $ANTLR start "rule__Perspective__Group__4__Impl"
-    // InternalPerspectiveDsl.g:4400:1: rule__Perspective__Group__4__Impl : ( ( rule__Perspective__Group_4__0 )? ) ;
+    // InternalPerspectiveDsl.g:4369: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:4404:1: ( ( ( rule__Perspective__Group_4__0 )? ) )
-            // InternalPerspectiveDsl.g:4405:1: ( ( rule__Perspective__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:4373:1: ( ( ( rule__Perspective__Group_4__0 )? ) )
+            // InternalPerspectiveDsl.g:4374:1: ( ( rule__Perspective__Group_4__0 )? )
             {
-            // InternalPerspectiveDsl.g:4405:1: ( ( rule__Perspective__Group_4__0 )? )
-            // InternalPerspectiveDsl.g:4406:2: ( rule__Perspective__Group_4__0 )?
+            // InternalPerspectiveDsl.g:4374:1: ( ( rule__Perspective__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:4375:2: ( rule__Perspective__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getGroup_4()); 
             }
-            // InternalPerspectiveDsl.g:4407:2: ( rule__Perspective__Group_4__0 )?
+            // InternalPerspectiveDsl.g:4376:2: ( rule__Perspective__Group_4__0 )?
             int alt54=2;
             int LA54_0 = input.LA(1);
 
@@ -16160,7 +16046,7 @@
             }
             switch (alt54) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4407:3: rule__Perspective__Group_4__0
+                    // InternalPerspectiveDsl.g:4376:3: rule__Perspective__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_4__0();
@@ -16198,14 +16084,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__5"
-    // InternalPerspectiveDsl.g:4415:1: rule__Perspective__Group__5 : rule__Perspective__Group__5__Impl rule__Perspective__Group__6 ;
+    // InternalPerspectiveDsl.g:4384: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:4419:1: ( rule__Perspective__Group__5__Impl rule__Perspective__Group__6 )
-            // InternalPerspectiveDsl.g:4420:2: rule__Perspective__Group__5__Impl rule__Perspective__Group__6
+            // InternalPerspectiveDsl.g:4388:1: ( rule__Perspective__Group__5__Impl rule__Perspective__Group__6 )
+            // InternalPerspectiveDsl.g:4389:2: rule__Perspective__Group__5__Impl rule__Perspective__Group__6
             {
             pushFollow(FOLLOW_8);
             rule__Perspective__Group__5__Impl();
@@ -16236,23 +16122,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group__5__Impl"
-    // InternalPerspectiveDsl.g:4427:1: rule__Perspective__Group__5__Impl : ( ( rule__Perspective__UnorderedGroup_5 ) ) ;
+    // InternalPerspectiveDsl.g:4396: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:4431:1: ( ( ( rule__Perspective__UnorderedGroup_5 ) ) )
-            // InternalPerspectiveDsl.g:4432:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
+            // InternalPerspectiveDsl.g:4400:1: ( ( ( rule__Perspective__UnorderedGroup_5 ) ) )
+            // InternalPerspectiveDsl.g:4401:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
             {
-            // InternalPerspectiveDsl.g:4432:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
-            // InternalPerspectiveDsl.g:4433:2: ( rule__Perspective__UnorderedGroup_5 )
+            // InternalPerspectiveDsl.g:4401:1: ( ( rule__Perspective__UnorderedGroup_5 ) )
+            // InternalPerspectiveDsl.g:4402:2: ( rule__Perspective__UnorderedGroup_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5()); 
             }
-            // InternalPerspectiveDsl.g:4434:2: ( rule__Perspective__UnorderedGroup_5 )
-            // InternalPerspectiveDsl.g:4434:3: rule__Perspective__UnorderedGroup_5
+            // InternalPerspectiveDsl.g:4403:2: ( rule__Perspective__UnorderedGroup_5 )
+            // InternalPerspectiveDsl.g:4403:3: rule__Perspective__UnorderedGroup_5
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__UnorderedGroup_5();
@@ -16287,14 +16173,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__6"
-    // InternalPerspectiveDsl.g:4442:1: rule__Perspective__Group__6 : rule__Perspective__Group__6__Impl rule__Perspective__Group__7 ;
+    // InternalPerspectiveDsl.g:4411: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:4446:1: ( rule__Perspective__Group__6__Impl rule__Perspective__Group__7 )
-            // InternalPerspectiveDsl.g:4447:2: rule__Perspective__Group__6__Impl rule__Perspective__Group__7
+            // InternalPerspectiveDsl.g:4415:1: ( rule__Perspective__Group__6__Impl rule__Perspective__Group__7 )
+            // InternalPerspectiveDsl.g:4416:2: rule__Perspective__Group__6__Impl rule__Perspective__Group__7
             {
             pushFollow(FOLLOW_13);
             rule__Perspective__Group__6__Impl();
@@ -16325,17 +16211,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group__6__Impl"
-    // InternalPerspectiveDsl.g:4454:1: rule__Perspective__Group__6__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:4423:1: rule__Perspective__Group__6__Impl : ( '{' ) ;
     public final void rule__Perspective__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4458:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:4459:1: ( '{' )
+            // InternalPerspectiveDsl.g:4427:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:4428:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:4459:1: ( '{' )
-            // InternalPerspectiveDsl.g:4460:2: '{'
+            // InternalPerspectiveDsl.g:4428:1: ( '{' )
+            // InternalPerspectiveDsl.g:4429:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getLeftCurlyBracketKeyword_6()); 
@@ -16366,14 +16252,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__7"
-    // InternalPerspectiveDsl.g:4469:1: rule__Perspective__Group__7 : rule__Perspective__Group__7__Impl rule__Perspective__Group__8 ;
+    // InternalPerspectiveDsl.g:4438: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:4473:1: ( rule__Perspective__Group__7__Impl rule__Perspective__Group__8 )
-            // InternalPerspectiveDsl.g:4474:2: rule__Perspective__Group__7__Impl rule__Perspective__Group__8
+            // InternalPerspectiveDsl.g:4442:1: ( rule__Perspective__Group__7__Impl rule__Perspective__Group__8 )
+            // InternalPerspectiveDsl.g:4443:2: rule__Perspective__Group__7__Impl rule__Perspective__Group__8
             {
             pushFollow(FOLLOW_13);
             rule__Perspective__Group__7__Impl();
@@ -16404,22 +16290,22 @@
 
 
     // $ANTLR start "rule__Perspective__Group__7__Impl"
-    // InternalPerspectiveDsl.g:4481:1: rule__Perspective__Group__7__Impl : ( ( rule__Perspective__ElementsAssignment_7 )* ) ;
+    // InternalPerspectiveDsl.g:4450: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:4485:1: ( ( ( rule__Perspective__ElementsAssignment_7 )* ) )
-            // InternalPerspectiveDsl.g:4486:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
+            // InternalPerspectiveDsl.g:4454:1: ( ( ( rule__Perspective__ElementsAssignment_7 )* ) )
+            // InternalPerspectiveDsl.g:4455:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
             {
-            // InternalPerspectiveDsl.g:4486:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
-            // InternalPerspectiveDsl.g:4487:2: ( rule__Perspective__ElementsAssignment_7 )*
+            // InternalPerspectiveDsl.g:4455:1: ( ( rule__Perspective__ElementsAssignment_7 )* )
+            // InternalPerspectiveDsl.g:4456:2: ( rule__Perspective__ElementsAssignment_7 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getElementsAssignment_7()); 
             }
-            // InternalPerspectiveDsl.g:4488:2: ( rule__Perspective__ElementsAssignment_7 )*
+            // InternalPerspectiveDsl.g:4457:2: ( rule__Perspective__ElementsAssignment_7 )*
             loop55:
             do {
                 int alt55=2;
@@ -16432,7 +16318,7 @@
 
                 switch (alt55) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4488:3: rule__Perspective__ElementsAssignment_7
+            	    // InternalPerspectiveDsl.g:4457:3: rule__Perspective__ElementsAssignment_7
             	    {
             	    pushFollow(FOLLOW_14);
             	    rule__Perspective__ElementsAssignment_7();
@@ -16473,14 +16359,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group__8"
-    // InternalPerspectiveDsl.g:4496:1: rule__Perspective__Group__8 : rule__Perspective__Group__8__Impl ;
+    // InternalPerspectiveDsl.g:4465:1: rule__Perspective__Group__8 : rule__Perspective__Group__8__Impl ;
     public final void rule__Perspective__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4500:1: ( rule__Perspective__Group__8__Impl )
-            // InternalPerspectiveDsl.g:4501:2: rule__Perspective__Group__8__Impl
+            // InternalPerspectiveDsl.g:4469:1: ( rule__Perspective__Group__8__Impl )
+            // InternalPerspectiveDsl.g:4470:2: rule__Perspective__Group__8__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group__8__Impl();
@@ -16506,17 +16392,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group__8__Impl"
-    // InternalPerspectiveDsl.g:4507:1: rule__Perspective__Group__8__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:4476:1: rule__Perspective__Group__8__Impl : ( '}' ) ;
     public final void rule__Perspective__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4511:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:4512:1: ( '}' )
+            // InternalPerspectiveDsl.g:4480:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:4481:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:4512:1: ( '}' )
-            // InternalPerspectiveDsl.g:4513:2: '}'
+            // InternalPerspectiveDsl.g:4481:1: ( '}' )
+            // InternalPerspectiveDsl.g:4482:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getRightCurlyBracketKeyword_8()); 
@@ -16547,14 +16433,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__0"
-    // InternalPerspectiveDsl.g:4523:1: rule__Perspective__Group_3__0 : rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1 ;
+    // InternalPerspectiveDsl.g:4492: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:4527:1: ( rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1 )
-            // InternalPerspectiveDsl.g:4528:2: rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1
+            // InternalPerspectiveDsl.g:4496:1: ( rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1 )
+            // InternalPerspectiveDsl.g:4497:2: rule__Perspective__Group_3__0__Impl rule__Perspective__Group_3__1
             {
             pushFollow(FOLLOW_15);
             rule__Perspective__Group_3__0__Impl();
@@ -16585,23 +16471,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:4535:1: rule__Perspective__Group_3__0__Impl : ( ( rule__Perspective__DescriptionAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:4504: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:4539:1: ( ( ( rule__Perspective__DescriptionAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:4540:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:4508:1: ( ( ( rule__Perspective__DescriptionAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:4509:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:4540:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:4541:2: ( rule__Perspective__DescriptionAssignment_3_0 )
+            // InternalPerspectiveDsl.g:4509:1: ( ( rule__Perspective__DescriptionAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:4510:2: ( rule__Perspective__DescriptionAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:4542:2: ( rule__Perspective__DescriptionAssignment_3_0 )
-            // InternalPerspectiveDsl.g:4542:3: rule__Perspective__DescriptionAssignment_3_0
+            // InternalPerspectiveDsl.g:4511:2: ( rule__Perspective__DescriptionAssignment_3_0 )
+            // InternalPerspectiveDsl.g:4511:3: rule__Perspective__DescriptionAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__DescriptionAssignment_3_0();
@@ -16636,14 +16522,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__1"
-    // InternalPerspectiveDsl.g:4550:1: rule__Perspective__Group_3__1 : rule__Perspective__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:4519: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:4554:1: ( rule__Perspective__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:4555:2: rule__Perspective__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:4523:1: ( rule__Perspective__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:4524:2: rule__Perspective__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_3__1__Impl();
@@ -16669,23 +16555,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:4561:1: rule__Perspective__Group_3__1__Impl : ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:4530: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:4565:1: ( ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) ) )
-            // InternalPerspectiveDsl.g:4566:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:4534:1: ( ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) ) )
+            // InternalPerspectiveDsl.g:4535:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:4566:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
-            // InternalPerspectiveDsl.g:4567:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
+            // InternalPerspectiveDsl.g:4535:1: ( ( rule__Perspective__DescriptionValueAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:4536:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionValueAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:4568:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
-            // InternalPerspectiveDsl.g:4568:3: rule__Perspective__DescriptionValueAssignment_3_1
+            // InternalPerspectiveDsl.g:4537:2: ( rule__Perspective__DescriptionValueAssignment_3_1 )
+            // InternalPerspectiveDsl.g:4537:3: rule__Perspective__DescriptionValueAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__DescriptionValueAssignment_3_1();
@@ -16720,14 +16606,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__0"
-    // InternalPerspectiveDsl.g:4577:1: rule__Perspective__Group_4__0 : rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1 ;
+    // InternalPerspectiveDsl.g:4546: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:4581:1: ( rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1 )
-            // InternalPerspectiveDsl.g:4582:2: rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1
+            // InternalPerspectiveDsl.g:4550:1: ( rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1 )
+            // InternalPerspectiveDsl.g:4551:2: rule__Perspective__Group_4__0__Impl rule__Perspective__Group_4__1
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group_4__0__Impl();
@@ -16758,17 +16644,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__0__Impl"
-    // InternalPerspectiveDsl.g:4589:1: rule__Perspective__Group_4__0__Impl : ( 'process' ) ;
+    // InternalPerspectiveDsl.g:4558: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:4593:1: ( ( 'process' ) )
-            // InternalPerspectiveDsl.g:4594:1: ( 'process' )
+            // InternalPerspectiveDsl.g:4562:1: ( ( 'process' ) )
+            // InternalPerspectiveDsl.g:4563:1: ( 'process' )
             {
-            // InternalPerspectiveDsl.g:4594:1: ( 'process' )
-            // InternalPerspectiveDsl.g:4595:2: 'process'
+            // InternalPerspectiveDsl.g:4563:1: ( 'process' )
+            // InternalPerspectiveDsl.g:4564:2: 'process'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessKeyword_4_0()); 
@@ -16799,14 +16685,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__1"
-    // InternalPerspectiveDsl.g:4604:1: rule__Perspective__Group_4__1 : rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2 ;
+    // InternalPerspectiveDsl.g:4573: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:4608:1: ( rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2 )
-            // InternalPerspectiveDsl.g:4609:2: rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2
+            // InternalPerspectiveDsl.g:4577:1: ( rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2 )
+            // InternalPerspectiveDsl.g:4578:2: rule__Perspective__Group_4__1__Impl rule__Perspective__Group_4__2
             {
             pushFollow(FOLLOW_16);
             rule__Perspective__Group_4__1__Impl();
@@ -16837,23 +16723,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__1__Impl"
-    // InternalPerspectiveDsl.g:4616:1: rule__Perspective__Group_4__1__Impl : ( ( rule__Perspective__ProcessAssignment_4_1 ) ) ;
+    // InternalPerspectiveDsl.g:4585: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:4620:1: ( ( ( rule__Perspective__ProcessAssignment_4_1 ) ) )
-            // InternalPerspectiveDsl.g:4621:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
+            // InternalPerspectiveDsl.g:4589:1: ( ( ( rule__Perspective__ProcessAssignment_4_1 ) ) )
+            // InternalPerspectiveDsl.g:4590:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
             {
-            // InternalPerspectiveDsl.g:4621:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
-            // InternalPerspectiveDsl.g:4622:2: ( rule__Perspective__ProcessAssignment_4_1 )
+            // InternalPerspectiveDsl.g:4590:1: ( ( rule__Perspective__ProcessAssignment_4_1 ) )
+            // InternalPerspectiveDsl.g:4591:2: ( rule__Perspective__ProcessAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessAssignment_4_1()); 
             }
-            // InternalPerspectiveDsl.g:4623:2: ( rule__Perspective__ProcessAssignment_4_1 )
-            // InternalPerspectiveDsl.g:4623:3: rule__Perspective__ProcessAssignment_4_1
+            // InternalPerspectiveDsl.g:4592:2: ( rule__Perspective__ProcessAssignment_4_1 )
+            // InternalPerspectiveDsl.g:4592:3: rule__Perspective__ProcessAssignment_4_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__ProcessAssignment_4_1();
@@ -16888,14 +16774,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__2"
-    // InternalPerspectiveDsl.g:4631:1: rule__Perspective__Group_4__2 : rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3 ;
+    // InternalPerspectiveDsl.g:4600: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:4635:1: ( rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3 )
-            // InternalPerspectiveDsl.g:4636:2: rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3
+            // InternalPerspectiveDsl.g:4604:1: ( rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3 )
+            // InternalPerspectiveDsl.g:4605:2: rule__Perspective__Group_4__2__Impl rule__Perspective__Group_4__3
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group_4__2__Impl();
@@ -16926,17 +16812,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__2__Impl"
-    // InternalPerspectiveDsl.g:4643:1: rule__Perspective__Group_4__2__Impl : ( 'usertask' ) ;
+    // InternalPerspectiveDsl.g:4612: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:4647:1: ( ( 'usertask' ) )
-            // InternalPerspectiveDsl.g:4648:1: ( 'usertask' )
+            // InternalPerspectiveDsl.g:4616:1: ( ( 'usertask' ) )
+            // InternalPerspectiveDsl.g:4617:1: ( 'usertask' )
             {
-            // InternalPerspectiveDsl.g:4648:1: ( 'usertask' )
-            // InternalPerspectiveDsl.g:4649:2: 'usertask'
+            // InternalPerspectiveDsl.g:4617:1: ( 'usertask' )
+            // InternalPerspectiveDsl.g:4618:2: 'usertask'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUsertaskKeyword_4_2()); 
@@ -16967,14 +16853,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__3"
-    // InternalPerspectiveDsl.g:4658:1: rule__Perspective__Group_4__3 : rule__Perspective__Group_4__3__Impl ;
+    // InternalPerspectiveDsl.g:4627: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:4662:1: ( rule__Perspective__Group_4__3__Impl )
-            // InternalPerspectiveDsl.g:4663:2: rule__Perspective__Group_4__3__Impl
+            // InternalPerspectiveDsl.g:4631:1: ( rule__Perspective__Group_4__3__Impl )
+            // InternalPerspectiveDsl.g:4632:2: rule__Perspective__Group_4__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_4__3__Impl();
@@ -17000,23 +16886,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_4__3__Impl"
-    // InternalPerspectiveDsl.g:4669:1: rule__Perspective__Group_4__3__Impl : ( ( rule__Perspective__UserTaskAssignment_4_3 ) ) ;
+    // InternalPerspectiveDsl.g:4638: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:4673:1: ( ( ( rule__Perspective__UserTaskAssignment_4_3 ) ) )
-            // InternalPerspectiveDsl.g:4674:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
+            // InternalPerspectiveDsl.g:4642:1: ( ( ( rule__Perspective__UserTaskAssignment_4_3 ) ) )
+            // InternalPerspectiveDsl.g:4643:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
             {
-            // InternalPerspectiveDsl.g:4674:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
-            // InternalPerspectiveDsl.g:4675:2: ( rule__Perspective__UserTaskAssignment_4_3 )
+            // InternalPerspectiveDsl.g:4643:1: ( ( rule__Perspective__UserTaskAssignment_4_3 ) )
+            // InternalPerspectiveDsl.g:4644:2: ( rule__Perspective__UserTaskAssignment_4_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUserTaskAssignment_4_3()); 
             }
-            // InternalPerspectiveDsl.g:4676:2: ( rule__Perspective__UserTaskAssignment_4_3 )
-            // InternalPerspectiveDsl.g:4676:3: rule__Perspective__UserTaskAssignment_4_3
+            // InternalPerspectiveDsl.g:4645:2: ( rule__Perspective__UserTaskAssignment_4_3 )
+            // InternalPerspectiveDsl.g:4645:3: rule__Perspective__UserTaskAssignment_4_3
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__UserTaskAssignment_4_3();
@@ -17051,14 +16937,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__0"
-    // InternalPerspectiveDsl.g:4685:1: rule__Perspective__Group_5_0__0 : rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1 ;
+    // InternalPerspectiveDsl.g:4654: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:4689:1: ( rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1 )
-            // InternalPerspectiveDsl.g:4690:2: rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1
+            // InternalPerspectiveDsl.g:4658:1: ( rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1 )
+            // InternalPerspectiveDsl.g:4659:2: rule__Perspective__Group_5_0__0__Impl rule__Perspective__Group_5_0__1
             {
             pushFollow(FOLLOW_15);
             rule__Perspective__Group_5_0__0__Impl();
@@ -17089,17 +16975,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__0__Impl"
-    // InternalPerspectiveDsl.g:4697:1: rule__Perspective__Group_5_0__0__Impl : ( 'iconURI' ) ;
+    // InternalPerspectiveDsl.g:4666:1: rule__Perspective__Group_5_0__0__Impl : ( 'iconURI' ) ;
     public final void rule__Perspective__Group_5_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4701:1: ( ( 'iconURI' ) )
-            // InternalPerspectiveDsl.g:4702:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:4670:1: ( ( 'iconURI' ) )
+            // InternalPerspectiveDsl.g:4671:1: ( 'iconURI' )
             {
-            // InternalPerspectiveDsl.g:4702:1: ( 'iconURI' )
-            // InternalPerspectiveDsl.g:4703:2: 'iconURI'
+            // InternalPerspectiveDsl.g:4671:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:4672:2: 'iconURI'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getIconURIKeyword_5_0_0()); 
@@ -17130,14 +17016,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__1"
-    // InternalPerspectiveDsl.g:4712:1: rule__Perspective__Group_5_0__1 : rule__Perspective__Group_5_0__1__Impl ;
+    // InternalPerspectiveDsl.g:4681: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:4716:1: ( rule__Perspective__Group_5_0__1__Impl )
-            // InternalPerspectiveDsl.g:4717:2: rule__Perspective__Group_5_0__1__Impl
+            // InternalPerspectiveDsl.g:4685:1: ( rule__Perspective__Group_5_0__1__Impl )
+            // InternalPerspectiveDsl.g:4686:2: rule__Perspective__Group_5_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_5_0__1__Impl();
@@ -17163,23 +17049,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__1__Impl"
-    // InternalPerspectiveDsl.g:4723:1: rule__Perspective__Group_5_0__1__Impl : ( ( rule__Perspective__IconURIAssignment_5_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:4692: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:4727:1: ( ( ( rule__Perspective__IconURIAssignment_5_0_1 ) ) )
-            // InternalPerspectiveDsl.g:4728:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
+            // InternalPerspectiveDsl.g:4696:1: ( ( ( rule__Perspective__IconURIAssignment_5_0_1 ) ) )
+            // InternalPerspectiveDsl.g:4697:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:4728:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
-            // InternalPerspectiveDsl.g:4729:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
+            // InternalPerspectiveDsl.g:4697:1: ( ( rule__Perspective__IconURIAssignment_5_0_1 ) )
+            // InternalPerspectiveDsl.g:4698:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getIconURIAssignment_5_0_1()); 
             }
-            // InternalPerspectiveDsl.g:4730:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
-            // InternalPerspectiveDsl.g:4730:3: rule__Perspective__IconURIAssignment_5_0_1
+            // InternalPerspectiveDsl.g:4699:2: ( rule__Perspective__IconURIAssignment_5_0_1 )
+            // InternalPerspectiveDsl.g:4699:3: rule__Perspective__IconURIAssignment_5_0_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__IconURIAssignment_5_0_1();
@@ -17214,14 +17100,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__0"
-    // InternalPerspectiveDsl.g:4739:1: rule__Perspective__Group_5_1__0 : rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1 ;
+    // InternalPerspectiveDsl.g:4708: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:4743:1: ( rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1 )
-            // InternalPerspectiveDsl.g:4744:2: rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1
+            // InternalPerspectiveDsl.g:4712:1: ( rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1 )
+            // InternalPerspectiveDsl.g:4713:2: rule__Perspective__Group_5_1__0__Impl rule__Perspective__Group_5_1__1
             {
             pushFollow(FOLLOW_15);
             rule__Perspective__Group_5_1__0__Impl();
@@ -17252,17 +17138,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__0__Impl"
-    // InternalPerspectiveDsl.g:4751:1: rule__Perspective__Group_5_1__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:4720: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:4755:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:4756:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:4724:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:4725:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:4756:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:4757:2: 'accessibility'
+            // InternalPerspectiveDsl.g:4725:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:4726:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getAccessibilityKeyword_5_1_0()); 
@@ -17293,14 +17179,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__1"
-    // InternalPerspectiveDsl.g:4766:1: rule__Perspective__Group_5_1__1 : rule__Perspective__Group_5_1__1__Impl ;
+    // InternalPerspectiveDsl.g:4735: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:4770:1: ( rule__Perspective__Group_5_1__1__Impl )
-            // InternalPerspectiveDsl.g:4771:2: rule__Perspective__Group_5_1__1__Impl
+            // InternalPerspectiveDsl.g:4739:1: ( rule__Perspective__Group_5_1__1__Impl )
+            // InternalPerspectiveDsl.g:4740:2: rule__Perspective__Group_5_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_5_1__1__Impl();
@@ -17326,23 +17212,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_1__1__Impl"
-    // InternalPerspectiveDsl.g:4777:1: rule__Perspective__Group_5_1__1__Impl : ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:4746: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:4781:1: ( ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) ) )
-            // InternalPerspectiveDsl.g:4782:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
+            // InternalPerspectiveDsl.g:4750:1: ( ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) ) )
+            // InternalPerspectiveDsl.g:4751:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:4782:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
-            // InternalPerspectiveDsl.g:4783:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
+            // InternalPerspectiveDsl.g:4751:1: ( ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 ) )
+            // InternalPerspectiveDsl.g:4752:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getAccessibilityPhraseAssignment_5_1_1()); 
             }
-            // InternalPerspectiveDsl.g:4784:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
-            // InternalPerspectiveDsl.g:4784:3: rule__Perspective__AccessibilityPhraseAssignment_5_1_1
+            // InternalPerspectiveDsl.g:4753:2: ( rule__Perspective__AccessibilityPhraseAssignment_5_1_1 )
+            // InternalPerspectiveDsl.g:4753:3: rule__Perspective__AccessibilityPhraseAssignment_5_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__AccessibilityPhraseAssignment_5_1_1();
@@ -17377,14 +17263,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__0"
-    // InternalPerspectiveDsl.g:4793:1: rule__Perspective__Group_5_2__0 : rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1 ;
+    // InternalPerspectiveDsl.g:4762: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:4797:1: ( rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1 )
-            // InternalPerspectiveDsl.g:4798:2: rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1
+            // InternalPerspectiveDsl.g:4766:1: ( rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1 )
+            // InternalPerspectiveDsl.g:4767:2: rule__Perspective__Group_5_2__0__Impl rule__Perspective__Group_5_2__1
             {
             pushFollow(FOLLOW_7);
             rule__Perspective__Group_5_2__0__Impl();
@@ -17415,17 +17301,17 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__0__Impl"
-    // InternalPerspectiveDsl.g:4805:1: rule__Perspective__Group_5_2__0__Impl : ( 'toolbar' ) ;
+    // InternalPerspectiveDsl.g:4774: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:4809:1: ( ( 'toolbar' ) )
-            // InternalPerspectiveDsl.g:4810:1: ( 'toolbar' )
+            // InternalPerspectiveDsl.g:4778:1: ( ( 'toolbar' ) )
+            // InternalPerspectiveDsl.g:4779:1: ( 'toolbar' )
             {
-            // InternalPerspectiveDsl.g:4810:1: ( 'toolbar' )
-            // InternalPerspectiveDsl.g:4811:2: 'toolbar'
+            // InternalPerspectiveDsl.g:4779:1: ( 'toolbar' )
+            // InternalPerspectiveDsl.g:4780:2: 'toolbar'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarKeyword_5_2_0()); 
@@ -17456,14 +17342,14 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__1"
-    // InternalPerspectiveDsl.g:4820:1: rule__Perspective__Group_5_2__1 : rule__Perspective__Group_5_2__1__Impl ;
+    // InternalPerspectiveDsl.g:4789: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:4824:1: ( rule__Perspective__Group_5_2__1__Impl )
-            // InternalPerspectiveDsl.g:4825:2: rule__Perspective__Group_5_2__1__Impl
+            // InternalPerspectiveDsl.g:4793:1: ( rule__Perspective__Group_5_2__1__Impl )
+            // InternalPerspectiveDsl.g:4794:2: rule__Perspective__Group_5_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__Group_5_2__1__Impl();
@@ -17489,23 +17375,23 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_2__1__Impl"
-    // InternalPerspectiveDsl.g:4831:1: rule__Perspective__Group_5_2__1__Impl : ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:4800: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:4835:1: ( ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) ) )
-            // InternalPerspectiveDsl.g:4836:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
+            // InternalPerspectiveDsl.g:4804:1: ( ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) ) )
+            // InternalPerspectiveDsl.g:4805:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:4836:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
-            // InternalPerspectiveDsl.g:4837:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
+            // InternalPerspectiveDsl.g:4805:1: ( ( rule__Perspective__ToolbarAssignment_5_2_1 ) )
+            // InternalPerspectiveDsl.g:4806:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarAssignment_5_2_1()); 
             }
-            // InternalPerspectiveDsl.g:4838:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
-            // InternalPerspectiveDsl.g:4838:3: rule__Perspective__ToolbarAssignment_5_2_1
+            // InternalPerspectiveDsl.g:4807:2: ( rule__Perspective__ToolbarAssignment_5_2_1 )
+            // InternalPerspectiveDsl.g:4807:3: rule__Perspective__ToolbarAssignment_5_2_1
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__ToolbarAssignment_5_2_1();
@@ -17540,14 +17426,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__0"
-    // InternalPerspectiveDsl.g:4847:1: rule__PerspectiveSashContainer__Group__0 : rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1 ;
+    // InternalPerspectiveDsl.g:4816: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:4851:1: ( rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1 )
-            // InternalPerspectiveDsl.g:4852:2: rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1
+            // InternalPerspectiveDsl.g:4820:1: ( rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1 )
+            // InternalPerspectiveDsl.g:4821:2: rule__PerspectiveSashContainer__Group__0__Impl rule__PerspectiveSashContainer__Group__1
             {
             pushFollow(FOLLOW_17);
             rule__PerspectiveSashContainer__Group__0__Impl();
@@ -17578,23 +17464,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__0__Impl"
-    // InternalPerspectiveDsl.g:4859:1: rule__PerspectiveSashContainer__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:4828:1: rule__PerspectiveSashContainer__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSashContainer__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4863:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:4864:1: ( () )
+            // InternalPerspectiveDsl.g:4832:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:4833:1: ( () )
             {
-            // InternalPerspectiveDsl.g:4864:1: ( () )
-            // InternalPerspectiveDsl.g:4865:2: ()
+            // InternalPerspectiveDsl.g:4833:1: ( () )
+            // InternalPerspectiveDsl.g:4834:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getPerspectiveSashContainerAction_0()); 
             }
-            // InternalPerspectiveDsl.g:4866:2: ()
-            // InternalPerspectiveDsl.g:4866:3: 
+            // InternalPerspectiveDsl.g:4835:2: ()
+            // InternalPerspectiveDsl.g:4835:3: 
             {
             }
 
@@ -17619,14 +17505,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__1"
-    // InternalPerspectiveDsl.g:4874:1: rule__PerspectiveSashContainer__Group__1 : rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2 ;
+    // InternalPerspectiveDsl.g:4843: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:4878:1: ( rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2 )
-            // InternalPerspectiveDsl.g:4879:2: rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2
+            // InternalPerspectiveDsl.g:4847:1: ( rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2 )
+            // InternalPerspectiveDsl.g:4848:2: rule__PerspectiveSashContainer__Group__1__Impl rule__PerspectiveSashContainer__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSashContainer__Group__1__Impl();
@@ -17657,17 +17543,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__1__Impl"
-    // InternalPerspectiveDsl.g:4886:1: rule__PerspectiveSashContainer__Group__1__Impl : ( 'sashContainer' ) ;
+    // InternalPerspectiveDsl.g:4855:1: rule__PerspectiveSashContainer__Group__1__Impl : ( 'sashContainer' ) ;
     public final void rule__PerspectiveSashContainer__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4890:1: ( ( 'sashContainer' ) )
-            // InternalPerspectiveDsl.g:4891:1: ( 'sashContainer' )
+            // InternalPerspectiveDsl.g:4859:1: ( ( 'sashContainer' ) )
+            // InternalPerspectiveDsl.g:4860:1: ( 'sashContainer' )
             {
-            // InternalPerspectiveDsl.g:4891:1: ( 'sashContainer' )
-            // InternalPerspectiveDsl.g:4892:2: 'sashContainer'
+            // InternalPerspectiveDsl.g:4860:1: ( 'sashContainer' )
+            // InternalPerspectiveDsl.g:4861:2: 'sashContainer'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSashContainerKeyword_1()); 
@@ -17698,14 +17584,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__2"
-    // InternalPerspectiveDsl.g:4901:1: rule__PerspectiveSashContainer__Group__2 : rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3 ;
+    // InternalPerspectiveDsl.g:4870: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:4905:1: ( rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3 )
-            // InternalPerspectiveDsl.g:4906:2: rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3
+            // InternalPerspectiveDsl.g:4874:1: ( rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3 )
+            // InternalPerspectiveDsl.g:4875:2: rule__PerspectiveSashContainer__Group__2__Impl rule__PerspectiveSashContainer__Group__3
             {
             pushFollow(FOLLOW_18);
             rule__PerspectiveSashContainer__Group__2__Impl();
@@ -17736,23 +17622,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__2__Impl"
-    // InternalPerspectiveDsl.g:4913:1: rule__PerspectiveSashContainer__Group__2__Impl : ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:4882: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:4917:1: ( ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:4918:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4886:1: ( ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:4887:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:4918:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
-            // InternalPerspectiveDsl.g:4919:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:4887:1: ( ( rule__PerspectiveSashContainer__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:4888:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementIdAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:4920:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
-            // InternalPerspectiveDsl.g:4920:3: rule__PerspectiveSashContainer__ElementIdAssignment_2
+            // InternalPerspectiveDsl.g:4889:2: ( rule__PerspectiveSashContainer__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:4889:3: rule__PerspectiveSashContainer__ElementIdAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__ElementIdAssignment_2();
@@ -17787,14 +17673,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__3"
-    // InternalPerspectiveDsl.g:4928:1: rule__PerspectiveSashContainer__Group__3 : rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4 ;
+    // InternalPerspectiveDsl.g:4897: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:4932:1: ( rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4 )
-            // InternalPerspectiveDsl.g:4933:2: rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4
+            // InternalPerspectiveDsl.g:4901:1: ( rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4 )
+            // InternalPerspectiveDsl.g:4902:2: rule__PerspectiveSashContainer__Group__3__Impl rule__PerspectiveSashContainer__Group__4
             {
             pushFollow(FOLLOW_8);
             rule__PerspectiveSashContainer__Group__3__Impl();
@@ -17825,23 +17711,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__3__Impl"
-    // InternalPerspectiveDsl.g:4940:1: rule__PerspectiveSashContainer__Group__3__Impl : ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) ) ;
+    // InternalPerspectiveDsl.g:4909: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:4944:1: ( ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) ) )
-            // InternalPerspectiveDsl.g:4945:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:4913:1: ( ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) ) )
+            // InternalPerspectiveDsl.g:4914:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
             {
-            // InternalPerspectiveDsl.g:4945:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
-            // InternalPerspectiveDsl.g:4946:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:4914:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:4915:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:4947:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
-            // InternalPerspectiveDsl.g:4947:3: rule__PerspectiveSashContainer__UnorderedGroup_3
+            // InternalPerspectiveDsl.g:4916:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:4916:3: rule__PerspectiveSashContainer__UnorderedGroup_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__UnorderedGroup_3();
@@ -17876,14 +17762,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__4"
-    // InternalPerspectiveDsl.g:4955:1: rule__PerspectiveSashContainer__Group__4 : rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5 ;
+    // InternalPerspectiveDsl.g:4924: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:4959:1: ( rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5 )
-            // InternalPerspectiveDsl.g:4960:2: rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5
+            // InternalPerspectiveDsl.g:4928:1: ( rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5 )
+            // InternalPerspectiveDsl.g:4929:2: rule__PerspectiveSashContainer__Group__4__Impl rule__PerspectiveSashContainer__Group__5
             {
             pushFollow(FOLLOW_13);
             rule__PerspectiveSashContainer__Group__4__Impl();
@@ -17914,17 +17800,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__4__Impl"
-    // InternalPerspectiveDsl.g:4967:1: rule__PerspectiveSashContainer__Group__4__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:4936:1: rule__PerspectiveSashContainer__Group__4__Impl : ( '{' ) ;
     public final void rule__PerspectiveSashContainer__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4971:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:4972:1: ( '{' )
+            // InternalPerspectiveDsl.g:4940:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:4941:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:4972:1: ( '{' )
-            // InternalPerspectiveDsl.g:4973:2: '{'
+            // InternalPerspectiveDsl.g:4941:1: ( '{' )
+            // InternalPerspectiveDsl.g:4942:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getLeftCurlyBracketKeyword_4()); 
@@ -17955,14 +17841,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__5"
-    // InternalPerspectiveDsl.g:4982:1: rule__PerspectiveSashContainer__Group__5 : rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6 ;
+    // InternalPerspectiveDsl.g:4951: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:4986:1: ( rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6 )
-            // InternalPerspectiveDsl.g:4987:2: rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6
+            // InternalPerspectiveDsl.g:4955:1: ( rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6 )
+            // InternalPerspectiveDsl.g:4956:2: rule__PerspectiveSashContainer__Group__5__Impl rule__PerspectiveSashContainer__Group__6
             {
             pushFollow(FOLLOW_13);
             rule__PerspectiveSashContainer__Group__5__Impl();
@@ -17993,22 +17879,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__5__Impl"
-    // InternalPerspectiveDsl.g:4994:1: rule__PerspectiveSashContainer__Group__5__Impl : ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* ) ;
+    // InternalPerspectiveDsl.g:4963: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:4998:1: ( ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* ) )
-            // InternalPerspectiveDsl.g:4999:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:4967:1: ( ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* ) )
+            // InternalPerspectiveDsl.g:4968:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
             {
-            // InternalPerspectiveDsl.g:4999:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
-            // InternalPerspectiveDsl.g:5000:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
+            // InternalPerspectiveDsl.g:4968:1: ( ( rule__PerspectiveSashContainer__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:4969:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementsAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:5001:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
+            // InternalPerspectiveDsl.g:4970:2: ( rule__PerspectiveSashContainer__ElementsAssignment_5 )*
             loop56:
             do {
                 int alt56=2;
@@ -18021,7 +17907,7 @@
 
                 switch (alt56) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:5001:3: rule__PerspectiveSashContainer__ElementsAssignment_5
+            	    // InternalPerspectiveDsl.g:4970:3: rule__PerspectiveSashContainer__ElementsAssignment_5
             	    {
             	    pushFollow(FOLLOW_14);
             	    rule__PerspectiveSashContainer__ElementsAssignment_5();
@@ -18062,14 +17948,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__6"
-    // InternalPerspectiveDsl.g:5009:1: rule__PerspectiveSashContainer__Group__6 : rule__PerspectiveSashContainer__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:4978: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:5013:1: ( rule__PerspectiveSashContainer__Group__6__Impl )
-            // InternalPerspectiveDsl.g:5014:2: rule__PerspectiveSashContainer__Group__6__Impl
+            // InternalPerspectiveDsl.g:4982:1: ( rule__PerspectiveSashContainer__Group__6__Impl )
+            // InternalPerspectiveDsl.g:4983:2: rule__PerspectiveSashContainer__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group__6__Impl();
@@ -18095,17 +17981,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group__6__Impl"
-    // InternalPerspectiveDsl.g:5020:1: rule__PerspectiveSashContainer__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:4989:1: rule__PerspectiveSashContainer__Group__6__Impl : ( '}' ) ;
     public final void rule__PerspectiveSashContainer__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5024:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:5025:1: ( '}' )
+            // InternalPerspectiveDsl.g:4993:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:4994:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:5025:1: ( '}' )
-            // InternalPerspectiveDsl.g:5026:2: '}'
+            // InternalPerspectiveDsl.g:4994:1: ( '}' )
+            // InternalPerspectiveDsl.g:4995:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getRightCurlyBracketKeyword_6()); 
@@ -18136,14 +18022,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__0"
-    // InternalPerspectiveDsl.g:5036:1: rule__PerspectiveSashContainer__Group_3_0__0 : rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:5005: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:5040:1: ( rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:5041:2: rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1
+            // InternalPerspectiveDsl.g:5009:1: ( rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:5010:2: rule__PerspectiveSashContainer__Group_3_0__0__Impl rule__PerspectiveSashContainer__Group_3_0__1
             {
             pushFollow(FOLLOW_19);
             rule__PerspectiveSashContainer__Group_3_0__0__Impl();
@@ -18174,17 +18060,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:5048:1: rule__PerspectiveSashContainer__Group_3_0__0__Impl : ( 'orientation' ) ;
+    // InternalPerspectiveDsl.g:5017: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:5052:1: ( ( 'orientation' ) )
-            // InternalPerspectiveDsl.g:5053:1: ( 'orientation' )
+            // InternalPerspectiveDsl.g:5021:1: ( ( 'orientation' ) )
+            // InternalPerspectiveDsl.g:5022:1: ( 'orientation' )
             {
-            // InternalPerspectiveDsl.g:5053:1: ( 'orientation' )
-            // InternalPerspectiveDsl.g:5054:2: 'orientation'
+            // InternalPerspectiveDsl.g:5022:1: ( 'orientation' )
+            // InternalPerspectiveDsl.g:5023:2: 'orientation'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationKeyword_3_0_0()); 
@@ -18215,14 +18101,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__1"
-    // InternalPerspectiveDsl.g:5063:1: rule__PerspectiveSashContainer__Group_3_0__1 : rule__PerspectiveSashContainer__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:5032: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:5067:1: ( rule__PerspectiveSashContainer__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:5068:2: rule__PerspectiveSashContainer__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:5036:1: ( rule__PerspectiveSashContainer__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:5037:2: rule__PerspectiveSashContainer__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_0__1__Impl();
@@ -18248,23 +18134,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:5074:1: rule__PerspectiveSashContainer__Group_3_0__1__Impl : ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:5043: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:5078:1: ( ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:5079:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5047:1: ( ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:5048:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:5079:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:5080:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5048:1: ( ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5049:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:5081:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:5081:3: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1
+            // InternalPerspectiveDsl.g:5050:2: ( rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5050:3: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__OrientationAssignment_3_0_1();
@@ -18299,14 +18185,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__0"
-    // InternalPerspectiveDsl.g:5090:1: rule__PerspectiveSashContainer__Group_3_1__0 : rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:5059: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:5094:1: ( rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:5095:2: rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1
+            // InternalPerspectiveDsl.g:5063:1: ( rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:5064:2: rule__PerspectiveSashContainer__Group_3_1__0__Impl rule__PerspectiveSashContainer__Group_3_1__1
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSashContainer__Group_3_1__0__Impl();
@@ -18337,17 +18223,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:5102:1: rule__PerspectiveSashContainer__Group_3_1__0__Impl : ( 'selectedElement' ) ;
+    // InternalPerspectiveDsl.g:5071: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:5106:1: ( ( 'selectedElement' ) )
-            // InternalPerspectiveDsl.g:5107:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5075:1: ( ( 'selectedElement' ) )
+            // InternalPerspectiveDsl.g:5076:1: ( 'selectedElement' )
             {
-            // InternalPerspectiveDsl.g:5107:1: ( 'selectedElement' )
-            // InternalPerspectiveDsl.g:5108:2: 'selectedElement'
+            // InternalPerspectiveDsl.g:5076:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5077:2: 'selectedElement'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementKeyword_3_1_0()); 
@@ -18378,14 +18264,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__1"
-    // InternalPerspectiveDsl.g:5117:1: rule__PerspectiveSashContainer__Group_3_1__1 : rule__PerspectiveSashContainer__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:5086: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:5121:1: ( rule__PerspectiveSashContainer__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:5122:2: rule__PerspectiveSashContainer__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:5090:1: ( rule__PerspectiveSashContainer__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:5091:2: rule__PerspectiveSashContainer__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_1__1__Impl();
@@ -18411,23 +18297,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:5128:1: rule__PerspectiveSashContainer__Group_3_1__1__Impl : ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:5097: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:5132:1: ( ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:5133:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5101:1: ( ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:5102:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:5133:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:5134:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5102:1: ( ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5103:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:5135:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:5135:3: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1
+            // InternalPerspectiveDsl.g:5104:2: ( rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5104:3: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1();
@@ -18462,14 +18348,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__0"
-    // InternalPerspectiveDsl.g:5144:1: rule__PerspectiveSashContainer__Group_3_2__0 : rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:5113: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:5148:1: ( rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:5149:2: rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1
+            // InternalPerspectiveDsl.g:5117:1: ( rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:5118:2: rule__PerspectiveSashContainer__Group_3_2__0__Impl rule__PerspectiveSashContainer__Group_3_2__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveSashContainer__Group_3_2__0__Impl();
@@ -18500,17 +18386,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:5156:1: rule__PerspectiveSashContainer__Group_3_2__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5125: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:5160:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5161:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5129:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5130:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5161:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5162:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5130:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5131:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSpaceVolumeKeyword_3_2_0()); 
@@ -18541,14 +18427,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__1"
-    // InternalPerspectiveDsl.g:5171:1: rule__PerspectiveSashContainer__Group_3_2__1 : rule__PerspectiveSashContainer__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:5140: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:5175:1: ( rule__PerspectiveSashContainer__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:5176:2: rule__PerspectiveSashContainer__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:5144:1: ( rule__PerspectiveSashContainer__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:5145:2: rule__PerspectiveSashContainer__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_2__1__Impl();
@@ -18574,23 +18460,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:5182:1: rule__PerspectiveSashContainer__Group_3_2__1__Impl : ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:5151: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:5186:1: ( ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:5187:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5155:1: ( ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:5156:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:5187:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:5188:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5156:1: ( ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5157:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getContainerDataAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:5189:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:5189:3: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1
+            // InternalPerspectiveDsl.g:5158:2: ( rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5158:3: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1();
@@ -18625,14 +18511,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__0"
-    // InternalPerspectiveDsl.g:5198:1: rule__PerspectiveSashContainer__Group_3_3__0 : rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1 ;
+    // InternalPerspectiveDsl.g:5167: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:5202:1: ( rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1 )
-            // InternalPerspectiveDsl.g:5203:2: rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1
+            // InternalPerspectiveDsl.g:5171:1: ( rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1 )
+            // InternalPerspectiveDsl.g:5172:2: rule__PerspectiveSashContainer__Group_3_3__0__Impl rule__PerspectiveSashContainer__Group_3_3__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveSashContainer__Group_3_3__0__Impl();
@@ -18663,17 +18549,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__0__Impl"
-    // InternalPerspectiveDsl.g:5210:1: rule__PerspectiveSashContainer__Group_3_3__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:5179: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:5214:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:5215:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5183:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:5184:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:5215:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:5216:2: 'accessibility'
+            // InternalPerspectiveDsl.g:5184:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5185:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityKeyword_3_3_0()); 
@@ -18704,14 +18590,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__1"
-    // InternalPerspectiveDsl.g:5225:1: rule__PerspectiveSashContainer__Group_3_3__1 : rule__PerspectiveSashContainer__Group_3_3__1__Impl ;
+    // InternalPerspectiveDsl.g:5194: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:5229:1: ( rule__PerspectiveSashContainer__Group_3_3__1__Impl )
-            // InternalPerspectiveDsl.g:5230:2: rule__PerspectiveSashContainer__Group_3_3__1__Impl
+            // InternalPerspectiveDsl.g:5198:1: ( rule__PerspectiveSashContainer__Group_3_3__1__Impl )
+            // InternalPerspectiveDsl.g:5199:2: rule__PerspectiveSashContainer__Group_3_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__Group_3_3__1__Impl();
@@ -18737,23 +18623,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__Group_3_3__1__Impl"
-    // InternalPerspectiveDsl.g:5236:1: rule__PerspectiveSashContainer__Group_3_3__1__Impl : ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:5205: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:5240:1: ( ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) ) )
-            // InternalPerspectiveDsl.g:5241:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5209:1: ( ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) ) )
+            // InternalPerspectiveDsl.g:5210:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:5241:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
-            // InternalPerspectiveDsl.g:5242:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5210:1: ( ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5211:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityPhraseAssignment_3_3_1()); 
             }
-            // InternalPerspectiveDsl.g:5243:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
-            // InternalPerspectiveDsl.g:5243:3: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1
+            // InternalPerspectiveDsl.g:5212:2: ( rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5212:3: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1();
@@ -18788,14 +18674,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__0"
-    // InternalPerspectiveDsl.g:5252:1: rule__PerspectivePartStack__Group__0 : rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1 ;
+    // InternalPerspectiveDsl.g:5221: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:5256:1: ( rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1 )
-            // InternalPerspectiveDsl.g:5257:2: rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1
+            // InternalPerspectiveDsl.g:5225:1: ( rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1 )
+            // InternalPerspectiveDsl.g:5226:2: rule__PerspectivePartStack__Group__0__Impl rule__PerspectivePartStack__Group__1
             {
             pushFollow(FOLLOW_20);
             rule__PerspectivePartStack__Group__0__Impl();
@@ -18826,23 +18712,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__0__Impl"
-    // InternalPerspectiveDsl.g:5264:1: rule__PerspectivePartStack__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5233:1: rule__PerspectivePartStack__Group__0__Impl : ( () ) ;
     public final void rule__PerspectivePartStack__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5268:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:5269:1: ( () )
+            // InternalPerspectiveDsl.g:5237:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5238:1: ( () )
             {
-            // InternalPerspectiveDsl.g:5269:1: ( () )
-            // InternalPerspectiveDsl.g:5270:2: ()
+            // InternalPerspectiveDsl.g:5238:1: ( () )
+            // InternalPerspectiveDsl.g:5239:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getPerspectivePartStackAction_0()); 
             }
-            // InternalPerspectiveDsl.g:5271:2: ()
-            // InternalPerspectiveDsl.g:5271:3: 
+            // InternalPerspectiveDsl.g:5240:2: ()
+            // InternalPerspectiveDsl.g:5240:3: 
             {
             }
 
@@ -18867,14 +18753,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__1"
-    // InternalPerspectiveDsl.g:5279:1: rule__PerspectivePartStack__Group__1 : rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2 ;
+    // InternalPerspectiveDsl.g:5248: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:5283:1: ( rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2 )
-            // InternalPerspectiveDsl.g:5284:2: rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2
+            // InternalPerspectiveDsl.g:5252:1: ( rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2 )
+            // InternalPerspectiveDsl.g:5253:2: rule__PerspectivePartStack__Group__1__Impl rule__PerspectivePartStack__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePartStack__Group__1__Impl();
@@ -18905,17 +18791,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__1__Impl"
-    // InternalPerspectiveDsl.g:5291:1: rule__PerspectivePartStack__Group__1__Impl : ( 'partStack' ) ;
+    // InternalPerspectiveDsl.g:5260:1: rule__PerspectivePartStack__Group__1__Impl : ( 'partStack' ) ;
     public final void rule__PerspectivePartStack__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5295:1: ( ( 'partStack' ) )
-            // InternalPerspectiveDsl.g:5296:1: ( 'partStack' )
+            // InternalPerspectiveDsl.g:5264:1: ( ( 'partStack' ) )
+            // InternalPerspectiveDsl.g:5265:1: ( 'partStack' )
             {
-            // InternalPerspectiveDsl.g:5296:1: ( 'partStack' )
-            // InternalPerspectiveDsl.g:5297:2: 'partStack'
+            // InternalPerspectiveDsl.g:5265:1: ( 'partStack' )
+            // InternalPerspectiveDsl.g:5266:2: 'partStack'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getPartStackKeyword_1()); 
@@ -18946,14 +18832,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__2"
-    // InternalPerspectiveDsl.g:5306:1: rule__PerspectivePartStack__Group__2 : rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3 ;
+    // InternalPerspectiveDsl.g:5275: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:5310:1: ( rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3 )
-            // InternalPerspectiveDsl.g:5311:2: rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3
+            // InternalPerspectiveDsl.g:5279:1: ( rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3 )
+            // InternalPerspectiveDsl.g:5280:2: rule__PerspectivePartStack__Group__2__Impl rule__PerspectivePartStack__Group__3
             {
             pushFollow(FOLLOW_21);
             rule__PerspectivePartStack__Group__2__Impl();
@@ -18984,23 +18870,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__2__Impl"
-    // InternalPerspectiveDsl.g:5318:1: rule__PerspectivePartStack__Group__2__Impl : ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:5287: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:5322:1: ( ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:5323:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5291:1: ( ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:5292:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:5323:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
-            // InternalPerspectiveDsl.g:5324:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5292:1: ( ( rule__PerspectivePartStack__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5293:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementIdAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:5325:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
-            // InternalPerspectiveDsl.g:5325:3: rule__PerspectivePartStack__ElementIdAssignment_2
+            // InternalPerspectiveDsl.g:5294:2: ( rule__PerspectivePartStack__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5294:3: rule__PerspectivePartStack__ElementIdAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__ElementIdAssignment_2();
@@ -19035,14 +18921,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__3"
-    // InternalPerspectiveDsl.g:5333:1: rule__PerspectivePartStack__Group__3 : rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4 ;
+    // InternalPerspectiveDsl.g:5302: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:5337:1: ( rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4 )
-            // InternalPerspectiveDsl.g:5338:2: rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4
+            // InternalPerspectiveDsl.g:5306:1: ( rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4 )
+            // InternalPerspectiveDsl.g:5307:2: rule__PerspectivePartStack__Group__3__Impl rule__PerspectivePartStack__Group__4
             {
             pushFollow(FOLLOW_8);
             rule__PerspectivePartStack__Group__3__Impl();
@@ -19073,23 +18959,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__3__Impl"
-    // InternalPerspectiveDsl.g:5345:1: rule__PerspectivePartStack__Group__3__Impl : ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) ) ;
+    // InternalPerspectiveDsl.g:5314: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:5349:1: ( ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) ) )
-            // InternalPerspectiveDsl.g:5350:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5318:1: ( ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) ) )
+            // InternalPerspectiveDsl.g:5319:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
             {
-            // InternalPerspectiveDsl.g:5350:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
-            // InternalPerspectiveDsl.g:5351:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5319:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5320:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:5352:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
-            // InternalPerspectiveDsl.g:5352:3: rule__PerspectivePartStack__UnorderedGroup_3
+            // InternalPerspectiveDsl.g:5321:2: ( rule__PerspectivePartStack__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5321:3: rule__PerspectivePartStack__UnorderedGroup_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__UnorderedGroup_3();
@@ -19124,14 +19010,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__4"
-    // InternalPerspectiveDsl.g:5360:1: rule__PerspectivePartStack__Group__4 : rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5 ;
+    // InternalPerspectiveDsl.g:5329: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:5364:1: ( rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5 )
-            // InternalPerspectiveDsl.g:5365:2: rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5
+            // InternalPerspectiveDsl.g:5333:1: ( rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5 )
+            // InternalPerspectiveDsl.g:5334:2: rule__PerspectivePartStack__Group__4__Impl rule__PerspectivePartStack__Group__5
             {
             pushFollow(FOLLOW_13);
             rule__PerspectivePartStack__Group__4__Impl();
@@ -19162,17 +19048,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__4__Impl"
-    // InternalPerspectiveDsl.g:5372:1: rule__PerspectivePartStack__Group__4__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:5341:1: rule__PerspectivePartStack__Group__4__Impl : ( '{' ) ;
     public final void rule__PerspectivePartStack__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5376:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:5377:1: ( '{' )
+            // InternalPerspectiveDsl.g:5345:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:5346:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:5377:1: ( '{' )
-            // InternalPerspectiveDsl.g:5378:2: '{'
+            // InternalPerspectiveDsl.g:5346:1: ( '{' )
+            // InternalPerspectiveDsl.g:5347:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getLeftCurlyBracketKeyword_4()); 
@@ -19203,14 +19089,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__5"
-    // InternalPerspectiveDsl.g:5387:1: rule__PerspectivePartStack__Group__5 : rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6 ;
+    // InternalPerspectiveDsl.g:5356: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:5391:1: ( rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6 )
-            // InternalPerspectiveDsl.g:5392:2: rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6
+            // InternalPerspectiveDsl.g:5360:1: ( rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6 )
+            // InternalPerspectiveDsl.g:5361:2: rule__PerspectivePartStack__Group__5__Impl rule__PerspectivePartStack__Group__6
             {
             pushFollow(FOLLOW_13);
             rule__PerspectivePartStack__Group__5__Impl();
@@ -19241,22 +19127,22 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__5__Impl"
-    // InternalPerspectiveDsl.g:5399:1: rule__PerspectivePartStack__Group__5__Impl : ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* ) ;
+    // InternalPerspectiveDsl.g:5368: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:5403:1: ( ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* ) )
-            // InternalPerspectiveDsl.g:5404:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:5372:1: ( ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* ) )
+            // InternalPerspectiveDsl.g:5373:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
             {
-            // InternalPerspectiveDsl.g:5404:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
-            // InternalPerspectiveDsl.g:5405:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
+            // InternalPerspectiveDsl.g:5373:1: ( ( rule__PerspectivePartStack__ElementsAssignment_5 )* )
+            // InternalPerspectiveDsl.g:5374:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementsAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:5406:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
+            // InternalPerspectiveDsl.g:5375:2: ( rule__PerspectivePartStack__ElementsAssignment_5 )*
             loop57:
             do {
                 int alt57=2;
@@ -19269,7 +19155,7 @@
 
                 switch (alt57) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:5406:3: rule__PerspectivePartStack__ElementsAssignment_5
+            	    // InternalPerspectiveDsl.g:5375:3: rule__PerspectivePartStack__ElementsAssignment_5
             	    {
             	    pushFollow(FOLLOW_14);
             	    rule__PerspectivePartStack__ElementsAssignment_5();
@@ -19310,14 +19196,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__6"
-    // InternalPerspectiveDsl.g:5414:1: rule__PerspectivePartStack__Group__6 : rule__PerspectivePartStack__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:5383: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:5418:1: ( rule__PerspectivePartStack__Group__6__Impl )
-            // InternalPerspectiveDsl.g:5419:2: rule__PerspectivePartStack__Group__6__Impl
+            // InternalPerspectiveDsl.g:5387:1: ( rule__PerspectivePartStack__Group__6__Impl )
+            // InternalPerspectiveDsl.g:5388:2: rule__PerspectivePartStack__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group__6__Impl();
@@ -19343,17 +19229,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group__6__Impl"
-    // InternalPerspectiveDsl.g:5425:1: rule__PerspectivePartStack__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:5394:1: rule__PerspectivePartStack__Group__6__Impl : ( '}' ) ;
     public final void rule__PerspectivePartStack__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5429:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:5430:1: ( '}' )
+            // InternalPerspectiveDsl.g:5398:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:5399:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:5430:1: ( '}' )
-            // InternalPerspectiveDsl.g:5431:2: '}'
+            // InternalPerspectiveDsl.g:5399:1: ( '}' )
+            // InternalPerspectiveDsl.g:5400:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getRightCurlyBracketKeyword_6()); 
@@ -19384,14 +19270,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__0"
-    // InternalPerspectiveDsl.g:5441:1: rule__PerspectivePartStack__Group_3_0__0 : rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:5410: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:5445:1: ( rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:5446:2: rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1
+            // InternalPerspectiveDsl.g:5414:1: ( rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:5415:2: rule__PerspectivePartStack__Group_3_0__0__Impl rule__PerspectivePartStack__Group_3_0__1
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePartStack__Group_3_0__0__Impl();
@@ -19422,17 +19308,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:5453:1: rule__PerspectivePartStack__Group_3_0__0__Impl : ( 'selectedElement' ) ;
+    // InternalPerspectiveDsl.g:5422: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:5457:1: ( ( 'selectedElement' ) )
-            // InternalPerspectiveDsl.g:5458:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5426:1: ( ( 'selectedElement' ) )
+            // InternalPerspectiveDsl.g:5427:1: ( 'selectedElement' )
             {
-            // InternalPerspectiveDsl.g:5458:1: ( 'selectedElement' )
-            // InternalPerspectiveDsl.g:5459:2: 'selectedElement'
+            // InternalPerspectiveDsl.g:5427:1: ( 'selectedElement' )
+            // InternalPerspectiveDsl.g:5428:2: 'selectedElement'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementKeyword_3_0_0()); 
@@ -19463,14 +19349,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__1"
-    // InternalPerspectiveDsl.g:5468:1: rule__PerspectivePartStack__Group_3_0__1 : rule__PerspectivePartStack__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:5437: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:5472:1: ( rule__PerspectivePartStack__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:5473:2: rule__PerspectivePartStack__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:5441:1: ( rule__PerspectivePartStack__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:5442:2: rule__PerspectivePartStack__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group_3_0__1__Impl();
@@ -19496,23 +19382,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:5479:1: rule__PerspectivePartStack__Group_3_0__1__Impl : ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:5448: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:5483:1: ( ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:5484:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5452:1: ( ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:5453:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:5484:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:5485:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5453:1: ( ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5454:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:5486:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:5486:3: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1
+            // InternalPerspectiveDsl.g:5455:2: ( rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5455:3: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__SelectedElementAssignment_3_0_1();
@@ -19547,14 +19433,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__0"
-    // InternalPerspectiveDsl.g:5495:1: rule__PerspectivePartStack__Group_3_1__0 : rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:5464: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:5499:1: ( rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:5500:2: rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1
+            // InternalPerspectiveDsl.g:5468:1: ( rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:5469:2: rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePartStack__Group_3_1__0__Impl();
@@ -19585,17 +19471,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:5507:1: rule__PerspectivePartStack__Group_3_1__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5476:1: rule__PerspectivePartStack__Group_3_1__0__Impl : ( 'spaceVolume' ) ;
     public final void rule__PerspectivePartStack__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5511:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5512:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5480:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5481:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5512:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5513:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5481:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5482:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_1_0()); 
@@ -19626,14 +19512,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__1"
-    // InternalPerspectiveDsl.g:5522:1: rule__PerspectivePartStack__Group_3_1__1 : rule__PerspectivePartStack__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:5491: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:5526:1: ( rule__PerspectivePartStack__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:5527:2: rule__PerspectivePartStack__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:5495:1: ( rule__PerspectivePartStack__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:5496:2: rule__PerspectivePartStack__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group_3_1__1__Impl();
@@ -19659,23 +19545,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:5533:1: rule__PerspectivePartStack__Group_3_1__1__Impl : ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:5502:1: rule__PerspectivePartStack__Group_3_1__1__Impl : ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5537:1: ( ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:5538:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5506:1: ( ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:5507:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:5538:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:5539:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5507:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5508:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:5540:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:5540:3: rule__PerspectivePartStack__ContainerDataAssignment_3_1_1
+            // InternalPerspectiveDsl.g:5509:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5509:3: rule__PerspectivePartStack__ContainerDataAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__ContainerDataAssignment_3_1_1();
@@ -19710,14 +19596,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__0"
-    // InternalPerspectiveDsl.g:5549:1: rule__PerspectivePartStack__Group_3_2__0 : rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:5518: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:5553:1: ( rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:5554:2: rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1
+            // InternalPerspectiveDsl.g:5522:1: ( rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:5523:2: rule__PerspectivePartStack__Group_3_2__0__Impl rule__PerspectivePartStack__Group_3_2__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePartStack__Group_3_2__0__Impl();
@@ -19748,17 +19634,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:5561:1: rule__PerspectivePartStack__Group_3_2__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:5530:1: rule__PerspectivePartStack__Group_3_2__0__Impl : ( 'accessibility' ) ;
     public final void rule__PerspectivePartStack__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5565:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:5566:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5534:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:5535:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:5566:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:5567:2: 'accessibility'
+            // InternalPerspectiveDsl.g:5535:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5536:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_2_0()); 
@@ -19789,14 +19675,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__1"
-    // InternalPerspectiveDsl.g:5576:1: rule__PerspectivePartStack__Group_3_2__1 : rule__PerspectivePartStack__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:5545: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:5580:1: ( rule__PerspectivePartStack__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:5581:2: rule__PerspectivePartStack__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:5549:1: ( rule__PerspectivePartStack__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:5550:2: rule__PerspectivePartStack__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__Group_3_2__1__Impl();
@@ -19822,23 +19708,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:5587:1: rule__PerspectivePartStack__Group_3_2__1__Impl : ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:5556:1: rule__PerspectivePartStack__Group_3_2__1__Impl : ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5591:1: ( ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:5592:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5560:1: ( ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:5561:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:5592:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:5593:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5561:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5562:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:5594:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:5594:3: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1
+            // InternalPerspectiveDsl.g:5563:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5563:3: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1();
@@ -19873,14 +19759,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__0"
-    // InternalPerspectiveDsl.g:5603:1: rule__PerspectivePart__Group__0 : rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 ;
+    // InternalPerspectiveDsl.g:5572: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:5607:1: ( rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 )
-            // InternalPerspectiveDsl.g:5608:2: rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1
+            // InternalPerspectiveDsl.g:5576:1: ( rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 )
+            // InternalPerspectiveDsl.g:5577:2: rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1
             {
             pushFollow(FOLLOW_22);
             rule__PerspectivePart__Group__0__Impl();
@@ -19911,23 +19797,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:5615:1: rule__PerspectivePart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5584:1: rule__PerspectivePart__Group__0__Impl : ( () ) ;
     public final void rule__PerspectivePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5619:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:5620:1: ( () )
+            // InternalPerspectiveDsl.g:5588:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5589:1: ( () )
             {
-            // InternalPerspectiveDsl.g:5620:1: ( () )
-            // InternalPerspectiveDsl.g:5621:2: ()
+            // InternalPerspectiveDsl.g:5589:1: ( () )
+            // InternalPerspectiveDsl.g:5590:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getPerspectivePartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:5622:2: ()
-            // InternalPerspectiveDsl.g:5622:3: 
+            // InternalPerspectiveDsl.g:5591:2: ()
+            // InternalPerspectiveDsl.g:5591:3: 
             {
             }
 
@@ -19952,14 +19838,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__1"
-    // InternalPerspectiveDsl.g:5630:1: rule__PerspectivePart__Group__1 : rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 ;
+    // InternalPerspectiveDsl.g:5599: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:5634:1: ( rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 )
-            // InternalPerspectiveDsl.g:5635:2: rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2
+            // InternalPerspectiveDsl.g:5603:1: ( rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 )
+            // InternalPerspectiveDsl.g:5604:2: rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePart__Group__1__Impl();
@@ -19990,17 +19876,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:5642:1: rule__PerspectivePart__Group__1__Impl : ( 'part' ) ;
+    // InternalPerspectiveDsl.g:5611:1: rule__PerspectivePart__Group__1__Impl : ( 'part' ) ;
     public final void rule__PerspectivePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5646:1: ( ( 'part' ) )
-            // InternalPerspectiveDsl.g:5647:1: ( 'part' )
+            // InternalPerspectiveDsl.g:5615:1: ( ( 'part' ) )
+            // InternalPerspectiveDsl.g:5616:1: ( 'part' )
             {
-            // InternalPerspectiveDsl.g:5647:1: ( 'part' )
-            // InternalPerspectiveDsl.g:5648:2: 'part'
+            // InternalPerspectiveDsl.g:5616:1: ( 'part' )
+            // InternalPerspectiveDsl.g:5617:2: 'part'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getPartKeyword_1()); 
@@ -20031,14 +19917,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__2"
-    // InternalPerspectiveDsl.g:5657:1: rule__PerspectivePart__Group__2 : rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 ;
+    // InternalPerspectiveDsl.g:5626: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:5661:1: ( rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 )
-            // InternalPerspectiveDsl.g:5662:2: rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3
+            // InternalPerspectiveDsl.g:5630:1: ( rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 )
+            // InternalPerspectiveDsl.g:5631:2: rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3
             {
             pushFollow(FOLLOW_23);
             rule__PerspectivePart__Group__2__Impl();
@@ -20069,23 +19955,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:5669:1: rule__PerspectivePart__Group__2__Impl : ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:5638: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:5673:1: ( ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:5674:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5642:1: ( ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:5643:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:5674:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
-            // InternalPerspectiveDsl.g:5675:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5643:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5644:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getElementIdAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:5676:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
-            // InternalPerspectiveDsl.g:5676:3: rule__PerspectivePart__ElementIdAssignment_2
+            // InternalPerspectiveDsl.g:5645:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5645:3: rule__PerspectivePart__ElementIdAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ElementIdAssignment_2();
@@ -20120,14 +20006,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__3"
-    // InternalPerspectiveDsl.g:5684:1: rule__PerspectivePart__Group__3 : rule__PerspectivePart__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:5653: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:5688:1: ( rule__PerspectivePart__Group__3__Impl )
-            // InternalPerspectiveDsl.g:5689:2: rule__PerspectivePart__Group__3__Impl
+            // InternalPerspectiveDsl.g:5657:1: ( rule__PerspectivePart__Group__3__Impl )
+            // InternalPerspectiveDsl.g:5658:2: rule__PerspectivePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group__3__Impl();
@@ -20153,23 +20039,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__3__Impl"
-    // InternalPerspectiveDsl.g:5695:1: rule__PerspectivePart__Group__3__Impl : ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) ;
+    // InternalPerspectiveDsl.g:5664: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:5699:1: ( ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) )
-            // InternalPerspectiveDsl.g:5700:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5668:1: ( ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) )
+            // InternalPerspectiveDsl.g:5669:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
             {
-            // InternalPerspectiveDsl.g:5700:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
-            // InternalPerspectiveDsl.g:5701:2: ( rule__PerspectivePart__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5669:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5670:2: ( rule__PerspectivePart__UnorderedGroup_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:5702:2: ( rule__PerspectivePart__UnorderedGroup_3 )
-            // InternalPerspectiveDsl.g:5702:3: rule__PerspectivePart__UnorderedGroup_3
+            // InternalPerspectiveDsl.g:5671:2: ( rule__PerspectivePart__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5671:3: rule__PerspectivePart__UnorderedGroup_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__UnorderedGroup_3();
@@ -20204,14 +20090,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__0"
-    // InternalPerspectiveDsl.g:5711:1: rule__PerspectivePart__Group_3_0__0 : rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:5680: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:5715:1: ( rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:5716:2: rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1
+            // InternalPerspectiveDsl.g:5684:1: ( rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:5685:2: rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_0__0__Impl();
@@ -20242,17 +20128,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:5723:1: rule__PerspectivePart__Group_3_0__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5692: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:5727:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5728:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5696:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5697:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5728:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5729:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5697:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5698:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getSpaceVolumeKeyword_3_0_0()); 
@@ -20283,14 +20169,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__1"
-    // InternalPerspectiveDsl.g:5738:1: rule__PerspectivePart__Group_3_0__1 : rule__PerspectivePart__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:5707: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:5742:1: ( rule__PerspectivePart__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:5743:2: rule__PerspectivePart__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:5711:1: ( rule__PerspectivePart__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:5712:2: rule__PerspectivePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_0__1__Impl();
@@ -20316,23 +20202,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:5749:1: rule__PerspectivePart__Group_3_0__1__Impl : ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:5718: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:5753:1: ( ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:5754:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5722:1: ( ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:5723:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:5754:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:5755:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5723:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:5724:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getContainerDataAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:5756:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:5756:3: rule__PerspectivePart__ContainerDataAssignment_3_0_1
+            // InternalPerspectiveDsl.g:5725:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:5725:3: rule__PerspectivePart__ContainerDataAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ContainerDataAssignment_3_0_1();
@@ -20367,14 +20253,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__0"
-    // InternalPerspectiveDsl.g:5765:1: rule__PerspectivePart__Group_3_1__0 : rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:5734: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:5769:1: ( rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:5770:2: rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1
+            // InternalPerspectiveDsl.g:5738:1: ( rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:5739:2: rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_1__0__Impl();
@@ -20405,17 +20291,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:5777:1: rule__PerspectivePart__Group_3_1__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:5746: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:5781:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:5782:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5750:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:5751:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:5782:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:5783:2: 'accessibility'
+            // InternalPerspectiveDsl.g:5751:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5752:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityKeyword_3_1_0()); 
@@ -20446,14 +20332,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__1"
-    // InternalPerspectiveDsl.g:5792:1: rule__PerspectivePart__Group_3_1__1 : rule__PerspectivePart__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:5761: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:5796:1: ( rule__PerspectivePart__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:5797:2: rule__PerspectivePart__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:5765:1: ( rule__PerspectivePart__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:5766:2: rule__PerspectivePart__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_1__1__Impl();
@@ -20479,23 +20365,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:5803:1: rule__PerspectivePart__Group_3_1__1__Impl : ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:5772: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:5807:1: ( ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:5808:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5776:1: ( ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:5777:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:5808:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:5809:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5777:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5778:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:5810:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:5810:3: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1
+            // InternalPerspectiveDsl.g:5779:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5779:3: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1();
@@ -20530,14 +20416,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__0"
-    // InternalPerspectiveDsl.g:5819:1: rule__PerspectivePart__Group_3_2__0 : rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:5788: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:5823:1: ( rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:5824:2: rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1
+            // InternalPerspectiveDsl.g:5792:1: ( rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:5793:2: rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_2__0__Impl();
@@ -20568,17 +20454,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:5831:1: rule__PerspectivePart__Group_3_2__0__Impl : ( 'iconURI' ) ;
+    // InternalPerspectiveDsl.g:5800: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:5835:1: ( ( 'iconURI' ) )
-            // InternalPerspectiveDsl.g:5836:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:5804:1: ( ( 'iconURI' ) )
+            // InternalPerspectiveDsl.g:5805:1: ( 'iconURI' )
             {
-            // InternalPerspectiveDsl.g:5836:1: ( 'iconURI' )
-            // InternalPerspectiveDsl.g:5837:2: 'iconURI'
+            // InternalPerspectiveDsl.g:5805:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:5806:2: 'iconURI'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURIKeyword_3_2_0()); 
@@ -20609,14 +20495,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__1"
-    // InternalPerspectiveDsl.g:5846:1: rule__PerspectivePart__Group_3_2__1 : rule__PerspectivePart__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:5815: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:5850:1: ( rule__PerspectivePart__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:5851:2: rule__PerspectivePart__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:5819:1: ( rule__PerspectivePart__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:5820:2: rule__PerspectivePart__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_2__1__Impl();
@@ -20642,23 +20528,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:5857:1: rule__PerspectivePart__Group_3_2__1__Impl : ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:5826: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:5861:1: ( ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:5862:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5830:1: ( ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:5831:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:5862:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:5863:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5831:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5832:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURIAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:5864:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:5864:3: rule__PerspectivePart__IconURIAssignment_3_2_1
+            // InternalPerspectiveDsl.g:5833:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5833:3: rule__PerspectivePart__IconURIAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__IconURIAssignment_3_2_1();
@@ -20693,14 +20579,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__0"
-    // InternalPerspectiveDsl.g:5873:1: rule__PerspectivePart__Group_3_3__0 : rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 ;
+    // InternalPerspectiveDsl.g:5842: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:5877:1: ( rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 )
-            // InternalPerspectiveDsl.g:5878:2: rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1
+            // InternalPerspectiveDsl.g:5846:1: ( rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 )
+            // InternalPerspectiveDsl.g:5847:2: rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1
             {
             pushFollow(FOLLOW_24);
             rule__PerspectivePart__Group_3_3__0__Impl();
@@ -20731,17 +20617,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__0__Impl"
-    // InternalPerspectiveDsl.g:5885:1: rule__PerspectivePart__Group_3_3__0__Impl : ( 'view' ) ;
+    // InternalPerspectiveDsl.g:5854: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:5889:1: ( ( 'view' ) )
-            // InternalPerspectiveDsl.g:5890:1: ( 'view' )
+            // InternalPerspectiveDsl.g:5858:1: ( ( 'view' ) )
+            // InternalPerspectiveDsl.g:5859:1: ( 'view' )
             {
-            // InternalPerspectiveDsl.g:5890:1: ( 'view' )
-            // InternalPerspectiveDsl.g:5891:2: 'view'
+            // InternalPerspectiveDsl.g:5859:1: ( 'view' )
+            // InternalPerspectiveDsl.g:5860:2: 'view'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewKeyword_3_3_0()); 
@@ -20772,14 +20658,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__1"
-    // InternalPerspectiveDsl.g:5900:1: rule__PerspectivePart__Group_3_3__1 : rule__PerspectivePart__Group_3_3__1__Impl ;
+    // InternalPerspectiveDsl.g:5869: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:5904:1: ( rule__PerspectivePart__Group_3_3__1__Impl )
-            // InternalPerspectiveDsl.g:5905:2: rule__PerspectivePart__Group_3_3__1__Impl
+            // InternalPerspectiveDsl.g:5873:1: ( rule__PerspectivePart__Group_3_3__1__Impl )
+            // InternalPerspectiveDsl.g:5874:2: rule__PerspectivePart__Group_3_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_3__1__Impl();
@@ -20805,23 +20691,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__1__Impl"
-    // InternalPerspectiveDsl.g:5911:1: rule__PerspectivePart__Group_3_3__1__Impl : ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:5880: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:5915:1: ( ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) )
-            // InternalPerspectiveDsl.g:5916:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5884:1: ( ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) )
+            // InternalPerspectiveDsl.g:5885:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:5916:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
-            // InternalPerspectiveDsl.g:5917:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5885:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5886:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewAssignment_3_3_1()); 
             }
-            // InternalPerspectiveDsl.g:5918:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
-            // InternalPerspectiveDsl.g:5918:3: rule__PerspectivePart__ViewAssignment_3_3_1
+            // InternalPerspectiveDsl.g:5887:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5887:3: rule__PerspectivePart__ViewAssignment_3_3_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ViewAssignment_3_3_1();
@@ -20856,14 +20742,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__0"
-    // InternalPerspectiveDsl.g:5927:1: rule__PerspectiveSelection__Group__0 : rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 ;
+    // InternalPerspectiveDsl.g:5896: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:5931:1: ( rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 )
-            // InternalPerspectiveDsl.g:5932:2: rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1
+            // InternalPerspectiveDsl.g:5900:1: ( rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 )
+            // InternalPerspectiveDsl.g:5901:2: rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1
             {
             pushFollow(FOLLOW_25);
             rule__PerspectiveSelection__Group__0__Impl();
@@ -20894,23 +20780,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__0__Impl"
-    // InternalPerspectiveDsl.g:5939:1: rule__PerspectiveSelection__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5908:1: rule__PerspectiveSelection__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSelection__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5943:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:5944:1: ( () )
+            // InternalPerspectiveDsl.g:5912:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5913:1: ( () )
             {
-            // InternalPerspectiveDsl.g:5944:1: ( () )
-            // InternalPerspectiveDsl.g:5945:2: ()
+            // InternalPerspectiveDsl.g:5913:1: ( () )
+            // InternalPerspectiveDsl.g:5914:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getPerspectiveSelectionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:5946:2: ()
-            // InternalPerspectiveDsl.g:5946:3: 
+            // InternalPerspectiveDsl.g:5915:2: ()
+            // InternalPerspectiveDsl.g:5915:3: 
             {
             }
 
@@ -20935,14 +20821,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__1"
-    // InternalPerspectiveDsl.g:5954:1: rule__PerspectiveSelection__Group__1 : rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 ;
+    // InternalPerspectiveDsl.g:5923: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:5958:1: ( rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 )
-            // InternalPerspectiveDsl.g:5959:2: rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2
+            // InternalPerspectiveDsl.g:5927:1: ( rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 )
+            // InternalPerspectiveDsl.g:5928:2: rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSelection__Group__1__Impl();
@@ -20973,17 +20859,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__1__Impl"
-    // InternalPerspectiveDsl.g:5966:1: rule__PerspectiveSelection__Group__1__Impl : ( 'select' ) ;
+    // InternalPerspectiveDsl.g:5935:1: rule__PerspectiveSelection__Group__1__Impl : ( 'select' ) ;
     public final void rule__PerspectiveSelection__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5970:1: ( ( 'select' ) )
-            // InternalPerspectiveDsl.g:5971:1: ( 'select' )
+            // InternalPerspectiveDsl.g:5939:1: ( ( 'select' ) )
+            // InternalPerspectiveDsl.g:5940:1: ( 'select' )
             {
-            // InternalPerspectiveDsl.g:5971:1: ( 'select' )
-            // InternalPerspectiveDsl.g:5972:2: 'select'
+            // InternalPerspectiveDsl.g:5940:1: ( 'select' )
+            // InternalPerspectiveDsl.g:5941:2: 'select'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getSelectKeyword_1()); 
@@ -21014,14 +20900,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__2"
-    // InternalPerspectiveDsl.g:5981:1: rule__PerspectiveSelection__Group__2 : rule__PerspectiveSelection__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:5950: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:5985:1: ( rule__PerspectiveSelection__Group__2__Impl )
-            // InternalPerspectiveDsl.g:5986:2: rule__PerspectiveSelection__Group__2__Impl
+            // InternalPerspectiveDsl.g:5954:1: ( rule__PerspectiveSelection__Group__2__Impl )
+            // InternalPerspectiveDsl.g:5955:2: rule__PerspectiveSelection__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSelection__Group__2__Impl();
@@ -21047,23 +20933,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__2__Impl"
-    // InternalPerspectiveDsl.g:5992:1: rule__PerspectiveSelection__Group__2__Impl : ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:5961: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:5996:1: ( ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:5997:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5965:1: ( ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:5966:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:5997:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:5998:2: ( rule__PerspectiveSelection__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:5966:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5967:2: ( rule__PerspectiveSelection__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:5999:2: ( rule__PerspectiveSelection__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:5999:3: rule__PerspectiveSelection__RefAssignment_2
+            // InternalPerspectiveDsl.g:5968:2: ( rule__PerspectiveSelection__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:5968:3: rule__PerspectiveSelection__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSelection__RefAssignment_2();
@@ -21098,14 +20984,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__0"
-    // InternalPerspectiveDsl.g:6008:1: rule__PerspectiveTable__Group__0 : rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 ;
+    // InternalPerspectiveDsl.g:5977: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:6012:1: ( rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 )
-            // InternalPerspectiveDsl.g:6013:2: rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1
+            // InternalPerspectiveDsl.g:5981:1: ( rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 )
+            // InternalPerspectiveDsl.g:5982:2: rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1
             {
             pushFollow(FOLLOW_26);
             rule__PerspectiveTable__Group__0__Impl();
@@ -21136,23 +21022,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6020:1: rule__PerspectiveTable__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5989:1: rule__PerspectiveTable__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTable__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6024:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6025:1: ( () )
+            // InternalPerspectiveDsl.g:5993:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5994:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6025:1: ( () )
-            // InternalPerspectiveDsl.g:6026:2: ()
+            // InternalPerspectiveDsl.g:5994:1: ( () )
+            // InternalPerspectiveDsl.g:5995:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getPerspectiveTableAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6027:2: ()
-            // InternalPerspectiveDsl.g:6027:3: 
+            // InternalPerspectiveDsl.g:5996:2: ()
+            // InternalPerspectiveDsl.g:5996:3: 
             {
             }
 
@@ -21177,14 +21063,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__1"
-    // InternalPerspectiveDsl.g:6035:1: rule__PerspectiveTable__Group__1 : rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 ;
+    // InternalPerspectiveDsl.g:6004: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:6039:1: ( rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 )
-            // InternalPerspectiveDsl.g:6040:2: rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2
+            // InternalPerspectiveDsl.g:6008:1: ( rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 )
+            // InternalPerspectiveDsl.g:6009:2: rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveTable__Group__1__Impl();
@@ -21215,17 +21101,17 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6047:1: rule__PerspectiveTable__Group__1__Impl : ( 'table' ) ;
+    // InternalPerspectiveDsl.g:6016:1: rule__PerspectiveTable__Group__1__Impl : ( 'table' ) ;
     public final void rule__PerspectiveTable__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6051:1: ( ( 'table' ) )
-            // InternalPerspectiveDsl.g:6052:1: ( 'table' )
+            // InternalPerspectiveDsl.g:6020:1: ( ( 'table' ) )
+            // InternalPerspectiveDsl.g:6021:1: ( 'table' )
             {
-            // InternalPerspectiveDsl.g:6052:1: ( 'table' )
-            // InternalPerspectiveDsl.g:6053:2: 'table'
+            // InternalPerspectiveDsl.g:6021:1: ( 'table' )
+            // InternalPerspectiveDsl.g:6022:2: 'table'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getTableKeyword_1()); 
@@ -21256,14 +21142,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__2"
-    // InternalPerspectiveDsl.g:6062:1: rule__PerspectiveTable__Group__2 : rule__PerspectiveTable__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6031: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:6066:1: ( rule__PerspectiveTable__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6067:2: rule__PerspectiveTable__Group__2__Impl
+            // InternalPerspectiveDsl.g:6035:1: ( rule__PerspectiveTable__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6036:2: rule__PerspectiveTable__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTable__Group__2__Impl();
@@ -21289,23 +21175,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6073:1: rule__PerspectiveTable__Group__2__Impl : ( ( rule__PerspectiveTable__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6042: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:6077:1: ( ( ( rule__PerspectiveTable__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6078:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6046:1: ( ( ( rule__PerspectiveTable__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6047:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6078:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6079:2: ( rule__PerspectiveTable__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6047:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6048:2: ( rule__PerspectiveTable__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6080:2: ( rule__PerspectiveTable__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6080:3: rule__PerspectiveTable__RefAssignment_2
+            // InternalPerspectiveDsl.g:6049:2: ( rule__PerspectiveTable__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6049:3: rule__PerspectiveTable__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTable__RefAssignment_2();
@@ -21340,14 +21226,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__0"
-    // InternalPerspectiveDsl.g:6089:1: rule__PerspectiveGrid__Group__0 : rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 ;
+    // InternalPerspectiveDsl.g:6058: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:6093:1: ( rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 )
-            // InternalPerspectiveDsl.g:6094:2: rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1
+            // InternalPerspectiveDsl.g:6062:1: ( rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 )
+            // InternalPerspectiveDsl.g:6063:2: rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1
             {
             pushFollow(FOLLOW_27);
             rule__PerspectiveGrid__Group__0__Impl();
@@ -21378,23 +21264,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6101:1: rule__PerspectiveGrid__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6070:1: rule__PerspectiveGrid__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveGrid__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6105:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6106:1: ( () )
+            // InternalPerspectiveDsl.g:6074:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6075:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6106:1: ( () )
-            // InternalPerspectiveDsl.g:6107:2: ()
+            // InternalPerspectiveDsl.g:6075:1: ( () )
+            // InternalPerspectiveDsl.g:6076:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getPerspectiveGridAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6108:2: ()
-            // InternalPerspectiveDsl.g:6108:3: 
+            // InternalPerspectiveDsl.g:6077:2: ()
+            // InternalPerspectiveDsl.g:6077:3: 
             {
             }
 
@@ -21419,14 +21305,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__1"
-    // InternalPerspectiveDsl.g:6116:1: rule__PerspectiveGrid__Group__1 : rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 ;
+    // InternalPerspectiveDsl.g:6085: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:6120:1: ( rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 )
-            // InternalPerspectiveDsl.g:6121:2: rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2
+            // InternalPerspectiveDsl.g:6089:1: ( rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 )
+            // InternalPerspectiveDsl.g:6090:2: rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveGrid__Group__1__Impl();
@@ -21457,17 +21343,17 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6128:1: rule__PerspectiveGrid__Group__1__Impl : ( 'grid' ) ;
+    // InternalPerspectiveDsl.g:6097:1: rule__PerspectiveGrid__Group__1__Impl : ( 'grid' ) ;
     public final void rule__PerspectiveGrid__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6132:1: ( ( 'grid' ) )
-            // InternalPerspectiveDsl.g:6133:1: ( 'grid' )
+            // InternalPerspectiveDsl.g:6101:1: ( ( 'grid' ) )
+            // InternalPerspectiveDsl.g:6102:1: ( 'grid' )
             {
-            // InternalPerspectiveDsl.g:6133:1: ( 'grid' )
-            // InternalPerspectiveDsl.g:6134:2: 'grid'
+            // InternalPerspectiveDsl.g:6102:1: ( 'grid' )
+            // InternalPerspectiveDsl.g:6103:2: 'grid'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getGridKeyword_1()); 
@@ -21498,14 +21384,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__2"
-    // InternalPerspectiveDsl.g:6143:1: rule__PerspectiveGrid__Group__2 : rule__PerspectiveGrid__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6112: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:6147:1: ( rule__PerspectiveGrid__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6148:2: rule__PerspectiveGrid__Group__2__Impl
+            // InternalPerspectiveDsl.g:6116:1: ( rule__PerspectiveGrid__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6117:2: rule__PerspectiveGrid__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveGrid__Group__2__Impl();
@@ -21531,23 +21417,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6154:1: rule__PerspectiveGrid__Group__2__Impl : ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6123: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:6158:1: ( ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6159:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6127:1: ( ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6128:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6159:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6160:2: ( rule__PerspectiveGrid__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6128:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6129:2: ( rule__PerspectiveGrid__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6161:2: ( rule__PerspectiveGrid__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6161:3: rule__PerspectiveGrid__RefAssignment_2
+            // InternalPerspectiveDsl.g:6130:2: ( rule__PerspectiveGrid__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6130:3: rule__PerspectiveGrid__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveGrid__RefAssignment_2();
@@ -21582,14 +21468,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBean__Group__0"
-    // InternalPerspectiveDsl.g:6170:1: rule__PerspectiveBean__Group__0 : rule__PerspectiveBean__Group__0__Impl rule__PerspectiveBean__Group__1 ;
+    // InternalPerspectiveDsl.g:6139:1: rule__PerspectiveBean__Group__0 : rule__PerspectiveBean__Group__0__Impl rule__PerspectiveBean__Group__1 ;
     public final void rule__PerspectiveBean__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6174:1: ( rule__PerspectiveBean__Group__0__Impl rule__PerspectiveBean__Group__1 )
-            // InternalPerspectiveDsl.g:6175:2: rule__PerspectiveBean__Group__0__Impl rule__PerspectiveBean__Group__1
+            // InternalPerspectiveDsl.g:6143:1: ( rule__PerspectiveBean__Group__0__Impl rule__PerspectiveBean__Group__1 )
+            // InternalPerspectiveDsl.g:6144:2: rule__PerspectiveBean__Group__0__Impl rule__PerspectiveBean__Group__1
             {
             pushFollow(FOLLOW_28);
             rule__PerspectiveBean__Group__0__Impl();
@@ -21620,23 +21506,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBean__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6182:1: rule__PerspectiveBean__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6151:1: rule__PerspectiveBean__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveBean__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6186:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6187:1: ( () )
+            // InternalPerspectiveDsl.g:6155:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6156:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6187:1: ( () )
-            // InternalPerspectiveDsl.g:6188:2: ()
+            // InternalPerspectiveDsl.g:6156:1: ( () )
+            // InternalPerspectiveDsl.g:6157:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBeanAccess().getPerspectiveBeanAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6189:2: ()
-            // InternalPerspectiveDsl.g:6189:3: 
+            // InternalPerspectiveDsl.g:6158:2: ()
+            // InternalPerspectiveDsl.g:6158:3: 
             {
             }
 
@@ -21661,14 +21547,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBean__Group__1"
-    // InternalPerspectiveDsl.g:6197:1: rule__PerspectiveBean__Group__1 : rule__PerspectiveBean__Group__1__Impl rule__PerspectiveBean__Group__2 ;
+    // InternalPerspectiveDsl.g:6166:1: rule__PerspectiveBean__Group__1 : rule__PerspectiveBean__Group__1__Impl rule__PerspectiveBean__Group__2 ;
     public final void rule__PerspectiveBean__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6201:1: ( rule__PerspectiveBean__Group__1__Impl rule__PerspectiveBean__Group__2 )
-            // InternalPerspectiveDsl.g:6202:2: rule__PerspectiveBean__Group__1__Impl rule__PerspectiveBean__Group__2
+            // InternalPerspectiveDsl.g:6170:1: ( rule__PerspectiveBean__Group__1__Impl rule__PerspectiveBean__Group__2 )
+            // InternalPerspectiveDsl.g:6171:2: rule__PerspectiveBean__Group__1__Impl rule__PerspectiveBean__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveBean__Group__1__Impl();
@@ -21699,17 +21585,17 @@
 
 
     // $ANTLR start "rule__PerspectiveBean__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6209:1: rule__PerspectiveBean__Group__1__Impl : ( 'bean' ) ;
+    // InternalPerspectiveDsl.g:6178:1: rule__PerspectiveBean__Group__1__Impl : ( 'bean' ) ;
     public final void rule__PerspectiveBean__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6213:1: ( ( 'bean' ) )
-            // InternalPerspectiveDsl.g:6214:1: ( 'bean' )
+            // InternalPerspectiveDsl.g:6182:1: ( ( 'bean' ) )
+            // InternalPerspectiveDsl.g:6183:1: ( 'bean' )
             {
-            // InternalPerspectiveDsl.g:6214:1: ( 'bean' )
-            // InternalPerspectiveDsl.g:6215:2: 'bean'
+            // InternalPerspectiveDsl.g:6183:1: ( 'bean' )
+            // InternalPerspectiveDsl.g:6184:2: 'bean'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBeanAccess().getBeanKeyword_1()); 
@@ -21740,14 +21626,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBean__Group__2"
-    // InternalPerspectiveDsl.g:6224:1: rule__PerspectiveBean__Group__2 : rule__PerspectiveBean__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6193:1: rule__PerspectiveBean__Group__2 : rule__PerspectiveBean__Group__2__Impl ;
     public final void rule__PerspectiveBean__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6228:1: ( rule__PerspectiveBean__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6229:2: rule__PerspectiveBean__Group__2__Impl
+            // InternalPerspectiveDsl.g:6197:1: ( rule__PerspectiveBean__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6198:2: rule__PerspectiveBean__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveBean__Group__2__Impl();
@@ -21773,23 +21659,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBean__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6235:1: rule__PerspectiveBean__Group__2__Impl : ( ( rule__PerspectiveBean__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6204:1: rule__PerspectiveBean__Group__2__Impl : ( ( rule__PerspectiveBean__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveBean__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6239:1: ( ( ( rule__PerspectiveBean__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6240:1: ( ( rule__PerspectiveBean__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6208:1: ( ( ( rule__PerspectiveBean__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6209:1: ( ( rule__PerspectiveBean__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6240:1: ( ( rule__PerspectiveBean__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6241:2: ( rule__PerspectiveBean__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6209:1: ( ( rule__PerspectiveBean__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6210:2: ( rule__PerspectiveBean__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBeanAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6242:2: ( rule__PerspectiveBean__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6242:3: rule__PerspectiveBean__RefAssignment_2
+            // InternalPerspectiveDsl.g:6211:2: ( rule__PerspectiveBean__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6211:3: rule__PerspectiveBean__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveBean__RefAssignment_2();
@@ -21824,14 +21710,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__0"
-    // InternalPerspectiveDsl.g:6251:1: rule__PerspectiveChart__Group__0 : rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 ;
+    // InternalPerspectiveDsl.g:6220: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:6255:1: ( rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 )
-            // InternalPerspectiveDsl.g:6256:2: rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1
+            // InternalPerspectiveDsl.g:6224:1: ( rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 )
+            // InternalPerspectiveDsl.g:6225:2: rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1
             {
             pushFollow(FOLLOW_29);
             rule__PerspectiveChart__Group__0__Impl();
@@ -21862,23 +21748,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6263:1: rule__PerspectiveChart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6232:1: rule__PerspectiveChart__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveChart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6267:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6268:1: ( () )
+            // InternalPerspectiveDsl.g:6236:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6237:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6268:1: ( () )
-            // InternalPerspectiveDsl.g:6269:2: ()
+            // InternalPerspectiveDsl.g:6237:1: ( () )
+            // InternalPerspectiveDsl.g:6238:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getPerspectiveChartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6270:2: ()
-            // InternalPerspectiveDsl.g:6270:3: 
+            // InternalPerspectiveDsl.g:6239:2: ()
+            // InternalPerspectiveDsl.g:6239:3: 
             {
             }
 
@@ -21903,14 +21789,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__1"
-    // InternalPerspectiveDsl.g:6278:1: rule__PerspectiveChart__Group__1 : rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 ;
+    // InternalPerspectiveDsl.g:6247: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:6282:1: ( rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 )
-            // InternalPerspectiveDsl.g:6283:2: rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2
+            // InternalPerspectiveDsl.g:6251:1: ( rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 )
+            // InternalPerspectiveDsl.g:6252:2: rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveChart__Group__1__Impl();
@@ -21941,17 +21827,17 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6290:1: rule__PerspectiveChart__Group__1__Impl : ( 'chart' ) ;
+    // InternalPerspectiveDsl.g:6259:1: rule__PerspectiveChart__Group__1__Impl : ( 'chart' ) ;
     public final void rule__PerspectiveChart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6294:1: ( ( 'chart' ) )
-            // InternalPerspectiveDsl.g:6295:1: ( 'chart' )
+            // InternalPerspectiveDsl.g:6263:1: ( ( 'chart' ) )
+            // InternalPerspectiveDsl.g:6264:1: ( 'chart' )
             {
-            // InternalPerspectiveDsl.g:6295:1: ( 'chart' )
-            // InternalPerspectiveDsl.g:6296:2: 'chart'
+            // InternalPerspectiveDsl.g:6264:1: ( 'chart' )
+            // InternalPerspectiveDsl.g:6265:2: 'chart'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getChartKeyword_1()); 
@@ -21982,14 +21868,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__2"
-    // InternalPerspectiveDsl.g:6305:1: rule__PerspectiveChart__Group__2 : rule__PerspectiveChart__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6274: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:6309:1: ( rule__PerspectiveChart__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6310:2: rule__PerspectiveChart__Group__2__Impl
+            // InternalPerspectiveDsl.g:6278:1: ( rule__PerspectiveChart__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6279:2: rule__PerspectiveChart__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveChart__Group__2__Impl();
@@ -22015,23 +21901,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6316:1: rule__PerspectiveChart__Group__2__Impl : ( ( rule__PerspectiveChart__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6285: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:6320:1: ( ( ( rule__PerspectiveChart__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6321:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6289:1: ( ( ( rule__PerspectiveChart__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6290:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6321:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6322:2: ( rule__PerspectiveChart__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6290:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6291:2: ( rule__PerspectiveChart__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6323:2: ( rule__PerspectiveChart__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6323:3: rule__PerspectiveChart__RefAssignment_2
+            // InternalPerspectiveDsl.g:6292:2: ( rule__PerspectiveChart__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6292:3: rule__PerspectiveChart__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveChart__RefAssignment_2();
@@ -22066,14 +21952,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__0"
-    // InternalPerspectiveDsl.g:6332:1: rule__PerspectiveReport__Group__0 : rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 ;
+    // InternalPerspectiveDsl.g:6301: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:6336:1: ( rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 )
-            // InternalPerspectiveDsl.g:6337:2: rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1
+            // InternalPerspectiveDsl.g:6305:1: ( rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 )
+            // InternalPerspectiveDsl.g:6306:2: rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1
             {
             pushFollow(FOLLOW_30);
             rule__PerspectiveReport__Group__0__Impl();
@@ -22104,23 +21990,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6344:1: rule__PerspectiveReport__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6313:1: rule__PerspectiveReport__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveReport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6348:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6349:1: ( () )
+            // InternalPerspectiveDsl.g:6317:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6318:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6349:1: ( () )
-            // InternalPerspectiveDsl.g:6350:2: ()
+            // InternalPerspectiveDsl.g:6318:1: ( () )
+            // InternalPerspectiveDsl.g:6319:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getPerspectiveReportAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6351:2: ()
-            // InternalPerspectiveDsl.g:6351:3: 
+            // InternalPerspectiveDsl.g:6320:2: ()
+            // InternalPerspectiveDsl.g:6320:3: 
             {
             }
 
@@ -22145,14 +22031,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__1"
-    // InternalPerspectiveDsl.g:6359:1: rule__PerspectiveReport__Group__1 : rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 ;
+    // InternalPerspectiveDsl.g:6328: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:6363:1: ( rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 )
-            // InternalPerspectiveDsl.g:6364:2: rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2
+            // InternalPerspectiveDsl.g:6332:1: ( rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 )
+            // InternalPerspectiveDsl.g:6333:2: rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveReport__Group__1__Impl();
@@ -22183,17 +22069,17 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6371:1: rule__PerspectiveReport__Group__1__Impl : ( 'report' ) ;
+    // InternalPerspectiveDsl.g:6340:1: rule__PerspectiveReport__Group__1__Impl : ( 'report' ) ;
     public final void rule__PerspectiveReport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6375:1: ( ( 'report' ) )
-            // InternalPerspectiveDsl.g:6376:1: ( 'report' )
+            // InternalPerspectiveDsl.g:6344:1: ( ( 'report' ) )
+            // InternalPerspectiveDsl.g:6345:1: ( 'report' )
             {
-            // InternalPerspectiveDsl.g:6376:1: ( 'report' )
-            // InternalPerspectiveDsl.g:6377:2: 'report'
+            // InternalPerspectiveDsl.g:6345:1: ( 'report' )
+            // InternalPerspectiveDsl.g:6346:2: 'report'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getReportKeyword_1()); 
@@ -22224,14 +22110,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__2"
-    // InternalPerspectiveDsl.g:6386:1: rule__PerspectiveReport__Group__2 : rule__PerspectiveReport__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6355: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:6390:1: ( rule__PerspectiveReport__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6391:2: rule__PerspectiveReport__Group__2__Impl
+            // InternalPerspectiveDsl.g:6359:1: ( rule__PerspectiveReport__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6360:2: rule__PerspectiveReport__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveReport__Group__2__Impl();
@@ -22257,23 +22143,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6397:1: rule__PerspectiveReport__Group__2__Impl : ( ( rule__PerspectiveReport__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6366: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:6401:1: ( ( ( rule__PerspectiveReport__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6402:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6370:1: ( ( ( rule__PerspectiveReport__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6371:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6402:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6403:2: ( rule__PerspectiveReport__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6371:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6372:2: ( rule__PerspectiveReport__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6404:2: ( rule__PerspectiveReport__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6404:3: rule__PerspectiveReport__RefAssignment_2
+            // InternalPerspectiveDsl.g:6373:2: ( rule__PerspectiveReport__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6373:3: rule__PerspectiveReport__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveReport__RefAssignment_2();
@@ -22308,14 +22194,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__0"
-    // InternalPerspectiveDsl.g:6413:1: rule__PerspectiveOrganization__Group__0 : rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 ;
+    // InternalPerspectiveDsl.g:6382: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:6417:1: ( rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 )
-            // InternalPerspectiveDsl.g:6418:2: rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1
+            // InternalPerspectiveDsl.g:6386:1: ( rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 )
+            // InternalPerspectiveDsl.g:6387:2: rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1
             {
             pushFollow(FOLLOW_31);
             rule__PerspectiveOrganization__Group__0__Impl();
@@ -22346,23 +22232,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6425:1: rule__PerspectiveOrganization__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6394:1: rule__PerspectiveOrganization__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveOrganization__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6429:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6430:1: ( () )
+            // InternalPerspectiveDsl.g:6398:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6399:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6430:1: ( () )
-            // InternalPerspectiveDsl.g:6431:2: ()
+            // InternalPerspectiveDsl.g:6399:1: ( () )
+            // InternalPerspectiveDsl.g:6400:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getPerspectiveOrganizationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6432:2: ()
-            // InternalPerspectiveDsl.g:6432:3: 
+            // InternalPerspectiveDsl.g:6401:2: ()
+            // InternalPerspectiveDsl.g:6401:3: 
             {
             }
 
@@ -22387,14 +22273,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__1"
-    // InternalPerspectiveDsl.g:6440:1: rule__PerspectiveOrganization__Group__1 : rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 ;
+    // InternalPerspectiveDsl.g:6409: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:6444:1: ( rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 )
-            // InternalPerspectiveDsl.g:6445:2: rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2
+            // InternalPerspectiveDsl.g:6413:1: ( rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 )
+            // InternalPerspectiveDsl.g:6414:2: rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveOrganization__Group__1__Impl();
@@ -22425,17 +22311,17 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6452:1: rule__PerspectiveOrganization__Group__1__Impl : ( 'organigram' ) ;
+    // InternalPerspectiveDsl.g:6421:1: rule__PerspectiveOrganization__Group__1__Impl : ( 'organigram' ) ;
     public final void rule__PerspectiveOrganization__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6456:1: ( ( 'organigram' ) )
-            // InternalPerspectiveDsl.g:6457:1: ( 'organigram' )
+            // InternalPerspectiveDsl.g:6425:1: ( ( 'organigram' ) )
+            // InternalPerspectiveDsl.g:6426:1: ( 'organigram' )
             {
-            // InternalPerspectiveDsl.g:6457:1: ( 'organigram' )
-            // InternalPerspectiveDsl.g:6458:2: 'organigram'
+            // InternalPerspectiveDsl.g:6426:1: ( 'organigram' )
+            // InternalPerspectiveDsl.g:6427:2: 'organigram'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getOrganigramKeyword_1()); 
@@ -22466,14 +22352,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__2"
-    // InternalPerspectiveDsl.g:6467:1: rule__PerspectiveOrganization__Group__2 : rule__PerspectiveOrganization__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6436: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:6471:1: ( rule__PerspectiveOrganization__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6472:2: rule__PerspectiveOrganization__Group__2__Impl
+            // InternalPerspectiveDsl.g:6440:1: ( rule__PerspectiveOrganization__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6441:2: rule__PerspectiveOrganization__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveOrganization__Group__2__Impl();
@@ -22499,23 +22385,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6478:1: rule__PerspectiveOrganization__Group__2__Impl : ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6447: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:6482:1: ( ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6483:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6451:1: ( ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6452:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6483:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6484:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6452:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6453:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6485:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6485:3: rule__PerspectiveOrganization__RefAssignment_2
+            // InternalPerspectiveDsl.g:6454:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6454:3: rule__PerspectiveOrganization__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveOrganization__RefAssignment_2();
@@ -22550,14 +22436,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__0"
-    // InternalPerspectiveDsl.g:6494:1: rule__PerspectiveTopology__Group__0 : rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 ;
+    // InternalPerspectiveDsl.g:6463: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:6498:1: ( rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 )
-            // InternalPerspectiveDsl.g:6499:2: rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1
+            // InternalPerspectiveDsl.g:6467:1: ( rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 )
+            // InternalPerspectiveDsl.g:6468:2: rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1
             {
             pushFollow(FOLLOW_32);
             rule__PerspectiveTopology__Group__0__Impl();
@@ -22588,23 +22474,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6506:1: rule__PerspectiveTopology__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6475:1: rule__PerspectiveTopology__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTopology__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6510:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6511:1: ( () )
+            // InternalPerspectiveDsl.g:6479:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6480:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6511:1: ( () )
-            // InternalPerspectiveDsl.g:6512:2: ()
+            // InternalPerspectiveDsl.g:6480:1: ( () )
+            // InternalPerspectiveDsl.g:6481:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getPerspectiveTopologyAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6513:2: ()
-            // InternalPerspectiveDsl.g:6513:3: 
+            // InternalPerspectiveDsl.g:6482:2: ()
+            // InternalPerspectiveDsl.g:6482:3: 
             {
             }
 
@@ -22629,14 +22515,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__1"
-    // InternalPerspectiveDsl.g:6521:1: rule__PerspectiveTopology__Group__1 : rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 ;
+    // InternalPerspectiveDsl.g:6490: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:6525:1: ( rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 )
-            // InternalPerspectiveDsl.g:6526:2: rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2
+            // InternalPerspectiveDsl.g:6494:1: ( rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 )
+            // InternalPerspectiveDsl.g:6495:2: rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveTopology__Group__1__Impl();
@@ -22667,17 +22553,17 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6533:1: rule__PerspectiveTopology__Group__1__Impl : ( 'topology' ) ;
+    // InternalPerspectiveDsl.g:6502:1: rule__PerspectiveTopology__Group__1__Impl : ( 'topology' ) ;
     public final void rule__PerspectiveTopology__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6537:1: ( ( 'topology' ) )
-            // InternalPerspectiveDsl.g:6538:1: ( 'topology' )
+            // InternalPerspectiveDsl.g:6506:1: ( ( 'topology' ) )
+            // InternalPerspectiveDsl.g:6507:1: ( 'topology' )
             {
-            // InternalPerspectiveDsl.g:6538:1: ( 'topology' )
-            // InternalPerspectiveDsl.g:6539:2: 'topology'
+            // InternalPerspectiveDsl.g:6507:1: ( 'topology' )
+            // InternalPerspectiveDsl.g:6508:2: 'topology'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getTopologyKeyword_1()); 
@@ -22708,14 +22594,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__2"
-    // InternalPerspectiveDsl.g:6548:1: rule__PerspectiveTopology__Group__2 : rule__PerspectiveTopology__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6517: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:6552:1: ( rule__PerspectiveTopology__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6553:2: rule__PerspectiveTopology__Group__2__Impl
+            // InternalPerspectiveDsl.g:6521:1: ( rule__PerspectiveTopology__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6522:2: rule__PerspectiveTopology__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTopology__Group__2__Impl();
@@ -22741,23 +22627,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6559:1: rule__PerspectiveTopology__Group__2__Impl : ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6528: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:6563:1: ( ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6564:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6532:1: ( ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6533:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6564:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6565:2: ( rule__PerspectiveTopology__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6533:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6534:2: ( rule__PerspectiveTopology__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6566:2: ( rule__PerspectiveTopology__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6566:3: rule__PerspectiveTopology__RefAssignment_2
+            // InternalPerspectiveDsl.g:6535:2: ( rule__PerspectiveTopology__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6535:3: rule__PerspectiveTopology__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTopology__RefAssignment_2();
@@ -22792,14 +22678,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__0"
-    // InternalPerspectiveDsl.g:6575:1: rule__PerspectiveDialog__Group__0 : rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 ;
+    // InternalPerspectiveDsl.g:6544: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:6579:1: ( rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 )
-            // InternalPerspectiveDsl.g:6580:2: rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1
+            // InternalPerspectiveDsl.g:6548:1: ( rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 )
+            // InternalPerspectiveDsl.g:6549:2: rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1
             {
             pushFollow(FOLLOW_33);
             rule__PerspectiveDialog__Group__0__Impl();
@@ -22830,23 +22716,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6587:1: rule__PerspectiveDialog__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6556:1: rule__PerspectiveDialog__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDialog__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6591:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6592:1: ( () )
+            // InternalPerspectiveDsl.g:6560:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6561:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6592:1: ( () )
-            // InternalPerspectiveDsl.g:6593:2: ()
+            // InternalPerspectiveDsl.g:6561:1: ( () )
+            // InternalPerspectiveDsl.g:6562:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getPerspectiveDialogAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6594:2: ()
-            // InternalPerspectiveDsl.g:6594:3: 
+            // InternalPerspectiveDsl.g:6563:2: ()
+            // InternalPerspectiveDsl.g:6563:3: 
             {
             }
 
@@ -22871,14 +22757,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__1"
-    // InternalPerspectiveDsl.g:6602:1: rule__PerspectiveDialog__Group__1 : rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 ;
+    // InternalPerspectiveDsl.g:6571: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:6606:1: ( rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 )
-            // InternalPerspectiveDsl.g:6607:2: rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2
+            // InternalPerspectiveDsl.g:6575:1: ( rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 )
+            // InternalPerspectiveDsl.g:6576:2: rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveDialog__Group__1__Impl();
@@ -22909,17 +22795,17 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6614:1: rule__PerspectiveDialog__Group__1__Impl : ( 'dialog' ) ;
+    // InternalPerspectiveDsl.g:6583:1: rule__PerspectiveDialog__Group__1__Impl : ( 'dialog' ) ;
     public final void rule__PerspectiveDialog__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6618:1: ( ( 'dialog' ) )
-            // InternalPerspectiveDsl.g:6619:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:6587:1: ( ( 'dialog' ) )
+            // InternalPerspectiveDsl.g:6588:1: ( 'dialog' )
             {
-            // InternalPerspectiveDsl.g:6619:1: ( 'dialog' )
-            // InternalPerspectiveDsl.g:6620:2: 'dialog'
+            // InternalPerspectiveDsl.g:6588:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:6589:2: 'dialog'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getDialogKeyword_1()); 
@@ -22950,14 +22836,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__2"
-    // InternalPerspectiveDsl.g:6629:1: rule__PerspectiveDialog__Group__2 : rule__PerspectiveDialog__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6598: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:6633:1: ( rule__PerspectiveDialog__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6634:2: rule__PerspectiveDialog__Group__2__Impl
+            // InternalPerspectiveDsl.g:6602:1: ( rule__PerspectiveDialog__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6603:2: rule__PerspectiveDialog__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDialog__Group__2__Impl();
@@ -22983,23 +22869,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6640:1: rule__PerspectiveDialog__Group__2__Impl : ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6609: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:6644:1: ( ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6645:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6613:1: ( ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6614:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6645:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6646:2: ( rule__PerspectiveDialog__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6614:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6615:2: ( rule__PerspectiveDialog__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6647:2: ( rule__PerspectiveDialog__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6647:3: rule__PerspectiveDialog__RefAssignment_2
+            // InternalPerspectiveDsl.g:6616:2: ( rule__PerspectiveDialog__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6616:3: rule__PerspectiveDialog__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDialog__RefAssignment_2();
@@ -23033,168 +22919,15 @@
     // $ANTLR end "rule__PerspectiveDialog__Group__2__Impl"
 
 
-    // $ANTLR start "rule__PerspectiveBPMN__Group__0"
-    // InternalPerspectiveDsl.g:6656: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:6660:1: ( rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 )
-            // InternalPerspectiveDsl.g:6661:2: rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1
-            {
-            pushFollow(FOLLOW_34);
-            rule__PerspectiveBPMN__Group__0__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__PerspectiveBPMN__Group__1();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__PerspectiveBPMN__Group__0"
-
-
-    // $ANTLR start "rule__PerspectiveBPMN__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6668:1: rule__PerspectiveBPMN__Group__0__Impl : ( () ) ;
-    public final void rule__PerspectiveBPMN__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalPerspectiveDsl.g:6672:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6673:1: ( () )
-            {
-            // InternalPerspectiveDsl.g:6673:1: ( () )
-            // InternalPerspectiveDsl.g:6674:2: ()
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); 
-            }
-            // InternalPerspectiveDsl.g:6675:2: ()
-            // InternalPerspectiveDsl.g:6675:3: 
-            {
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__PerspectiveBPMN__Group__0__Impl"
-
-
-    // $ANTLR start "rule__PerspectiveBPMN__Group__1"
-    // InternalPerspectiveDsl.g:6683: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:6687:1: ( rule__PerspectiveBPMN__Group__1__Impl )
-            // InternalPerspectiveDsl.g:6688:2: rule__PerspectiveBPMN__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__PerspectiveBPMN__Group__1__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__PerspectiveBPMN__Group__1"
-
-
-    // $ANTLR start "rule__PerspectiveBPMN__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6694:1: rule__PerspectiveBPMN__Group__1__Impl : ( 'bpmn' ) ;
-    public final void rule__PerspectiveBPMN__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalPerspectiveDsl.g:6698:1: ( ( 'bpmn' ) )
-            // InternalPerspectiveDsl.g:6699:1: ( 'bpmn' )
-            {
-            // InternalPerspectiveDsl.g:6699:1: ( 'bpmn' )
-            // InternalPerspectiveDsl.g:6700:2: 'bpmn'
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); 
-            }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__PerspectiveBPMN__Group__1__Impl"
-
-
     // $ANTLR start "rule__PerspectiveKanban__Group__0"
-    // InternalPerspectiveDsl.g:6710:1: rule__PerspectiveKanban__Group__0 : rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 ;
+    // InternalPerspectiveDsl.g:6625: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:6714:1: ( rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 )
-            // InternalPerspectiveDsl.g:6715:2: rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1
+            // InternalPerspectiveDsl.g:6629:1: ( rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 )
+            // InternalPerspectiveDsl.g:6630:2: rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1
             {
             pushFollow(FOLLOW_24);
             rule__PerspectiveKanban__Group__0__Impl();
@@ -23225,23 +22958,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6722:1: rule__PerspectiveKanban__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6637:1: rule__PerspectiveKanban__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveKanban__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6726:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6727:1: ( () )
+            // InternalPerspectiveDsl.g:6641:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6642:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6727:1: ( () )
-            // InternalPerspectiveDsl.g:6728:2: ()
+            // InternalPerspectiveDsl.g:6642:1: ( () )
+            // InternalPerspectiveDsl.g:6643:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getPerspectiveKanbanAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6729:2: ()
-            // InternalPerspectiveDsl.g:6729:3: 
+            // InternalPerspectiveDsl.g:6644:2: ()
+            // InternalPerspectiveDsl.g:6644:3: 
             {
             }
 
@@ -23266,16 +22999,16 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__1"
-    // InternalPerspectiveDsl.g:6737:1: rule__PerspectiveKanban__Group__1 : rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 ;
+    // InternalPerspectiveDsl.g:6652: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:6741:1: ( rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 )
-            // InternalPerspectiveDsl.g:6742:2: rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2
+            // InternalPerspectiveDsl.g:6656:1: ( rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 )
+            // InternalPerspectiveDsl.g:6657:2: rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_34);
             rule__PerspectiveKanban__Group__1__Impl();
 
             state._fsp--;
@@ -23304,22 +23037,22 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6749:1: rule__PerspectiveKanban__Group__1__Impl : ( 'kanban' ) ;
+    // InternalPerspectiveDsl.g:6664:1: rule__PerspectiveKanban__Group__1__Impl : ( 'kanban' ) ;
     public final void rule__PerspectiveKanban__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6753:1: ( ( 'kanban' ) )
-            // InternalPerspectiveDsl.g:6754:1: ( 'kanban' )
+            // InternalPerspectiveDsl.g:6668:1: ( ( 'kanban' ) )
+            // InternalPerspectiveDsl.g:6669:1: ( 'kanban' )
             {
-            // InternalPerspectiveDsl.g:6754:1: ( 'kanban' )
-            // InternalPerspectiveDsl.g:6755:2: 'kanban'
+            // InternalPerspectiveDsl.g:6669:1: ( 'kanban' )
+            // InternalPerspectiveDsl.g:6670:2: 'kanban'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getKanbanKeyword_1()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveKanbanAccess().getKanbanKeyword_1()); 
             }
@@ -23345,14 +23078,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__2"
-    // InternalPerspectiveDsl.g:6764:1: rule__PerspectiveKanban__Group__2 : rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 ;
+    // InternalPerspectiveDsl.g:6679: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:6768:1: ( rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 )
-            // InternalPerspectiveDsl.g:6769:2: rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3
+            // InternalPerspectiveDsl.g:6683:1: ( rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 )
+            // InternalPerspectiveDsl.g:6684:2: rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__2__Impl();
@@ -23383,22 +23116,22 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6776:1: rule__PerspectiveKanban__Group__2__Impl : ( 'of' ) ;
+    // InternalPerspectiveDsl.g:6691:1: rule__PerspectiveKanban__Group__2__Impl : ( 'of' ) ;
     public final void rule__PerspectiveKanban__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6780:1: ( ( 'of' ) )
-            // InternalPerspectiveDsl.g:6781:1: ( 'of' )
+            // InternalPerspectiveDsl.g:6695:1: ( ( 'of' ) )
+            // InternalPerspectiveDsl.g:6696:1: ( 'of' )
             {
-            // InternalPerspectiveDsl.g:6781:1: ( 'of' )
-            // InternalPerspectiveDsl.g:6782:2: 'of'
+            // InternalPerspectiveDsl.g:6696:1: ( 'of' )
+            // InternalPerspectiveDsl.g:6697:2: 'of'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getOfKeyword_2()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveKanbanAccess().getOfKeyword_2()); 
             }
@@ -23424,16 +23157,16 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__3"
-    // InternalPerspectiveDsl.g:6791:1: rule__PerspectiveKanban__Group__3 : rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 ;
+    // InternalPerspectiveDsl.g:6706: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:6795:1: ( rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 )
-            // InternalPerspectiveDsl.g:6796:2: rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4
+            // InternalPerspectiveDsl.g:6710:1: ( rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 )
+            // InternalPerspectiveDsl.g:6711:2: rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__PerspectiveKanban__Group__3__Impl();
 
             state._fsp--;
@@ -23462,23 +23195,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__3__Impl"
-    // InternalPerspectiveDsl.g:6803:1: rule__PerspectiveKanban__Group__3__Impl : ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:6718: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:6807:1: ( ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:6808:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:6722:1: ( ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:6723:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:6808:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
-            // InternalPerspectiveDsl.g:6809:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:6723:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:6724:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDtoRefAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:6810:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
-            // InternalPerspectiveDsl.g:6810:3: rule__PerspectiveKanban__DtoRefAssignment_3
+            // InternalPerspectiveDsl.g:6725:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:6725:3: rule__PerspectiveKanban__DtoRefAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__DtoRefAssignment_3();
@@ -23513,14 +23246,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__4"
-    // InternalPerspectiveDsl.g:6818:1: rule__PerspectiveKanban__Group__4 : rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 ;
+    // InternalPerspectiveDsl.g:6733: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:6822:1: ( rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 )
-            // InternalPerspectiveDsl.g:6823:2: rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5
+            // InternalPerspectiveDsl.g:6737:1: ( rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 )
+            // InternalPerspectiveDsl.g:6738:2: rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__4__Impl();
@@ -23551,22 +23284,22 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__4__Impl"
-    // InternalPerspectiveDsl.g:6830:1: rule__PerspectiveKanban__Group__4__Impl : ( 'card' ) ;
+    // InternalPerspectiveDsl.g:6745:1: rule__PerspectiveKanban__Group__4__Impl : ( 'card' ) ;
     public final void rule__PerspectiveKanban__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6834:1: ( ( 'card' ) )
-            // InternalPerspectiveDsl.g:6835:1: ( 'card' )
+            // InternalPerspectiveDsl.g:6749:1: ( ( 'card' ) )
+            // InternalPerspectiveDsl.g:6750:1: ( 'card' )
             {
-            // InternalPerspectiveDsl.g:6835:1: ( 'card' )
-            // InternalPerspectiveDsl.g:6836:2: 'card'
+            // InternalPerspectiveDsl.g:6750:1: ( 'card' )
+            // InternalPerspectiveDsl.g:6751:2: 'card'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardKeyword_4()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveKanbanAccess().getCardKeyword_4()); 
             }
@@ -23592,14 +23325,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__5"
-    // InternalPerspectiveDsl.g:6845:1: rule__PerspectiveKanban__Group__5 : rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 ;
+    // InternalPerspectiveDsl.g:6760: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:6849:1: ( rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 )
-            // InternalPerspectiveDsl.g:6850:2: rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6
+            // InternalPerspectiveDsl.g:6764:1: ( rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 )
+            // InternalPerspectiveDsl.g:6765:2: rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6
             {
             pushFollow(FOLLOW_33);
             rule__PerspectiveKanban__Group__5__Impl();
@@ -23630,23 +23363,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__5__Impl"
-    // InternalPerspectiveDsl.g:6857:1: rule__PerspectiveKanban__Group__5__Impl : ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:6772: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:6861:1: ( ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:6862:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
+            // InternalPerspectiveDsl.g:6776:1: ( ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:6777:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:6862:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
-            // InternalPerspectiveDsl.g:6863:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
+            // InternalPerspectiveDsl.g:6777:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
+            // InternalPerspectiveDsl.g:6778:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardRefAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:6864:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
-            // InternalPerspectiveDsl.g:6864:3: rule__PerspectiveKanban__CardRefAssignment_5
+            // InternalPerspectiveDsl.g:6779:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
+            // InternalPerspectiveDsl.g:6779:3: rule__PerspectiveKanban__CardRefAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__CardRefAssignment_5();
@@ -23681,14 +23414,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__6"
-    // InternalPerspectiveDsl.g:6872:1: rule__PerspectiveKanban__Group__6 : rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 ;
+    // InternalPerspectiveDsl.g:6787: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:6876:1: ( rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 )
-            // InternalPerspectiveDsl.g:6877:2: rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7
+            // InternalPerspectiveDsl.g:6791:1: ( rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 )
+            // InternalPerspectiveDsl.g:6792:2: rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__6__Impl();
@@ -23719,17 +23452,17 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__6__Impl"
-    // InternalPerspectiveDsl.g:6884:1: rule__PerspectiveKanban__Group__6__Impl : ( 'dialog' ) ;
+    // InternalPerspectiveDsl.g:6799:1: rule__PerspectiveKanban__Group__6__Impl : ( 'dialog' ) ;
     public final void rule__PerspectiveKanban__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6888:1: ( ( 'dialog' ) )
-            // InternalPerspectiveDsl.g:6889:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:6803:1: ( ( 'dialog' ) )
+            // InternalPerspectiveDsl.g:6804:1: ( 'dialog' )
             {
-            // InternalPerspectiveDsl.g:6889:1: ( 'dialog' )
-            // InternalPerspectiveDsl.g:6890:2: 'dialog'
+            // InternalPerspectiveDsl.g:6804:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:6805:2: 'dialog'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogKeyword_6()); 
@@ -23760,14 +23493,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__7"
-    // InternalPerspectiveDsl.g:6899:1: rule__PerspectiveKanban__Group__7 : rule__PerspectiveKanban__Group__7__Impl ;
+    // InternalPerspectiveDsl.g:6814: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:6903:1: ( rule__PerspectiveKanban__Group__7__Impl )
-            // InternalPerspectiveDsl.g:6904:2: rule__PerspectiveKanban__Group__7__Impl
+            // InternalPerspectiveDsl.g:6818:1: ( rule__PerspectiveKanban__Group__7__Impl )
+            // InternalPerspectiveDsl.g:6819:2: rule__PerspectiveKanban__Group__7__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__Group__7__Impl();
@@ -23793,23 +23526,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__7__Impl"
-    // InternalPerspectiveDsl.g:6910:1: rule__PerspectiveKanban__Group__7__Impl : ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) ;
+    // InternalPerspectiveDsl.g:6825: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:6914:1: ( ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) )
-            // InternalPerspectiveDsl.g:6915:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
+            // InternalPerspectiveDsl.g:6829:1: ( ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) )
+            // InternalPerspectiveDsl.g:6830:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
             {
-            // InternalPerspectiveDsl.g:6915:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
-            // InternalPerspectiveDsl.g:6916:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
+            // InternalPerspectiveDsl.g:6830:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
+            // InternalPerspectiveDsl.g:6831:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogRefAssignment_7()); 
             }
-            // InternalPerspectiveDsl.g:6917:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
-            // InternalPerspectiveDsl.g:6917:3: rule__PerspectiveKanban__DialogRefAssignment_7
+            // InternalPerspectiveDsl.g:6832:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
+            // InternalPerspectiveDsl.g:6832:3: rule__PerspectiveKanban__DialogRefAssignment_7
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__DialogRefAssignment_7();
@@ -23844,16 +23577,16 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__0"
-    // InternalPerspectiveDsl.g:6926:1: rule__PerspectiveWelcome__Group__0 : rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 ;
+    // InternalPerspectiveDsl.g:6841: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:6930:1: ( rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 )
-            // InternalPerspectiveDsl.g:6931:2: rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1
+            // InternalPerspectiveDsl.g:6845:1: ( rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 )
+            // InternalPerspectiveDsl.g:6846:2: rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_36);
             rule__PerspectiveWelcome__Group__0__Impl();
 
             state._fsp--;
@@ -23882,23 +23615,23 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6938:1: rule__PerspectiveWelcome__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6853:1: rule__PerspectiveWelcome__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveWelcome__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6942:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6943:1: ( () )
+            // InternalPerspectiveDsl.g:6857:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6858:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6943:1: ( () )
-            // InternalPerspectiveDsl.g:6944:2: ()
+            // InternalPerspectiveDsl.g:6858:1: ( () )
+            // InternalPerspectiveDsl.g:6859:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeAccess().getPerspectiveWelcomeAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6945:2: ()
-            // InternalPerspectiveDsl.g:6945:3: 
+            // InternalPerspectiveDsl.g:6860:2: ()
+            // InternalPerspectiveDsl.g:6860:3: 
             {
             }
 
@@ -23923,14 +23656,14 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__1"
-    // InternalPerspectiveDsl.g:6953:1: rule__PerspectiveWelcome__Group__1 : rule__PerspectiveWelcome__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:6868:1: rule__PerspectiveWelcome__Group__1 : rule__PerspectiveWelcome__Group__1__Impl ;
     public final void rule__PerspectiveWelcome__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6957:1: ( rule__PerspectiveWelcome__Group__1__Impl )
-            // InternalPerspectiveDsl.g:6958:2: rule__PerspectiveWelcome__Group__1__Impl
+            // InternalPerspectiveDsl.g:6872:1: ( rule__PerspectiveWelcome__Group__1__Impl )
+            // InternalPerspectiveDsl.g:6873:2: rule__PerspectiveWelcome__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveWelcome__Group__1__Impl();
@@ -23956,22 +23689,22 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6964:1: rule__PerspectiveWelcome__Group__1__Impl : ( 'welcome' ) ;
+    // InternalPerspectiveDsl.g:6879:1: rule__PerspectiveWelcome__Group__1__Impl : ( 'welcome' ) ;
     public final void rule__PerspectiveWelcome__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6968:1: ( ( 'welcome' ) )
-            // InternalPerspectiveDsl.g:6969:1: ( 'welcome' )
+            // InternalPerspectiveDsl.g:6883:1: ( ( 'welcome' ) )
+            // InternalPerspectiveDsl.g:6884:1: ( 'welcome' )
             {
-            // InternalPerspectiveDsl.g:6969:1: ( 'welcome' )
-            // InternalPerspectiveDsl.g:6970:2: 'welcome'
+            // InternalPerspectiveDsl.g:6884:1: ( 'welcome' )
+            // InternalPerspectiveDsl.g:6885:2: 'welcome'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeAccess().getWelcomeKeyword_1()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveWelcomeAccess().getWelcomeKeyword_1()); 
             }
@@ -23997,16 +23730,16 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__0"
-    // InternalPerspectiveDsl.g:6980:1: rule__PerspectiveSearch__Group__0 : rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 ;
+    // InternalPerspectiveDsl.g:6895:1: rule__PerspectiveSearch__Group__0 : rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 ;
     public final void rule__PerspectiveSearch__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6984:1: ( rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 )
-            // InternalPerspectiveDsl.g:6985:2: rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1
+            // InternalPerspectiveDsl.g:6899:1: ( rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 )
+            // InternalPerspectiveDsl.g:6900:2: rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__PerspectiveSearch__Group__0__Impl();
 
             state._fsp--;
@@ -24035,23 +23768,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6992:1: rule__PerspectiveSearch__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6907:1: rule__PerspectiveSearch__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSearch__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6996:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6997:1: ( () )
+            // InternalPerspectiveDsl.g:6911:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6912:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6997:1: ( () )
-            // InternalPerspectiveDsl.g:6998:2: ()
+            // InternalPerspectiveDsl.g:6912:1: ( () )
+            // InternalPerspectiveDsl.g:6913:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getPerspectiveSearchAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6999:2: ()
-            // InternalPerspectiveDsl.g:6999:3: 
+            // InternalPerspectiveDsl.g:6914:2: ()
+            // InternalPerspectiveDsl.g:6914:3: 
             {
             }
 
@@ -24076,16 +23809,16 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__1"
-    // InternalPerspectiveDsl.g:7007:1: rule__PerspectiveSearch__Group__1 : rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 ;
+    // InternalPerspectiveDsl.g:6922:1: rule__PerspectiveSearch__Group__1 : rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 ;
     public final void rule__PerspectiveSearch__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7011:1: ( rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 )
-            // InternalPerspectiveDsl.g:7012:2: rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2
+            // InternalPerspectiveDsl.g:6926:1: ( rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 )
+            // InternalPerspectiveDsl.g:6927:2: rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             rule__PerspectiveSearch__Group__1__Impl();
 
             state._fsp--;
@@ -24114,22 +23847,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7019:1: rule__PerspectiveSearch__Group__1__Impl : ( 'search' ) ;
+    // InternalPerspectiveDsl.g:6934:1: rule__PerspectiveSearch__Group__1__Impl : ( 'search' ) ;
     public final void rule__PerspectiveSearch__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7023:1: ( ( 'search' ) )
-            // InternalPerspectiveDsl.g:7024:1: ( 'search' )
+            // InternalPerspectiveDsl.g:6938:1: ( ( 'search' ) )
+            // InternalPerspectiveDsl.g:6939:1: ( 'search' )
             {
-            // InternalPerspectiveDsl.g:7024:1: ( 'search' )
-            // InternalPerspectiveDsl.g:7025:2: 'search'
+            // InternalPerspectiveDsl.g:6939:1: ( 'search' )
+            // InternalPerspectiveDsl.g:6940:2: 'search'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getSearchKeyword_1()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getSearchKeyword_1()); 
             }
@@ -24155,14 +23888,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__2"
-    // InternalPerspectiveDsl.g:7034:1: rule__PerspectiveSearch__Group__2 : rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 ;
+    // InternalPerspectiveDsl.g:6949:1: rule__PerspectiveSearch__Group__2 : rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 ;
     public final void rule__PerspectiveSearch__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7038:1: ( rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 )
-            // InternalPerspectiveDsl.g:7039:2: rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3
+            // InternalPerspectiveDsl.g:6953:1: ( rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 )
+            // InternalPerspectiveDsl.g:6954:2: rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSearch__Group__2__Impl();
@@ -24193,22 +23926,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7046:1: rule__PerspectiveSearch__Group__2__Impl : ( 'in' ) ;
+    // InternalPerspectiveDsl.g:6961:1: rule__PerspectiveSearch__Group__2__Impl : ( 'in' ) ;
     public final void rule__PerspectiveSearch__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7050:1: ( ( 'in' ) )
-            // InternalPerspectiveDsl.g:7051:1: ( 'in' )
+            // InternalPerspectiveDsl.g:6965:1: ( ( 'in' ) )
+            // InternalPerspectiveDsl.g:6966:1: ( 'in' )
             {
-            // InternalPerspectiveDsl.g:7051:1: ( 'in' )
-            // InternalPerspectiveDsl.g:7052:2: 'in'
+            // InternalPerspectiveDsl.g:6966:1: ( 'in' )
+            // InternalPerspectiveDsl.g:6967:2: 'in'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getInKeyword_2()); 
             }
-            match(input,84,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getInKeyword_2()); 
             }
@@ -24234,16 +23967,16 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__3"
-    // InternalPerspectiveDsl.g:7061:1: rule__PerspectiveSearch__Group__3 : rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 ;
+    // InternalPerspectiveDsl.g:6976:1: rule__PerspectiveSearch__Group__3 : rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 ;
     public final void rule__PerspectiveSearch__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7065:1: ( rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 )
-            // InternalPerspectiveDsl.g:7066:2: rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4
+            // InternalPerspectiveDsl.g:6980:1: ( rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 )
+            // InternalPerspectiveDsl.g:6981:2: rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             rule__PerspectiveSearch__Group__3__Impl();
 
             state._fsp--;
@@ -24272,23 +24005,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7073:1: rule__PerspectiveSearch__Group__3__Impl : ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:6988:1: rule__PerspectiveSearch__Group__3__Impl : ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) ;
     public final void rule__PerspectiveSearch__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7077:1: ( ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:7078:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:6992:1: ( ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:6993:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:7078:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
-            // InternalPerspectiveDsl.g:7079:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:6993:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:6994:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDtoRefAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:7080:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
-            // InternalPerspectiveDsl.g:7080:3: rule__PerspectiveSearch__DtoRefAssignment_3
+            // InternalPerspectiveDsl.g:6995:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:6995:3: rule__PerspectiveSearch__DtoRefAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__DtoRefAssignment_3();
@@ -24323,14 +24056,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__4"
-    // InternalPerspectiveDsl.g:7088:1: rule__PerspectiveSearch__Group__4 : rule__PerspectiveSearch__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:7003:1: rule__PerspectiveSearch__Group__4 : rule__PerspectiveSearch__Group__4__Impl ;
     public final void rule__PerspectiveSearch__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7092:1: ( rule__PerspectiveSearch__Group__4__Impl )
-            // InternalPerspectiveDsl.g:7093:2: rule__PerspectiveSearch__Group__4__Impl
+            // InternalPerspectiveDsl.g:7007:1: ( rule__PerspectiveSearch__Group__4__Impl )
+            // InternalPerspectiveDsl.g:7008:2: rule__PerspectiveSearch__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group__4__Impl();
@@ -24356,23 +24089,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__4__Impl"
-    // InternalPerspectiveDsl.g:7099:1: rule__PerspectiveSearch__Group__4__Impl : ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) ;
+    // InternalPerspectiveDsl.g:7014:1: rule__PerspectiveSearch__Group__4__Impl : ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) ;
     public final void rule__PerspectiveSearch__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7103:1: ( ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) )
-            // InternalPerspectiveDsl.g:7104:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
+            // InternalPerspectiveDsl.g:7018:1: ( ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) )
+            // InternalPerspectiveDsl.g:7019:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
             {
-            // InternalPerspectiveDsl.g:7104:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
-            // InternalPerspectiveDsl.g:7105:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
+            // InternalPerspectiveDsl.g:7019:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
+            // InternalPerspectiveDsl.g:7020:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4()); 
             }
-            // InternalPerspectiveDsl.g:7106:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
-            // InternalPerspectiveDsl.g:7106:3: rule__PerspectiveSearch__UnorderedGroup_4
+            // InternalPerspectiveDsl.g:7021:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
+            // InternalPerspectiveDsl.g:7021:3: rule__PerspectiveSearch__UnorderedGroup_4
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__UnorderedGroup_4();
@@ -24407,16 +24140,16 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__0"
-    // InternalPerspectiveDsl.g:7115:1: rule__PerspectiveSearch__Group_4_0__0 : rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 ;
+    // InternalPerspectiveDsl.g:7030:1: rule__PerspectiveSearch__Group_4_0__0 : rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 ;
     public final void rule__PerspectiveSearch__Group_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7119:1: ( rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 )
-            // InternalPerspectiveDsl.g:7120:2: rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1
+            // InternalPerspectiveDsl.g:7034:1: ( rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 )
+            // InternalPerspectiveDsl.g:7035:2: rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             rule__PerspectiveSearch__Group_4_0__0__Impl();
 
             state._fsp--;
@@ -24445,22 +24178,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__0__Impl"
-    // InternalPerspectiveDsl.g:7127:1: rule__PerspectiveSearch__Group_4_0__0__Impl : ( 'depth' ) ;
+    // InternalPerspectiveDsl.g:7042:1: rule__PerspectiveSearch__Group_4_0__0__Impl : ( 'depth' ) ;
     public final void rule__PerspectiveSearch__Group_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7131:1: ( ( 'depth' ) )
-            // InternalPerspectiveDsl.g:7132:1: ( 'depth' )
+            // InternalPerspectiveDsl.g:7046:1: ( ( 'depth' ) )
+            // InternalPerspectiveDsl.g:7047:1: ( 'depth' )
             {
-            // InternalPerspectiveDsl.g:7132:1: ( 'depth' )
-            // InternalPerspectiveDsl.g:7133:2: 'depth'
+            // InternalPerspectiveDsl.g:7047:1: ( 'depth' )
+            // InternalPerspectiveDsl.g:7048:2: 'depth'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthKeyword_4_0_0()); 
             }
-            match(input,85,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getDepthKeyword_4_0_0()); 
             }
@@ -24486,14 +24219,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__1"
-    // InternalPerspectiveDsl.g:7142:1: rule__PerspectiveSearch__Group_4_0__1 : rule__PerspectiveSearch__Group_4_0__1__Impl ;
+    // InternalPerspectiveDsl.g:7057:1: rule__PerspectiveSearch__Group_4_0__1 : rule__PerspectiveSearch__Group_4_0__1__Impl ;
     public final void rule__PerspectiveSearch__Group_4_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7146:1: ( rule__PerspectiveSearch__Group_4_0__1__Impl )
-            // InternalPerspectiveDsl.g:7147:2: rule__PerspectiveSearch__Group_4_0__1__Impl
+            // InternalPerspectiveDsl.g:7061:1: ( rule__PerspectiveSearch__Group_4_0__1__Impl )
+            // InternalPerspectiveDsl.g:7062:2: rule__PerspectiveSearch__Group_4_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group_4_0__1__Impl();
@@ -24519,23 +24252,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__1__Impl"
-    // InternalPerspectiveDsl.g:7153:1: rule__PerspectiveSearch__Group_4_0__1__Impl : ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:7068:1: rule__PerspectiveSearch__Group_4_0__1__Impl : ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) ;
     public final void rule__PerspectiveSearch__Group_4_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7157:1: ( ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) )
-            // InternalPerspectiveDsl.g:7158:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
+            // InternalPerspectiveDsl.g:7072:1: ( ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) )
+            // InternalPerspectiveDsl.g:7073:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:7158:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
-            // InternalPerspectiveDsl.g:7159:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
+            // InternalPerspectiveDsl.g:7073:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
+            // InternalPerspectiveDsl.g:7074:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthAssignment_4_0_1()); 
             }
-            // InternalPerspectiveDsl.g:7160:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
-            // InternalPerspectiveDsl.g:7160:3: rule__PerspectiveSearch__DepthAssignment_4_0_1
+            // InternalPerspectiveDsl.g:7075:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
+            // InternalPerspectiveDsl.g:7075:3: rule__PerspectiveSearch__DepthAssignment_4_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__DepthAssignment_4_0_1();
@@ -24570,16 +24303,16 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__0"
-    // InternalPerspectiveDsl.g:7169:1: rule__PerspectiveSearch__Group_4_1__0 : rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 ;
+    // InternalPerspectiveDsl.g:7084:1: rule__PerspectiveSearch__Group_4_1__0 : rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 ;
     public final void rule__PerspectiveSearch__Group_4_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7173:1: ( rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 )
-            // InternalPerspectiveDsl.g:7174:2: rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1
+            // InternalPerspectiveDsl.g:7088:1: ( rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 )
+            // InternalPerspectiveDsl.g:7089:2: rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             rule__PerspectiveSearch__Group_4_1__0__Impl();
 
             state._fsp--;
@@ -24608,22 +24341,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__0__Impl"
-    // InternalPerspectiveDsl.g:7181:1: rule__PerspectiveSearch__Group_4_1__0__Impl : ( 'filterColumns' ) ;
+    // InternalPerspectiveDsl.g:7096:1: rule__PerspectiveSearch__Group_4_1__0__Impl : ( 'filterColumns' ) ;
     public final void rule__PerspectiveSearch__Group_4_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7185:1: ( ( 'filterColumns' ) )
-            // InternalPerspectiveDsl.g:7186:1: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:7100:1: ( ( 'filterColumns' ) )
+            // InternalPerspectiveDsl.g:7101:1: ( 'filterColumns' )
             {
-            // InternalPerspectiveDsl.g:7186:1: ( 'filterColumns' )
-            // InternalPerspectiveDsl.g:7187:2: 'filterColumns'
+            // InternalPerspectiveDsl.g:7101:1: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:7102:2: 'filterColumns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColumnsKeyword_4_1_0()); 
             }
-            match(input,86,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getFilterColumnsKeyword_4_1_0()); 
             }
@@ -24649,14 +24382,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__1"
-    // InternalPerspectiveDsl.g:7196:1: rule__PerspectiveSearch__Group_4_1__1 : rule__PerspectiveSearch__Group_4_1__1__Impl ;
+    // InternalPerspectiveDsl.g:7111:1: rule__PerspectiveSearch__Group_4_1__1 : rule__PerspectiveSearch__Group_4_1__1__Impl ;
     public final void rule__PerspectiveSearch__Group_4_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7200:1: ( rule__PerspectiveSearch__Group_4_1__1__Impl )
-            // InternalPerspectiveDsl.g:7201:2: rule__PerspectiveSearch__Group_4_1__1__Impl
+            // InternalPerspectiveDsl.g:7115:1: ( rule__PerspectiveSearch__Group_4_1__1__Impl )
+            // InternalPerspectiveDsl.g:7116:2: rule__PerspectiveSearch__Group_4_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group_4_1__1__Impl();
@@ -24682,23 +24415,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__1__Impl"
-    // InternalPerspectiveDsl.g:7207:1: rule__PerspectiveSearch__Group_4_1__1__Impl : ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:7122:1: rule__PerspectiveSearch__Group_4_1__1__Impl : ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) ;
     public final void rule__PerspectiveSearch__Group_4_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7211:1: ( ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) )
-            // InternalPerspectiveDsl.g:7212:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
+            // InternalPerspectiveDsl.g:7126:1: ( ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) )
+            // InternalPerspectiveDsl.g:7127:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:7212:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
-            // InternalPerspectiveDsl.g:7213:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
+            // InternalPerspectiveDsl.g:7127:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
+            // InternalPerspectiveDsl.g:7128:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColsAssignment_4_1_1()); 
             }
-            // InternalPerspectiveDsl.g:7214:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
-            // InternalPerspectiveDsl.g:7214:3: rule__PerspectiveSearch__FilterColsAssignment_4_1_1
+            // InternalPerspectiveDsl.g:7129:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
+            // InternalPerspectiveDsl.g:7129:3: rule__PerspectiveSearch__FilterColsAssignment_4_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__FilterColsAssignment_4_1_1();
@@ -24733,16 +24466,16 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__0"
-    // InternalPerspectiveDsl.g:7223:1: rule__PerspectiveDataInterchange__Group__0 : rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 ;
+    // InternalPerspectiveDsl.g:7138:1: rule__PerspectiveDataInterchange__Group__0 : rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 ;
     public final void rule__PerspectiveDataInterchange__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7227:1: ( rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 )
-            // InternalPerspectiveDsl.g:7228:2: rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1
+            // InternalPerspectiveDsl.g:7142:1: ( rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 )
+            // InternalPerspectiveDsl.g:7143:2: rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             rule__PerspectiveDataInterchange__Group__0__Impl();
 
             state._fsp--;
@@ -24771,23 +24504,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7235:1: rule__PerspectiveDataInterchange__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7150:1: rule__PerspectiveDataInterchange__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDataInterchange__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7239:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7240:1: ( () )
+            // InternalPerspectiveDsl.g:7154:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7155:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7240:1: ( () )
-            // InternalPerspectiveDsl.g:7241:2: ()
+            // InternalPerspectiveDsl.g:7155:1: ( () )
+            // InternalPerspectiveDsl.g:7156:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getPerspectiveDataInterchangeAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7242:2: ()
-            // InternalPerspectiveDsl.g:7242:3: 
+            // InternalPerspectiveDsl.g:7157:2: ()
+            // InternalPerspectiveDsl.g:7157:3: 
             {
             }
 
@@ -24812,14 +24545,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__1"
-    // InternalPerspectiveDsl.g:7250:1: rule__PerspectiveDataInterchange__Group__1 : rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 ;
+    // InternalPerspectiveDsl.g:7165:1: rule__PerspectiveDataInterchange__Group__1 : rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 ;
     public final void rule__PerspectiveDataInterchange__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7254:1: ( rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 )
-            // InternalPerspectiveDsl.g:7255:2: rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2
+            // InternalPerspectiveDsl.g:7169:1: ( rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 )
+            // InternalPerspectiveDsl.g:7170:2: rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveDataInterchange__Group__1__Impl();
@@ -24850,22 +24583,22 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7262:1: rule__PerspectiveDataInterchange__Group__1__Impl : ( 'dataInterchange' ) ;
+    // InternalPerspectiveDsl.g:7177:1: rule__PerspectiveDataInterchange__Group__1__Impl : ( 'dataInterchange' ) ;
     public final void rule__PerspectiveDataInterchange__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7266:1: ( ( 'dataInterchange' ) )
-            // InternalPerspectiveDsl.g:7267:1: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:7181:1: ( ( 'dataInterchange' ) )
+            // InternalPerspectiveDsl.g:7182:1: ( 'dataInterchange' )
             {
-            // InternalPerspectiveDsl.g:7267:1: ( 'dataInterchange' )
-            // InternalPerspectiveDsl.g:7268:2: 'dataInterchange'
+            // InternalPerspectiveDsl.g:7182:1: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:7183:2: 'dataInterchange'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getDataInterchangeKeyword_1()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,86,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveDataInterchangeAccess().getDataInterchangeKeyword_1()); 
             }
@@ -24891,14 +24624,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__2"
-    // InternalPerspectiveDsl.g:7277:1: rule__PerspectiveDataInterchange__Group__2 : rule__PerspectiveDataInterchange__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7192:1: rule__PerspectiveDataInterchange__Group__2 : rule__PerspectiveDataInterchange__Group__2__Impl ;
     public final void rule__PerspectiveDataInterchange__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7281:1: ( rule__PerspectiveDataInterchange__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7282:2: rule__PerspectiveDataInterchange__Group__2__Impl
+            // InternalPerspectiveDsl.g:7196:1: ( rule__PerspectiveDataInterchange__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7197:2: rule__PerspectiveDataInterchange__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDataInterchange__Group__2__Impl();
@@ -24924,23 +24657,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7288:1: rule__PerspectiveDataInterchange__Group__2__Impl : ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7203:1: rule__PerspectiveDataInterchange__Group__2__Impl : ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) ;
     public final void rule__PerspectiveDataInterchange__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7292:1: ( ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7293:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7207:1: ( ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7208:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7293:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7294:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7208:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7209:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7295:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:7295:3: rule__PerspectiveDataInterchange__RefAssignment_2
+            // InternalPerspectiveDsl.g:7210:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7210:3: rule__PerspectiveDataInterchange__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDataInterchange__RefAssignment_2();
@@ -24975,16 +24708,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0"
-    // InternalPerspectiveDsl.g:7304:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    // InternalPerspectiveDsl.g:7219:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
     public final void rule__XImportDeclaration__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7308:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
-            // InternalPerspectiveDsl.g:7309:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            // InternalPerspectiveDsl.g:7223:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalPerspectiveDsl.g:7224:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
             {
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_42);
             rule__XImportDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -25013,23 +24746,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7316:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7231:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7320:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7321:1: ( () )
+            // InternalPerspectiveDsl.g:7235:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7236:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7321:1: ( () )
-            // InternalPerspectiveDsl.g:7322:2: ()
+            // InternalPerspectiveDsl.g:7236:1: ( () )
+            // InternalPerspectiveDsl.g:7237:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7323:2: ()
-            // InternalPerspectiveDsl.g:7323:3: 
+            // InternalPerspectiveDsl.g:7238:2: ()
+            // InternalPerspectiveDsl.g:7238:3: 
             {
             }
 
@@ -25054,16 +24787,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1"
-    // InternalPerspectiveDsl.g:7331:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    // InternalPerspectiveDsl.g:7246:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
     public final void rule__XImportDeclaration__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7335:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
-            // InternalPerspectiveDsl.g:7336:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            // InternalPerspectiveDsl.g:7250:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalPerspectiveDsl.g:7251:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
             {
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_43);
             rule__XImportDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -25092,17 +24825,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7343:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    // InternalPerspectiveDsl.g:7258:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
     public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7347:1: ( ( 'import' ) )
-            // InternalPerspectiveDsl.g:7348:1: ( 'import' )
+            // InternalPerspectiveDsl.g:7262:1: ( ( 'import' ) )
+            // InternalPerspectiveDsl.g:7263:1: ( 'import' )
             {
-            // InternalPerspectiveDsl.g:7348:1: ( 'import' )
-            // InternalPerspectiveDsl.g:7349:2: 'import'
+            // InternalPerspectiveDsl.g:7263:1: ( 'import' )
+            // InternalPerspectiveDsl.g:7264:2: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
@@ -25133,16 +24866,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2"
-    // InternalPerspectiveDsl.g:7358:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    // InternalPerspectiveDsl.g:7273:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
     public final void rule__XImportDeclaration__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7362:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
-            // InternalPerspectiveDsl.g:7363:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            // InternalPerspectiveDsl.g:7277:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalPerspectiveDsl.g:7278:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             rule__XImportDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -25171,23 +24904,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7370:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    // InternalPerspectiveDsl.g:7285:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
     public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7374:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
-            // InternalPerspectiveDsl.g:7375:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:7289:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:7290:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:7375:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
-            // InternalPerspectiveDsl.g:7376:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:7290:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:7291:2: ( rule__XImportDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:7377:2: ( rule__XImportDeclaration__Alternatives_2 )
-            // InternalPerspectiveDsl.g:7377:3: rule__XImportDeclaration__Alternatives_2
+            // InternalPerspectiveDsl.g:7292:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:7292:3: rule__XImportDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2();
@@ -25222,14 +24955,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3"
-    // InternalPerspectiveDsl.g:7385:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:7300:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
     public final void rule__XImportDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7389:1: ( rule__XImportDeclaration__Group__3__Impl )
-            // InternalPerspectiveDsl.g:7390:2: rule__XImportDeclaration__Group__3__Impl
+            // InternalPerspectiveDsl.g:7304:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalPerspectiveDsl.g:7305:2: rule__XImportDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__3__Impl();
@@ -25255,33 +24988,33 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7396:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    // InternalPerspectiveDsl.g:7311:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7400:1: ( ( ( ';' )? ) )
-            // InternalPerspectiveDsl.g:7401:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:7315:1: ( ( ( ';' )? ) )
+            // InternalPerspectiveDsl.g:7316:1: ( ( ';' )? )
             {
-            // InternalPerspectiveDsl.g:7401:1: ( ( ';' )? )
-            // InternalPerspectiveDsl.g:7402:2: ( ';' )?
+            // InternalPerspectiveDsl.g:7316:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:7317:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
             }
-            // InternalPerspectiveDsl.g:7403:2: ( ';' )?
+            // InternalPerspectiveDsl.g:7318:2: ( ';' )?
             int alt58=2;
             int LA58_0 = input.LA(1);
 
-            if ( (LA58_0==88) ) {
+            if ( (LA58_0==87) ) {
                 alt58=1;
             }
             switch (alt58) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7403:3: ';'
+                    // InternalPerspectiveDsl.g:7318:3: ';'
                     {
-                    match(input,88,FOLLOW_2); if (state.failed) return ;
+                    match(input,87,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -25313,16 +25046,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
-    // InternalPerspectiveDsl.g:7412:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    // InternalPerspectiveDsl.g:7327:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
     public final void rule__XImportDeclaration__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7416:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
-            // InternalPerspectiveDsl.g:7417:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            // InternalPerspectiveDsl.g:7331:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:7332:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
             {
-            pushFollow(FOLLOW_46);
+            pushFollow(FOLLOW_45);
             rule__XImportDeclaration__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -25351,23 +25084,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:7424:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:7339:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7428:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
-            // InternalPerspectiveDsl.g:7429:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:7343:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalPerspectiveDsl.g:7344:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:7429:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
-            // InternalPerspectiveDsl.g:7430:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:7344:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:7345:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:7431:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
-            // InternalPerspectiveDsl.g:7431:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            // InternalPerspectiveDsl.g:7346:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:7346:3: rule__XImportDeclaration__StaticAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__StaticAssignment_2_0_0();
@@ -25402,16 +25135,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
-    // InternalPerspectiveDsl.g:7439:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    // InternalPerspectiveDsl.g:7354:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
     public final void rule__XImportDeclaration__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7443:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
-            // InternalPerspectiveDsl.g:7444:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            // InternalPerspectiveDsl.g:7358:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalPerspectiveDsl.g:7359:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
             {
-            pushFollow(FOLLOW_46);
+            pushFollow(FOLLOW_45);
             rule__XImportDeclaration__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -25440,22 +25173,22 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
-    // InternalPerspectiveDsl.g:7451:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    // InternalPerspectiveDsl.g:7366:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
     public final void rule__XImportDeclaration__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7455:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
-            // InternalPerspectiveDsl.g:7456:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalPerspectiveDsl.g:7370:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalPerspectiveDsl.g:7371:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
             {
-            // InternalPerspectiveDsl.g:7456:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
-            // InternalPerspectiveDsl.g:7457:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalPerspectiveDsl.g:7371:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalPerspectiveDsl.g:7372:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
             }
-            // InternalPerspectiveDsl.g:7458:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalPerspectiveDsl.g:7373:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             int alt59=2;
             int LA59_0 = input.LA(1);
 
@@ -25464,7 +25197,7 @@
             }
             switch (alt59) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7458:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    // InternalPerspectiveDsl.g:7373:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ExtensionAssignment_2_0_1();
@@ -25502,16 +25235,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
-    // InternalPerspectiveDsl.g:7466:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    // InternalPerspectiveDsl.g:7381:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
     public final void rule__XImportDeclaration__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7470:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
-            // InternalPerspectiveDsl.g:7471:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            // InternalPerspectiveDsl.g:7385:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalPerspectiveDsl.g:7386:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_46);
             rule__XImportDeclaration__Group_2_0__2__Impl();
 
             state._fsp--;
@@ -25540,23 +25273,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
-    // InternalPerspectiveDsl.g:7478:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:7393:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7482:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
-            // InternalPerspectiveDsl.g:7483:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalPerspectiveDsl.g:7397:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalPerspectiveDsl.g:7398:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:7483:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
-            // InternalPerspectiveDsl.g:7484:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalPerspectiveDsl.g:7398:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalPerspectiveDsl.g:7399:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
             }
-            // InternalPerspectiveDsl.g:7485:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
-            // InternalPerspectiveDsl.g:7485:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            // InternalPerspectiveDsl.g:7400:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalPerspectiveDsl.g:7400:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
@@ -25591,14 +25324,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
-    // InternalPerspectiveDsl.g:7493:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    // InternalPerspectiveDsl.g:7408:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
     public final void rule__XImportDeclaration__Group_2_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7497:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
-            // InternalPerspectiveDsl.g:7498:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            // InternalPerspectiveDsl.g:7412:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalPerspectiveDsl.g:7413:2: rule__XImportDeclaration__Group_2_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_0__3__Impl();
@@ -25624,23 +25357,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
-    // InternalPerspectiveDsl.g:7504:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:7419:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7508:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
-            // InternalPerspectiveDsl.g:7509:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalPerspectiveDsl.g:7423:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalPerspectiveDsl.g:7424:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:7509:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
-            // InternalPerspectiveDsl.g:7510:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalPerspectiveDsl.g:7424:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalPerspectiveDsl.g:7425:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
             }
-            // InternalPerspectiveDsl.g:7511:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
-            // InternalPerspectiveDsl.g:7511:3: rule__XImportDeclaration__Alternatives_2_0_3
+            // InternalPerspectiveDsl.g:7426:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalPerspectiveDsl.g:7426:3: rule__XImportDeclaration__Alternatives_2_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2_0_3();
@@ -25675,14 +25408,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
-    // InternalPerspectiveDsl.g:7520:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    // InternalPerspectiveDsl.g:7435:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
     public final void rule__XImportDeclaration__Group_2_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7524:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
-            // InternalPerspectiveDsl.g:7525:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            // InternalPerspectiveDsl.g:7439:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalPerspectiveDsl.g:7440:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
             {
             pushFollow(FOLLOW_7);
             rule__XImportDeclaration__Group_2_3__0__Impl();
@@ -25713,23 +25446,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
-    // InternalPerspectiveDsl.g:7532:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:7447:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
     public final void rule__XImportDeclaration__Group_2_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7536:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
-            // InternalPerspectiveDsl.g:7537:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalPerspectiveDsl.g:7451:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalPerspectiveDsl.g:7452:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:7537:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
-            // InternalPerspectiveDsl.g:7538:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalPerspectiveDsl.g:7452:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalPerspectiveDsl.g:7453:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
             }
-            // InternalPerspectiveDsl.g:7539:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
-            // InternalPerspectiveDsl.g:7539:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            // InternalPerspectiveDsl.g:7454:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalPerspectiveDsl.g:7454:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__FqnImportAssignment_2_3_0();
@@ -25764,14 +25497,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
-    // InternalPerspectiveDsl.g:7547:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    // InternalPerspectiveDsl.g:7462:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
     public final void rule__XImportDeclaration__Group_2_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7551:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
-            // InternalPerspectiveDsl.g:7552:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            // InternalPerspectiveDsl.g:7466:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalPerspectiveDsl.g:7467:2: rule__XImportDeclaration__Group_2_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_3__1__Impl();
@@ -25797,23 +25530,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
-    // InternalPerspectiveDsl.g:7558:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:7473:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
     public final void rule__XImportDeclaration__Group_2_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7562:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
-            // InternalPerspectiveDsl.g:7563:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalPerspectiveDsl.g:7477:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalPerspectiveDsl.g:7478:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:7563:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
-            // InternalPerspectiveDsl.g:7564:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalPerspectiveDsl.g:7478:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalPerspectiveDsl.g:7479:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
             }
-            // InternalPerspectiveDsl.g:7565:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
-            // InternalPerspectiveDsl.g:7565:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            // InternalPerspectiveDsl.g:7480:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalPerspectiveDsl.g:7480:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
@@ -25848,16 +25581,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0"
-    // InternalPerspectiveDsl.g:7574:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    // InternalPerspectiveDsl.g:7489:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
     public final void rule__XAnnotation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7578:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
-            // InternalPerspectiveDsl.g:7579:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            // InternalPerspectiveDsl.g:7493:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalPerspectiveDsl.g:7494:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
             {
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_47);
             rule__XAnnotation__Group__0__Impl();
 
             state._fsp--;
@@ -25886,23 +25619,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7586:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7501:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
     public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7590:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7591:1: ( () )
+            // InternalPerspectiveDsl.g:7505:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7506:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7591:1: ( () )
-            // InternalPerspectiveDsl.g:7592:2: ()
+            // InternalPerspectiveDsl.g:7506:1: ( () )
+            // InternalPerspectiveDsl.g:7507:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7593:2: ()
-            // InternalPerspectiveDsl.g:7593:3: 
+            // InternalPerspectiveDsl.g:7508:2: ()
+            // InternalPerspectiveDsl.g:7508:3: 
             {
             }
 
@@ -25927,14 +25660,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1"
-    // InternalPerspectiveDsl.g:7601:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    // InternalPerspectiveDsl.g:7516:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
     public final void rule__XAnnotation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7605:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
-            // InternalPerspectiveDsl.g:7606:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            // InternalPerspectiveDsl.g:7520:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalPerspectiveDsl.g:7521:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group__1__Impl();
@@ -25965,22 +25698,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7613:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    // InternalPerspectiveDsl.g:7528:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
     public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7617:1: ( ( '@' ) )
-            // InternalPerspectiveDsl.g:7618:1: ( '@' )
+            // InternalPerspectiveDsl.g:7532:1: ( ( '@' ) )
+            // InternalPerspectiveDsl.g:7533:1: ( '@' )
             {
-            // InternalPerspectiveDsl.g:7618:1: ( '@' )
-            // InternalPerspectiveDsl.g:7619:2: '@'
+            // InternalPerspectiveDsl.g:7533:1: ( '@' )
+            // InternalPerspectiveDsl.g:7534:2: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
-            match(input,89,FOLLOW_2); if (state.failed) return ;
+            match(input,88,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
@@ -26006,16 +25739,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2"
-    // InternalPerspectiveDsl.g:7628:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    // InternalPerspectiveDsl.g:7543:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
     public final void rule__XAnnotation__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7632:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
-            // InternalPerspectiveDsl.g:7633:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            // InternalPerspectiveDsl.g:7547:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalPerspectiveDsl.g:7548:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XAnnotation__Group__2__Impl();
 
             state._fsp--;
@@ -26044,23 +25777,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7640:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7555:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
     public final void rule__XAnnotation__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7644:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7645:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7559:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7560:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7645:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7646:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:7560:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7561:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7647:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
-            // InternalPerspectiveDsl.g:7647:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            // InternalPerspectiveDsl.g:7562:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:7562:3: rule__XAnnotation__AnnotationTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__AnnotationTypeAssignment_2();
@@ -26095,14 +25828,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3"
-    // InternalPerspectiveDsl.g:7655:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:7570:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
     public final void rule__XAnnotation__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7659:1: ( rule__XAnnotation__Group__3__Impl )
-            // InternalPerspectiveDsl.g:7660:2: rule__XAnnotation__Group__3__Impl
+            // InternalPerspectiveDsl.g:7574:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalPerspectiveDsl.g:7575:2: rule__XAnnotation__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__3__Impl();
@@ -26128,31 +25861,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7666:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:7581:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
     public final void rule__XAnnotation__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7670:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:7671:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:7585:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:7586:1: ( ( rule__XAnnotation__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:7671:1: ( ( rule__XAnnotation__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:7672:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalPerspectiveDsl.g:7586:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:7587:2: ( rule__XAnnotation__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:7673:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalPerspectiveDsl.g:7588:2: ( rule__XAnnotation__Group_3__0 )?
             int alt60=2;
             int LA60_0 = input.LA(1);
 
-            if ( (LA60_0==90) ) {
+            if ( (LA60_0==89) ) {
                 alt60=1;
             }
             switch (alt60) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7673:3: rule__XAnnotation__Group_3__0
+                    // InternalPerspectiveDsl.g:7588:3: rule__XAnnotation__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3__0();
@@ -26190,16 +25923,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0"
-    // InternalPerspectiveDsl.g:7682:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    // InternalPerspectiveDsl.g:7597:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
     public final void rule__XAnnotation__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7686:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
-            // InternalPerspectiveDsl.g:7687:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            // InternalPerspectiveDsl.g:7601:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalPerspectiveDsl.g:7602:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
             {
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_49);
             rule__XAnnotation__Group_3__0__Impl();
 
             state._fsp--;
@@ -26228,25 +25961,25 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:7694:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:7609:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
     public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7698:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:7699:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:7613:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:7614:1: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:7699:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:7700:2: ( '(' )
+            // InternalPerspectiveDsl.g:7614:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:7615:2: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
             }
-            // InternalPerspectiveDsl.g:7701:2: ( '(' )
-            // InternalPerspectiveDsl.g:7701:3: '('
+            // InternalPerspectiveDsl.g:7616:2: ( '(' )
+            // InternalPerspectiveDsl.g:7616:3: '('
             {
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -26275,16 +26008,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1"
-    // InternalPerspectiveDsl.g:7709:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    // InternalPerspectiveDsl.g:7624:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
     public final void rule__XAnnotation__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7713:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
-            // InternalPerspectiveDsl.g:7714:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            // InternalPerspectiveDsl.g:7628:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalPerspectiveDsl.g:7629:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
             {
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_49);
             rule__XAnnotation__Group_3__1__Impl();
 
             state._fsp--;
@@ -26313,31 +26046,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:7721:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    // InternalPerspectiveDsl.g:7636:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
     public final void rule__XAnnotation__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7725:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
-            // InternalPerspectiveDsl.g:7726:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:7640:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalPerspectiveDsl.g:7641:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
             {
-            // InternalPerspectiveDsl.g:7726:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
-            // InternalPerspectiveDsl.g:7727:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:7641:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:7642:2: ( rule__XAnnotation__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
             }
-            // InternalPerspectiveDsl.g:7728:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:7643:2: ( rule__XAnnotation__Alternatives_3_1 )?
             int alt61=2;
             int LA61_0 = input.LA(1);
 
-            if ( ((LA61_0>=RULE_ID && LA61_0<=RULE_DECIMAL)||LA61_0==27||(LA61_0>=34 && LA61_0<=35)||LA61_0==40||(LA61_0>=45 && LA61_0<=50)||LA61_0==54||(LA61_0>=89 && LA61_0<=90)||(LA61_0>=94 && LA61_0<=95)||LA61_0==98||LA61_0==100||(LA61_0>=104 && LA61_0<=112)||LA61_0==114||LA61_0==125) ) {
+            if ( ((LA61_0>=RULE_ID && LA61_0<=RULE_DECIMAL)||LA61_0==27||(LA61_0>=34 && LA61_0<=35)||LA61_0==40||(LA61_0>=45 && LA61_0<=50)||LA61_0==54||(LA61_0>=88 && LA61_0<=89)||(LA61_0>=93 && LA61_0<=94)||LA61_0==97||LA61_0==99||(LA61_0>=103 && LA61_0<=111)||LA61_0==113||LA61_0==124) ) {
                 alt61=1;
             }
             switch (alt61) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7728:3: rule__XAnnotation__Alternatives_3_1
+                    // InternalPerspectiveDsl.g:7643:3: rule__XAnnotation__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Alternatives_3_1();
@@ -26375,14 +26108,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2"
-    // InternalPerspectiveDsl.g:7736:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    // InternalPerspectiveDsl.g:7651:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
     public final void rule__XAnnotation__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7740:1: ( rule__XAnnotation__Group_3__2__Impl )
-            // InternalPerspectiveDsl.g:7741:2: rule__XAnnotation__Group_3__2__Impl
+            // InternalPerspectiveDsl.g:7655:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalPerspectiveDsl.g:7656:2: rule__XAnnotation__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3__2__Impl();
@@ -26408,22 +26141,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:7747:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:7662:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7751:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:7752:1: ( ')' )
+            // InternalPerspectiveDsl.g:7666:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:7667:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:7752:1: ( ')' )
-            // InternalPerspectiveDsl.g:7753:2: ')'
+            // InternalPerspectiveDsl.g:7667:1: ( ')' )
+            // InternalPerspectiveDsl.g:7668:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -26449,16 +26182,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
-    // InternalPerspectiveDsl.g:7763:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
+    // InternalPerspectiveDsl.g:7678:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
     public final void rule__XAnnotation__Group_3_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7767:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
-            // InternalPerspectiveDsl.g:7768:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            // InternalPerspectiveDsl.g:7682:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalPerspectiveDsl.g:7683:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XAnnotation__Group_3_1_0__0__Impl();
 
             state._fsp--;
@@ -26487,23 +26220,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:7775:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:7690:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
     public final void rule__XAnnotation__Group_3_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7779:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
-            // InternalPerspectiveDsl.g:7780:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalPerspectiveDsl.g:7694:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalPerspectiveDsl.g:7695:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:7780:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
-            // InternalPerspectiveDsl.g:7781:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalPerspectiveDsl.g:7695:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalPerspectiveDsl.g:7696:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:7782:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
-            // InternalPerspectiveDsl.g:7782:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            // InternalPerspectiveDsl.g:7697:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalPerspectiveDsl.g:7697:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
@@ -26538,14 +26271,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
-    // InternalPerspectiveDsl.g:7790:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:7705:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
     public final void rule__XAnnotation__Group_3_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7794:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:7795:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            // InternalPerspectiveDsl.g:7709:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:7710:2: rule__XAnnotation__Group_3_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0__1__Impl();
@@ -26571,37 +26304,37 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:7801:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:7716:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
     public final void rule__XAnnotation__Group_3_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7805:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
-            // InternalPerspectiveDsl.g:7806:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalPerspectiveDsl.g:7720:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalPerspectiveDsl.g:7721:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:7806:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
-            // InternalPerspectiveDsl.g:7807:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalPerspectiveDsl.g:7721:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalPerspectiveDsl.g:7722:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:7808:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalPerspectiveDsl.g:7723:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             loop62:
             do {
                 int alt62=2;
                 int LA62_0 = input.LA(1);
 
-                if ( (LA62_0==92) ) {
+                if ( (LA62_0==91) ) {
                     alt62=1;
                 }
 
 
                 switch (alt62) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:7808:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    // InternalPerspectiveDsl.g:7723:3: rule__XAnnotation__Group_3_1_0_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XAnnotation__Group_3_1_0_1__0();
 
             	    state._fsp--;
@@ -26640,14 +26373,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
-    // InternalPerspectiveDsl.g:7817:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
+    // InternalPerspectiveDsl.g:7732:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
     public final void rule__XAnnotation__Group_3_1_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7821:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
-            // InternalPerspectiveDsl.g:7822:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            // InternalPerspectiveDsl.g:7736:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalPerspectiveDsl.g:7737:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group_3_1_0_1__0__Impl();
@@ -26678,22 +26411,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:7829:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:7744:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotation__Group_3_1_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7833:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:7834:1: ( ',' )
+            // InternalPerspectiveDsl.g:7748:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:7749:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:7834:1: ( ',' )
-            // InternalPerspectiveDsl.g:7835:2: ','
+            // InternalPerspectiveDsl.g:7749:1: ( ',' )
+            // InternalPerspectiveDsl.g:7750:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
@@ -26719,14 +26452,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
-    // InternalPerspectiveDsl.g:7844:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:7759:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
     public final void rule__XAnnotation__Group_3_1_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7848:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:7849:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            // InternalPerspectiveDsl.g:7763:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:7764:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0_1__1__Impl();
@@ -26752,23 +26485,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:7855:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:7770:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
     public final void rule__XAnnotation__Group_3_1_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7859:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
-            // InternalPerspectiveDsl.g:7860:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalPerspectiveDsl.g:7774:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:7775:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:7860:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
-            // InternalPerspectiveDsl.g:7861:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalPerspectiveDsl.g:7775:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalPerspectiveDsl.g:7776:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:7862:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
-            // InternalPerspectiveDsl.g:7862:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            // InternalPerspectiveDsl.g:7777:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalPerspectiveDsl.g:7777:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
@@ -26803,16 +26536,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
-    // InternalPerspectiveDsl.g:7871:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    // InternalPerspectiveDsl.g:7786:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
     public final void rule__XAnnotationElementValuePair__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7875:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
-            // InternalPerspectiveDsl.g:7876:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            // InternalPerspectiveDsl.g:7790:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalPerspectiveDsl.g:7791:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAnnotationElementValuePair__Group__0__Impl();
 
             state._fsp--;
@@ -26841,23 +26574,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7883:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:7798:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7887:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:7888:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:7802:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:7803:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:7888:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:7889:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalPerspectiveDsl.g:7803:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:7804:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:7890:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
-            // InternalPerspectiveDsl.g:7890:3: rule__XAnnotationElementValuePair__Group_0__0
+            // InternalPerspectiveDsl.g:7805:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalPerspectiveDsl.g:7805:3: rule__XAnnotationElementValuePair__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0();
@@ -26892,14 +26625,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
-    // InternalPerspectiveDsl.g:7898:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:7813:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7902:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
-            // InternalPerspectiveDsl.g:7903:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            // InternalPerspectiveDsl.g:7817:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalPerspectiveDsl.g:7818:2: rule__XAnnotationElementValuePair__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__1__Impl();
@@ -26925,23 +26658,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7909:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:7824:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7913:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:7914:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:7828:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:7829:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:7914:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
-            // InternalPerspectiveDsl.g:7915:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:7829:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:7830:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:7916:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
-            // InternalPerspectiveDsl.g:7916:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            // InternalPerspectiveDsl.g:7831:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:7831:3: rule__XAnnotationElementValuePair__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ValueAssignment_1();
@@ -26976,14 +26709,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
-    // InternalPerspectiveDsl.g:7925:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:7840:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
     public final void rule__XAnnotationElementValuePair__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7929:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:7930:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:7844:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:7845:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0__Impl();
@@ -27009,23 +26742,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:7936:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:7851:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7940:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:7941:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:7855:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:7856:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:7941:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:7942:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:7856:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:7857:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:7943:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:7943:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            // InternalPerspectiveDsl.g:7858:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:7858:3: rule__XAnnotationElementValuePair__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__0();
@@ -27060,16 +26793,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
-    // InternalPerspectiveDsl.g:7952:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:7867:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7956:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:7957:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            // InternalPerspectiveDsl.g:7871:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:7872:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_53);
             rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -27098,23 +26831,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:7964:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:7879:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7968:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:7969:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalPerspectiveDsl.g:7883:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:7884:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:7969:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
-            // InternalPerspectiveDsl.g:7970:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalPerspectiveDsl.g:7884:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalPerspectiveDsl.g:7885:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:7971:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
-            // InternalPerspectiveDsl.g:7971:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            // InternalPerspectiveDsl.g:7886:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalPerspectiveDsl.g:7886:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
@@ -27149,14 +26882,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
-    // InternalPerspectiveDsl.g:7979:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:7894:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7983:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:7984:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            // InternalPerspectiveDsl.g:7898:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:7899:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
@@ -27182,17 +26915,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:7990:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:7905:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7994:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:7995:1: ( '=' )
+            // InternalPerspectiveDsl.g:7909:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:7910:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:7995:1: ( '=' )
-            // InternalPerspectiveDsl.g:7996:2: '='
+            // InternalPerspectiveDsl.g:7910:1: ( '=' )
+            // InternalPerspectiveDsl.g:7911:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
@@ -27223,16 +26956,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
-    // InternalPerspectiveDsl.g:8006:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    // InternalPerspectiveDsl.g:7921:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8010:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
-            // InternalPerspectiveDsl.g:8011:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            // InternalPerspectiveDsl.g:7925:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalPerspectiveDsl.g:7926:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
 
             state._fsp--;
@@ -27261,23 +26994,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:8018:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:7933:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8022:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8023:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:7937:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:7938:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8023:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8024:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:7938:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:7939:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8025:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:8025:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            // InternalPerspectiveDsl.g:7940:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:7940:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
@@ -27312,16 +27045,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
-    // InternalPerspectiveDsl.g:8033:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    // InternalPerspectiveDsl.g:7948:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8037:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
-            // InternalPerspectiveDsl.g:8038:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            // InternalPerspectiveDsl.g:7952:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalPerspectiveDsl.g:7953:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
 
             state._fsp--;
@@ -27350,31 +27083,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:8045:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:7960:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8049:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:8050:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:7964:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:7965:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:8050:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:8051:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:7965:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:7966:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8052:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:7967:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             int alt63=2;
             int LA63_0 = input.LA(1);
 
-            if ( ((LA63_0>=RULE_ID && LA63_0<=RULE_DECIMAL)||LA63_0==27||(LA63_0>=34 && LA63_0<=35)||LA63_0==40||(LA63_0>=45 && LA63_0<=50)||LA63_0==54||(LA63_0>=89 && LA63_0<=90)||(LA63_0>=94 && LA63_0<=95)||LA63_0==98||LA63_0==100||(LA63_0>=104 && LA63_0<=112)||LA63_0==114||LA63_0==125) ) {
+            if ( ((LA63_0>=RULE_ID && LA63_0<=RULE_DECIMAL)||LA63_0==27||(LA63_0>=34 && LA63_0<=35)||LA63_0==40||(LA63_0>=45 && LA63_0<=50)||LA63_0==54||(LA63_0>=88 && LA63_0<=89)||(LA63_0>=93 && LA63_0<=94)||LA63_0==97||LA63_0==99||(LA63_0>=103 && LA63_0<=111)||LA63_0==113||LA63_0==124) ) {
                 alt63=1;
             }
             switch (alt63) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8052:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    // InternalPerspectiveDsl.g:7967:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
@@ -27412,14 +27145,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
-    // InternalPerspectiveDsl.g:8060:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:7975:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8064:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:8065:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:7979:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:7980:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
@@ -27445,22 +27178,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:8071:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:7986:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8075:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:8076:1: ( ']' )
+            // InternalPerspectiveDsl.g:7990:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:7991:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:8076:1: ( ']' )
-            // InternalPerspectiveDsl.g:8077:2: ']'
+            // InternalPerspectiveDsl.g:7991:1: ( ']' )
+            // InternalPerspectiveDsl.g:7992:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -27486,14 +27219,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
-    // InternalPerspectiveDsl.g:8087:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:8002:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8091:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:8092:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            // InternalPerspectiveDsl.g:8006:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:8007:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
@@ -27519,23 +27252,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8098:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8013:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8102:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8103:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8017:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8018:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8103:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8104:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8018:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8019:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8105:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
-            // InternalPerspectiveDsl.g:8105:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            // InternalPerspectiveDsl.g:8020:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8020:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
@@ -27570,16 +27303,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
-    // InternalPerspectiveDsl.g:8114:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
+    // InternalPerspectiveDsl.g:8029:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8118:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
-            // InternalPerspectiveDsl.g:8119:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            // InternalPerspectiveDsl.g:8033:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalPerspectiveDsl.g:8034:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_55);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -27608,23 +27341,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8126:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8041:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8130:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8131:1: ( () )
+            // InternalPerspectiveDsl.g:8045:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8046:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8131:1: ( () )
-            // InternalPerspectiveDsl.g:8132:2: ()
+            // InternalPerspectiveDsl.g:8046:1: ( () )
+            // InternalPerspectiveDsl.g:8047:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8133:2: ()
-            // InternalPerspectiveDsl.g:8133:3: 
+            // InternalPerspectiveDsl.g:8048:2: ()
+            // InternalPerspectiveDsl.g:8048:3: 
             {
             }
 
@@ -27649,16 +27382,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
-    // InternalPerspectiveDsl.g:8141:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
+    // InternalPerspectiveDsl.g:8056:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8145:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
-            // InternalPerspectiveDsl.g:8146:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            // InternalPerspectiveDsl.g:8060:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalPerspectiveDsl.g:8061:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -27687,22 +27420,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:8153:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:8068:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8157:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:8158:1: ( '#' )
+            // InternalPerspectiveDsl.g:8072:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:8073:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:8158:1: ( '#' )
-            // InternalPerspectiveDsl.g:8159:2: '#'
+            // InternalPerspectiveDsl.g:8073:1: ( '#' )
+            // InternalPerspectiveDsl.g:8074:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -27728,14 +27461,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
-    // InternalPerspectiveDsl.g:8168:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:8083:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8172:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:8173:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:8087:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:8088:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
@@ -27761,22 +27494,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:8179:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:8094:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8183:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:8184:1: ( '[' )
+            // InternalPerspectiveDsl.g:8098:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:8099:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:8184:1: ( '[' )
-            // InternalPerspectiveDsl.g:8185:2: '['
+            // InternalPerspectiveDsl.g:8099:1: ( '[' )
+            // InternalPerspectiveDsl.g:8100:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -27802,16 +27535,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
-    // InternalPerspectiveDsl.g:8195:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:8110:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8199:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:8200:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            // InternalPerspectiveDsl.g:8114:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:8115:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -27840,23 +27573,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:8207:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:8122:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8211:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:8212:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:8126:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:8127:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:8212:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:8213:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:8127:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:8128:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:8214:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:8214:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            // InternalPerspectiveDsl.g:8129:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:8129:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
@@ -27891,14 +27624,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
-    // InternalPerspectiveDsl.g:8222:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8137:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8226:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:8227:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:8141:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:8142:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
@@ -27924,37 +27657,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:8233:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:8148:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8237:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:8238:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:8152:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:8153:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:8238:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:8239:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:8153:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:8154:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8240:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:8155:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             loop64:
             do {
                 int alt64=2;
                 int LA64_0 = input.LA(1);
 
-                if ( (LA64_0==92) ) {
+                if ( (LA64_0==91) ) {
                     alt64=1;
                 }
 
 
                 switch (alt64) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8240:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:8155:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -27993,16 +27726,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:8249:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
+    // InternalPerspectiveDsl.g:8164:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8253:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:8254:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:8168:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:8169:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -28031,22 +27764,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:8261:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:8176:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8265:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:8266:1: ( ',' )
+            // InternalPerspectiveDsl.g:8180:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:8181:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:8266:1: ( ',' )
-            // InternalPerspectiveDsl.g:8267:2: ','
+            // InternalPerspectiveDsl.g:8181:1: ( ',' )
+            // InternalPerspectiveDsl.g:8182:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -28072,14 +27805,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:8276:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8191:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8280:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:8281:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:8195:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:8196:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
@@ -28105,23 +27838,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:8287:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:8202:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8291:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:8292:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8206:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:8207:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:8292:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:8293:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:8207:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8208:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8294:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:8294:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:8209:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:8209:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
@@ -28156,16 +27889,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
-    // InternalPerspectiveDsl.g:8303:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    // InternalPerspectiveDsl.g:8218:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8307:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
-            // InternalPerspectiveDsl.g:8308:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            // InternalPerspectiveDsl.g:8222:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalPerspectiveDsl.g:8223:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
 
             state._fsp--;
@@ -28194,17 +27927,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:8315:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:8230:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8319:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:8320:1: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:8234:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:8235:1: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:8320:1: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:8321:2: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:8235:1: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:8236:2: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
@@ -28239,14 +27972,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
-    // InternalPerspectiveDsl.g:8330:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8245:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8334:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:8335:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:8249:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:8250:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
@@ -28272,31 +28005,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:8341:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:8256:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8345:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:8346:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:8260:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:8261:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:8346:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:8347:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:8261:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:8262:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8348:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:8263:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             int alt65=2;
             int LA65_0 = input.LA(1);
 
-            if ( (LA65_0==92) ) {
+            if ( (LA65_0==91) ) {
                 alt65=1;
             }
             switch (alt65) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8348:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    // InternalPerspectiveDsl.g:8263:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
@@ -28334,16 +28067,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
-    // InternalPerspectiveDsl.g:8357:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:8272:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8361:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:8362:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            // InternalPerspectiveDsl.g:8276:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:8277:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -28372,23 +28105,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:8369:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8284:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8373:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8374:1: ( () )
+            // InternalPerspectiveDsl.g:8288:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8289:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8374:1: ( () )
-            // InternalPerspectiveDsl.g:8375:2: ()
+            // InternalPerspectiveDsl.g:8289:1: ( () )
+            // InternalPerspectiveDsl.g:8290:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:8376:2: ()
-            // InternalPerspectiveDsl.g:8376:3: 
+            // InternalPerspectiveDsl.g:8291:2: ()
+            // InternalPerspectiveDsl.g:8291:3: 
             {
             }
 
@@ -28413,14 +28146,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
-    // InternalPerspectiveDsl.g:8384:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8299:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8388:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:8389:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:8303:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:8304:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
@@ -28446,28 +28179,28 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:8395:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    // InternalPerspectiveDsl.g:8310:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8399:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
-            // InternalPerspectiveDsl.g:8400:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:8314:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalPerspectiveDsl.g:8315:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
             {
-            // InternalPerspectiveDsl.g:8400:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:8401:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:8315:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:8316:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:8401:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
-            // InternalPerspectiveDsl.g:8402:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalPerspectiveDsl.g:8316:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalPerspectiveDsl.g:8317:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8403:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
-            // InternalPerspectiveDsl.g:8403:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            // InternalPerspectiveDsl.g:8318:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalPerspectiveDsl.g:8318:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             {
-            pushFollow(FOLLOW_52);
+            pushFollow(FOLLOW_51);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             state._fsp--;
@@ -28481,28 +28214,28 @@
 
             }
 
-            // InternalPerspectiveDsl.g:8406:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:8407:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:8321:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:8322:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8408:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:8323:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             loop66:
             do {
                 int alt66=2;
                 int LA66_0 = input.LA(1);
 
-                if ( (LA66_0==92) ) {
+                if ( (LA66_0==91) ) {
                     alt66=1;
                 }
 
 
                 switch (alt66) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8408:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    // InternalPerspectiveDsl.g:8323:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             	    state._fsp--;
@@ -28544,16 +28277,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
-    // InternalPerspectiveDsl.g:8418:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
+    // InternalPerspectiveDsl.g:8333:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8422:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
-            // InternalPerspectiveDsl.g:8423:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            // InternalPerspectiveDsl.g:8337:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalPerspectiveDsl.g:8338:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -28582,22 +28315,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:8430:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:8345:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8434:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:8435:1: ( ',' )
+            // InternalPerspectiveDsl.g:8349:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:8350:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:8435:1: ( ',' )
-            // InternalPerspectiveDsl.g:8436:2: ','
+            // InternalPerspectiveDsl.g:8350:1: ( ',' )
+            // InternalPerspectiveDsl.g:8351:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
@@ -28623,14 +28356,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
-    // InternalPerspectiveDsl.g:8445:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8360:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8449:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:8450:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:8364:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:8365:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
@@ -28656,23 +28389,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:8456:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:8371:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8460:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:8461:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8375:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:8376:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:8461:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:8462:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:8376:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8377:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8463:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
-            // InternalPerspectiveDsl.g:8463:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            // InternalPerspectiveDsl.g:8378:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:8378:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
@@ -28707,16 +28440,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
-    // InternalPerspectiveDsl.g:8472:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    // InternalPerspectiveDsl.g:8387:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
     public final void rule__XAnnotationElementValue__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8476:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
-            // InternalPerspectiveDsl.g:8477:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            // InternalPerspectiveDsl.g:8391:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalPerspectiveDsl.g:8392:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XAnnotationElementValue__Group_0__0__Impl();
 
             state._fsp--;
@@ -28745,23 +28478,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:8484:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8399:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8488:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8489:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8403:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8404:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8489:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8490:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8404:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8405:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8491:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:8491:3: rule__XAnnotationElementValue__Group_0_0__0
+            // InternalPerspectiveDsl.g:8406:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8406:3: rule__XAnnotationElementValue__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0();
@@ -28796,16 +28529,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
-    // InternalPerspectiveDsl.g:8499:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    // InternalPerspectiveDsl.g:8414:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
     public final void rule__XAnnotationElementValue__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8503:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
-            // InternalPerspectiveDsl.g:8504:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            // InternalPerspectiveDsl.g:8418:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalPerspectiveDsl.g:8419:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XAnnotationElementValue__Group_0__1__Impl();
 
             state._fsp--;
@@ -28834,31 +28567,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:8511:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:8426:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
     public final void rule__XAnnotationElementValue__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8515:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:8516:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:8430:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:8431:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:8516:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:8517:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:8431:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:8432:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8518:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:8433:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             int alt67=2;
             int LA67_0 = input.LA(1);
 
-            if ( ((LA67_0>=RULE_ID && LA67_0<=RULE_DECIMAL)||LA67_0==27||(LA67_0>=34 && LA67_0<=35)||LA67_0==40||(LA67_0>=45 && LA67_0<=50)||LA67_0==54||(LA67_0>=89 && LA67_0<=90)||(LA67_0>=94 && LA67_0<=95)||LA67_0==98||LA67_0==100||(LA67_0>=104 && LA67_0<=112)||LA67_0==114||LA67_0==125) ) {
+            if ( ((LA67_0>=RULE_ID && LA67_0<=RULE_DECIMAL)||LA67_0==27||(LA67_0>=34 && LA67_0<=35)||LA67_0==40||(LA67_0>=45 && LA67_0<=50)||LA67_0==54||(LA67_0>=88 && LA67_0<=89)||(LA67_0>=93 && LA67_0<=94)||LA67_0==97||LA67_0==99||(LA67_0>=103 && LA67_0<=111)||LA67_0==113||LA67_0==124) ) {
                 alt67=1;
             }
             switch (alt67) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8518:3: rule__XAnnotationElementValue__Group_0_1__0
+                    // InternalPerspectiveDsl.g:8433:3: rule__XAnnotationElementValue__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0_1__0();
@@ -28896,14 +28629,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
-    // InternalPerspectiveDsl.g:8526:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:8441:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
     public final void rule__XAnnotationElementValue__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8530:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:8531:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:8445:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:8446:2: rule__XAnnotationElementValue__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0__2__Impl();
@@ -28929,22 +28662,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:8537:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:8452:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8541:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:8542:1: ( ']' )
+            // InternalPerspectiveDsl.g:8456:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:8457:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:8542:1: ( ']' )
-            // InternalPerspectiveDsl.g:8543:2: ']'
+            // InternalPerspectiveDsl.g:8457:1: ( ']' )
+            // InternalPerspectiveDsl.g:8458:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -28970,14 +28703,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
-    // InternalPerspectiveDsl.g:8553:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:8468:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8557:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:8558:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            // InternalPerspectiveDsl.g:8472:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:8473:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0__Impl();
@@ -29003,23 +28736,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8564:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8479:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8568:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8569:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8483:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8484:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8569:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8570:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8484:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8485:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8571:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
-            // InternalPerspectiveDsl.g:8571:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            // InternalPerspectiveDsl.g:8486:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8486:3: rule__XAnnotationElementValue__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__0();
@@ -29054,16 +28787,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
-    // InternalPerspectiveDsl.g:8580:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
+    // InternalPerspectiveDsl.g:8495:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8584:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
-            // InternalPerspectiveDsl.g:8585:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            // InternalPerspectiveDsl.g:8499:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalPerspectiveDsl.g:8500:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_55);
             rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -29092,23 +28825,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8592:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8507:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8596:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8597:1: ( () )
+            // InternalPerspectiveDsl.g:8511:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8512:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8597:1: ( () )
-            // InternalPerspectiveDsl.g:8598:2: ()
+            // InternalPerspectiveDsl.g:8512:1: ( () )
+            // InternalPerspectiveDsl.g:8513:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8599:2: ()
-            // InternalPerspectiveDsl.g:8599:3: 
+            // InternalPerspectiveDsl.g:8514:2: ()
+            // InternalPerspectiveDsl.g:8514:3: 
             {
             }
 
@@ -29133,16 +28866,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
-    // InternalPerspectiveDsl.g:8607:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
+    // InternalPerspectiveDsl.g:8522:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8611:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
-            // InternalPerspectiveDsl.g:8612:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            // InternalPerspectiveDsl.g:8526:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalPerspectiveDsl.g:8527:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -29171,22 +28904,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:8619:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:8534:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8623:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:8624:1: ( '#' )
+            // InternalPerspectiveDsl.g:8538:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:8539:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:8624:1: ( '#' )
-            // InternalPerspectiveDsl.g:8625:2: '#'
+            // InternalPerspectiveDsl.g:8539:1: ( '#' )
+            // InternalPerspectiveDsl.g:8540:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -29212,14 +28945,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
-    // InternalPerspectiveDsl.g:8634:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:8549:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8638:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:8639:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:8553:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:8554:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
@@ -29245,22 +28978,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:8645:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:8560:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8649:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:8650:1: ( '[' )
+            // InternalPerspectiveDsl.g:8564:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:8565:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:8650:1: ( '[' )
-            // InternalPerspectiveDsl.g:8651:2: '['
+            // InternalPerspectiveDsl.g:8565:1: ( '[' )
+            // InternalPerspectiveDsl.g:8566:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -29286,16 +29019,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
-    // InternalPerspectiveDsl.g:8661:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:8576:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
     public final void rule__XAnnotationElementValue__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8665:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:8666:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            // InternalPerspectiveDsl.g:8580:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:8581:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XAnnotationElementValue__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -29324,23 +29057,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:8673:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:8588:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8677:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:8678:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:8592:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:8593:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:8678:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:8679:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:8593:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:8594:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:8680:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:8680:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            // InternalPerspectiveDsl.g:8595:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:8595:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
@@ -29375,14 +29108,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
-    // InternalPerspectiveDsl.g:8688:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8603:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8692:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:8693:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:8607:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:8608:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1__1__Impl();
@@ -29408,37 +29141,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:8699:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:8614:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
     public final void rule__XAnnotationElementValue__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8703:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:8704:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:8618:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:8619:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:8704:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:8705:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:8619:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:8620:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8706:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:8621:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             loop68:
             do {
                 int alt68=2;
                 int LA68_0 = input.LA(1);
 
-                if ( (LA68_0==92) ) {
+                if ( (LA68_0==91) ) {
                     alt68=1;
                 }
 
 
                 switch (alt68) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8706:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:8621:3: rule__XAnnotationElementValue__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XAnnotationElementValue__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -29477,16 +29210,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:8715:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
+    // InternalPerspectiveDsl.g:8630:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8719:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:8720:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:8634:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:8635:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -29515,22 +29248,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:8727:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:8642:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8731:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:8732:1: ( ',' )
+            // InternalPerspectiveDsl.g:8646:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:8647:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:8732:1: ( ',' )
-            // InternalPerspectiveDsl.g:8733:2: ','
+            // InternalPerspectiveDsl.g:8647:1: ( ',' )
+            // InternalPerspectiveDsl.g:8648:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -29556,14 +29289,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:8742:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8657:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8746:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:8747:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:8661:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:8662:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
@@ -29589,23 +29322,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:8753:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:8668:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8757:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:8758:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8672:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:8673:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:8758:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:8759:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:8673:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8674:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8760:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:8760:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:8675:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:8675:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
@@ -29640,16 +29373,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0"
-    // InternalPerspectiveDsl.g:8769:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    // InternalPerspectiveDsl.g:8684:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
     public final void rule__XAssignment__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8773:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
-            // InternalPerspectiveDsl.g:8774:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            // InternalPerspectiveDsl.g:8688:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalPerspectiveDsl.g:8689:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
             {
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_57);
             rule__XAssignment__Group_0__0__Impl();
 
             state._fsp--;
@@ -29678,23 +29411,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:8781:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8696:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8785:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8786:1: ( () )
+            // InternalPerspectiveDsl.g:8700:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8701:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8786:1: ( () )
-            // InternalPerspectiveDsl.g:8787:2: ()
+            // InternalPerspectiveDsl.g:8701:1: ( () )
+            // InternalPerspectiveDsl.g:8702:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8788:2: ()
-            // InternalPerspectiveDsl.g:8788:3: 
+            // InternalPerspectiveDsl.g:8703:2: ()
+            // InternalPerspectiveDsl.g:8703:3: 
             {
             }
 
@@ -29719,16 +29452,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1"
-    // InternalPerspectiveDsl.g:8796:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    // InternalPerspectiveDsl.g:8711:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
     public final void rule__XAssignment__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8800:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
-            // InternalPerspectiveDsl.g:8801:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            // InternalPerspectiveDsl.g:8715:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalPerspectiveDsl.g:8716:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_53);
             rule__XAssignment__Group_0__1__Impl();
 
             state._fsp--;
@@ -29757,23 +29490,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:8808:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:8723:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
     public final void rule__XAssignment__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8812:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
-            // InternalPerspectiveDsl.g:8813:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:8727:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalPerspectiveDsl.g:8728:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:8813:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
-            // InternalPerspectiveDsl.g:8814:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:8728:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:8729:2: ( rule__XAssignment__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8815:2: ( rule__XAssignment__FeatureAssignment_0_1 )
-            // InternalPerspectiveDsl.g:8815:3: rule__XAssignment__FeatureAssignment_0_1
+            // InternalPerspectiveDsl.g:8730:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:8730:3: rule__XAssignment__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_0_1();
@@ -29808,16 +29541,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2"
-    // InternalPerspectiveDsl.g:8823:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    // InternalPerspectiveDsl.g:8738:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
     public final void rule__XAssignment__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8827:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
-            // InternalPerspectiveDsl.g:8828:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            // InternalPerspectiveDsl.g:8742:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalPerspectiveDsl.g:8743:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAssignment__Group_0__2__Impl();
 
             state._fsp--;
@@ -29846,17 +29579,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:8835:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    // InternalPerspectiveDsl.g:8750:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8839:1: ( ( ruleOpSingleAssign ) )
-            // InternalPerspectiveDsl.g:8840:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:8754:1: ( ( ruleOpSingleAssign ) )
+            // InternalPerspectiveDsl.g:8755:1: ( ruleOpSingleAssign )
             {
-            // InternalPerspectiveDsl.g:8840:1: ( ruleOpSingleAssign )
-            // InternalPerspectiveDsl.g:8841:2: ruleOpSingleAssign
+            // InternalPerspectiveDsl.g:8755:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:8756:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
@@ -29891,14 +29624,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3"
-    // InternalPerspectiveDsl.g:8850:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    // InternalPerspectiveDsl.g:8765:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
     public final void rule__XAssignment__Group_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8854:1: ( rule__XAssignment__Group_0__3__Impl )
-            // InternalPerspectiveDsl.g:8855:2: rule__XAssignment__Group_0__3__Impl
+            // InternalPerspectiveDsl.g:8769:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalPerspectiveDsl.g:8770:2: rule__XAssignment__Group_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_0__3__Impl();
@@ -29924,23 +29657,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
-    // InternalPerspectiveDsl.g:8861:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:8776:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
     public final void rule__XAssignment__Group_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8865:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
-            // InternalPerspectiveDsl.g:8866:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalPerspectiveDsl.g:8780:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalPerspectiveDsl.g:8781:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:8866:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
-            // InternalPerspectiveDsl.g:8867:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalPerspectiveDsl.g:8781:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalPerspectiveDsl.g:8782:2: ( rule__XAssignment__ValueAssignment_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
             }
-            // InternalPerspectiveDsl.g:8868:2: ( rule__XAssignment__ValueAssignment_0_3 )
-            // InternalPerspectiveDsl.g:8868:3: rule__XAssignment__ValueAssignment_0_3
+            // InternalPerspectiveDsl.g:8783:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalPerspectiveDsl.g:8783:3: rule__XAssignment__ValueAssignment_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__ValueAssignment_0_3();
@@ -29975,16 +29708,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0"
-    // InternalPerspectiveDsl.g:8877:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    // InternalPerspectiveDsl.g:8792:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
     public final void rule__XAssignment__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8881:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
-            // InternalPerspectiveDsl.g:8882:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            // InternalPerspectiveDsl.g:8796:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalPerspectiveDsl.g:8797:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_58);
             rule__XAssignment__Group_1__0__Impl();
 
             state._fsp--;
@@ -30013,17 +29746,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:8889:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    // InternalPerspectiveDsl.g:8804:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
     public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8893:1: ( ( ruleXOrExpression ) )
-            // InternalPerspectiveDsl.g:8894:1: ( ruleXOrExpression )
+            // InternalPerspectiveDsl.g:8808:1: ( ( ruleXOrExpression ) )
+            // InternalPerspectiveDsl.g:8809:1: ( ruleXOrExpression )
             {
-            // InternalPerspectiveDsl.g:8894:1: ( ruleXOrExpression )
-            // InternalPerspectiveDsl.g:8895:2: ruleXOrExpression
+            // InternalPerspectiveDsl.g:8809:1: ( ruleXOrExpression )
+            // InternalPerspectiveDsl.g:8810:2: ruleXOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
@@ -30058,14 +29791,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1"
-    // InternalPerspectiveDsl.g:8904:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8819:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
     public final void rule__XAssignment__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8908:1: ( rule__XAssignment__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:8909:2: rule__XAssignment__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:8823:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:8824:2: rule__XAssignment__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1__1__Impl();
@@ -30091,27 +29824,27 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:8915:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:8830:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
     public final void rule__XAssignment__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8919:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:8920:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:8834:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:8835:1: ( ( rule__XAssignment__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:8920:1: ( ( rule__XAssignment__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:8921:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:8835:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:8836:2: ( rule__XAssignment__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8922:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:8837:2: ( rule__XAssignment__Group_1_1__0 )?
             int alt69=2;
             alt69 = dfa69.predict(input);
             switch (alt69) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8922:3: rule__XAssignment__Group_1_1__0
+                    // InternalPerspectiveDsl.g:8837:3: rule__XAssignment__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1_1__0();
@@ -30149,16 +29882,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0"
-    // InternalPerspectiveDsl.g:8931:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:8846:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
     public final void rule__XAssignment__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8935:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:8936:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            // InternalPerspectiveDsl.g:8850:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:8851:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAssignment__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -30187,23 +29920,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:8943:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8858:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
     public final void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8947:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8948:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:8862:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8863:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8948:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
-            // InternalPerspectiveDsl.g:8949:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:8863:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:8864:2: ( rule__XAssignment__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:8950:2: ( rule__XAssignment__Group_1_1_0__0 )
-            // InternalPerspectiveDsl.g:8950:3: rule__XAssignment__Group_1_1_0__0
+            // InternalPerspectiveDsl.g:8865:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:8865:3: rule__XAssignment__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0();
@@ -30238,14 +29971,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1"
-    // InternalPerspectiveDsl.g:8958:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8873:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
     public final void rule__XAssignment__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8962:1: ( rule__XAssignment__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:8963:2: rule__XAssignment__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:8877:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:8878:2: rule__XAssignment__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1__1__Impl();
@@ -30271,23 +30004,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:8969:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:8884:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
     public final void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8973:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:8974:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8888:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:8889:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:8974:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
-            // InternalPerspectiveDsl.g:8975:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:8889:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:8890:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8976:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
-            // InternalPerspectiveDsl.g:8976:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            // InternalPerspectiveDsl.g:8891:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:8891:3: rule__XAssignment__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__RightOperandAssignment_1_1_1();
@@ -30322,14 +30055,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
-    // InternalPerspectiveDsl.g:8985:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:8900:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
     public final void rule__XAssignment__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8989:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:8990:2: rule__XAssignment__Group_1_1_0__0__Impl
+            // InternalPerspectiveDsl.g:8904:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:8905:2: rule__XAssignment__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0__Impl();
@@ -30355,23 +30088,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:8996:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8911:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
     public final void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9000:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9001:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8915:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8916:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9001:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9002:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:8916:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8917:2: ( rule__XAssignment__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9003:2: ( rule__XAssignment__Group_1_1_0_0__0 )
-            // InternalPerspectiveDsl.g:9003:3: rule__XAssignment__Group_1_1_0_0__0
+            // InternalPerspectiveDsl.g:8918:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:8918:3: rule__XAssignment__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__0();
@@ -30406,16 +30139,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
-    // InternalPerspectiveDsl.g:9012:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:8927:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
     public final void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9016:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
-            // InternalPerspectiveDsl.g:9017:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            // InternalPerspectiveDsl.g:8931:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalPerspectiveDsl.g:8932:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_58);
             rule__XAssignment__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -30444,23 +30177,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9024:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8939:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9028:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9029:1: ( () )
+            // InternalPerspectiveDsl.g:8943:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8944:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9029:1: ( () )
-            // InternalPerspectiveDsl.g:9030:2: ()
+            // InternalPerspectiveDsl.g:8944:1: ( () )
+            // InternalPerspectiveDsl.g:8945:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9031:2: ()
-            // InternalPerspectiveDsl.g:9031:3: 
+            // InternalPerspectiveDsl.g:8946:2: ()
+            // InternalPerspectiveDsl.g:8946:3: 
             {
             }
 
@@ -30485,14 +30218,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
-    // InternalPerspectiveDsl.g:9039:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:8954:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
     public final void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9043:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:9044:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:8958:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:8959:2: rule__XAssignment__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__1__Impl();
@@ -30518,23 +30251,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9050:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:8965:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
     public final void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9054:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9055:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:8969:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:8970:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9055:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:9056:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:8970:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:8971:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9057:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
-            // InternalPerspectiveDsl.g:9057:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            // InternalPerspectiveDsl.g:8972:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:8972:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_1_1_0_0_1();
@@ -30569,16 +30302,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0"
-    // InternalPerspectiveDsl.g:9066:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    // InternalPerspectiveDsl.g:8981:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
     public final void rule__OpMultiAssign__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9070:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
-            // InternalPerspectiveDsl.g:9071:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            // InternalPerspectiveDsl.g:8985:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalPerspectiveDsl.g:8986:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
             {
-            pushFollow(FOLLOW_60);
+            pushFollow(FOLLOW_59);
             rule__OpMultiAssign__Group_5__0__Impl();
 
             state._fsp--;
@@ -30607,17 +30340,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
-    // InternalPerspectiveDsl.g:9078:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:8993:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9082:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:9083:1: ( '<' )
+            // InternalPerspectiveDsl.g:8997:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:8998:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:9083:1: ( '<' )
-            // InternalPerspectiveDsl.g:9084:2: '<'
+            // InternalPerspectiveDsl.g:8998:1: ( '<' )
+            // InternalPerspectiveDsl.g:8999:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
@@ -30648,16 +30381,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1"
-    // InternalPerspectiveDsl.g:9093:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    // InternalPerspectiveDsl.g:9008:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
     public final void rule__OpMultiAssign__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9097:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
-            // InternalPerspectiveDsl.g:9098:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            // InternalPerspectiveDsl.g:9012:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalPerspectiveDsl.g:9013:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_53);
             rule__OpMultiAssign__Group_5__1__Impl();
 
             state._fsp--;
@@ -30686,17 +30419,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
-    // InternalPerspectiveDsl.g:9105:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:9020:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9109:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:9110:1: ( '<' )
+            // InternalPerspectiveDsl.g:9024:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:9025:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:9110:1: ( '<' )
-            // InternalPerspectiveDsl.g:9111:2: '<'
+            // InternalPerspectiveDsl.g:9025:1: ( '<' )
+            // InternalPerspectiveDsl.g:9026:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
@@ -30727,14 +30460,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2"
-    // InternalPerspectiveDsl.g:9120:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    // InternalPerspectiveDsl.g:9035:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
     public final void rule__OpMultiAssign__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9124:1: ( rule__OpMultiAssign__Group_5__2__Impl )
-            // InternalPerspectiveDsl.g:9125:2: rule__OpMultiAssign__Group_5__2__Impl
+            // InternalPerspectiveDsl.g:9039:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalPerspectiveDsl.g:9040:2: rule__OpMultiAssign__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_5__2__Impl();
@@ -30760,17 +30493,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
-    // InternalPerspectiveDsl.g:9131:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:9046:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
     public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9135:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:9136:1: ( '=' )
+            // InternalPerspectiveDsl.g:9050:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:9051:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:9136:1: ( '=' )
-            // InternalPerspectiveDsl.g:9137:2: '='
+            // InternalPerspectiveDsl.g:9051:1: ( '=' )
+            // InternalPerspectiveDsl.g:9052:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
@@ -30801,16 +30534,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0"
-    // InternalPerspectiveDsl.g:9147:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    // InternalPerspectiveDsl.g:9062:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
     public final void rule__OpMultiAssign__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9151:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
-            // InternalPerspectiveDsl.g:9152:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            // InternalPerspectiveDsl.g:9066:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalPerspectiveDsl.g:9067:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_60);
             rule__OpMultiAssign__Group_6__0__Impl();
 
             state._fsp--;
@@ -30839,17 +30572,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
-    // InternalPerspectiveDsl.g:9159:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:9074:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
     public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9163:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:9164:1: ( '>' )
+            // InternalPerspectiveDsl.g:9078:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:9079:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:9164:1: ( '>' )
-            // InternalPerspectiveDsl.g:9165:2: '>'
+            // InternalPerspectiveDsl.g:9079:1: ( '>' )
+            // InternalPerspectiveDsl.g:9080:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
@@ -30880,16 +30613,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1"
-    // InternalPerspectiveDsl.g:9174:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    // InternalPerspectiveDsl.g:9089:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
     public final void rule__OpMultiAssign__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9178:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
-            // InternalPerspectiveDsl.g:9179:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            // InternalPerspectiveDsl.g:9093:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalPerspectiveDsl.g:9094:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_60);
             rule__OpMultiAssign__Group_6__1__Impl();
 
             state._fsp--;
@@ -30918,22 +30651,22 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
-    // InternalPerspectiveDsl.g:9186:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    // InternalPerspectiveDsl.g:9101:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
     public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9190:1: ( ( ( '>' )? ) )
-            // InternalPerspectiveDsl.g:9191:1: ( ( '>' )? )
+            // InternalPerspectiveDsl.g:9105:1: ( ( ( '>' )? ) )
+            // InternalPerspectiveDsl.g:9106:1: ( ( '>' )? )
             {
-            // InternalPerspectiveDsl.g:9191:1: ( ( '>' )? )
-            // InternalPerspectiveDsl.g:9192:2: ( '>' )?
+            // InternalPerspectiveDsl.g:9106:1: ( ( '>' )? )
+            // InternalPerspectiveDsl.g:9107:2: ( '>' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
             }
-            // InternalPerspectiveDsl.g:9193:2: ( '>' )?
+            // InternalPerspectiveDsl.g:9108:2: ( '>' )?
             int alt70=2;
             int LA70_0 = input.LA(1);
 
@@ -30942,7 +30675,7 @@
             }
             switch (alt70) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9193:3: '>'
+                    // InternalPerspectiveDsl.g:9108:3: '>'
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -30976,14 +30709,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2"
-    // InternalPerspectiveDsl.g:9201:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    // InternalPerspectiveDsl.g:9116:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
     public final void rule__OpMultiAssign__Group_6__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9205:1: ( rule__OpMultiAssign__Group_6__2__Impl )
-            // InternalPerspectiveDsl.g:9206:2: rule__OpMultiAssign__Group_6__2__Impl
+            // InternalPerspectiveDsl.g:9120:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalPerspectiveDsl.g:9121:2: rule__OpMultiAssign__Group_6__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_6__2__Impl();
@@ -31009,17 +30742,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
-    // InternalPerspectiveDsl.g:9212:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    // InternalPerspectiveDsl.g:9127:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
     public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9216:1: ( ( '>=' ) )
-            // InternalPerspectiveDsl.g:9217:1: ( '>=' )
+            // InternalPerspectiveDsl.g:9131:1: ( ( '>=' ) )
+            // InternalPerspectiveDsl.g:9132:1: ( '>=' )
             {
-            // InternalPerspectiveDsl.g:9217:1: ( '>=' )
-            // InternalPerspectiveDsl.g:9218:2: '>='
+            // InternalPerspectiveDsl.g:9132:1: ( '>=' )
+            // InternalPerspectiveDsl.g:9133:2: '>='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
@@ -31050,16 +30783,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0"
-    // InternalPerspectiveDsl.g:9228:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:9143:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
     public final void rule__XOrExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9232:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
-            // InternalPerspectiveDsl.g:9233:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            // InternalPerspectiveDsl.g:9147:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalPerspectiveDsl.g:9148:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_61);
             rule__XOrExpression__Group__0__Impl();
 
             state._fsp--;
@@ -31088,17 +30821,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:9240:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    // InternalPerspectiveDsl.g:9155:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9244:1: ( ( ruleXAndExpression ) )
-            // InternalPerspectiveDsl.g:9245:1: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:9159:1: ( ( ruleXAndExpression ) )
+            // InternalPerspectiveDsl.g:9160:1: ( ruleXAndExpression )
             {
-            // InternalPerspectiveDsl.g:9245:1: ( ruleXAndExpression )
-            // InternalPerspectiveDsl.g:9246:2: ruleXAndExpression
+            // InternalPerspectiveDsl.g:9160:1: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:9161:2: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
@@ -31133,14 +30866,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1"
-    // InternalPerspectiveDsl.g:9255:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:9170:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
     public final void rule__XOrExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9259:1: ( rule__XOrExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:9260:2: rule__XOrExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:9174:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:9175:2: rule__XOrExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__1__Impl();
@@ -31166,22 +30899,22 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:9266:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:9181:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
     public final void rule__XOrExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9270:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9271:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:9185:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9186:1: ( ( rule__XOrExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9271:1: ( ( rule__XOrExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:9272:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:9186:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:9187:2: ( rule__XOrExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:9273:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:9188:2: ( rule__XOrExpression__Group_1__0 )*
             loop71:
             do {
                 int alt71=2;
@@ -31190,7 +30923,7 @@
                 if ( (LA71_0==14) ) {
                     int LA71_2 = input.LA(2);
 
-                    if ( (synpred128_InternalPerspectiveDsl()) ) {
+                    if ( (synpred127_InternalPerspectiveDsl()) ) {
                         alt71=1;
                     }
 
@@ -31200,9 +30933,9 @@
 
                 switch (alt71) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9273:3: rule__XOrExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:9188:3: rule__XOrExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_63);
+            	    pushFollow(FOLLOW_62);
             	    rule__XOrExpression__Group_1__0();
 
             	    state._fsp--;
@@ -31241,16 +30974,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:9282:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:9197:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
     public final void rule__XOrExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9286:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:9287:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            // InternalPerspectiveDsl.g:9201:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:9202:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XOrExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -31279,23 +31012,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:9294:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9209:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
     public final void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9298:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9299:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9213:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9214:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9299:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:9300:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:9214:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9215:2: ( rule__XOrExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9301:2: ( rule__XOrExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:9301:3: rule__XOrExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:9216:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:9216:3: rule__XOrExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0();
@@ -31330,14 +31063,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:9309:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9224:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
     public final void rule__XOrExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9313:1: ( rule__XOrExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:9314:2: rule__XOrExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:9228:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:9229:2: rule__XOrExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1__1__Impl();
@@ -31363,23 +31096,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:9320:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9235:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9324:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9325:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:9239:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9240:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9325:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:9326:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:9240:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:9241:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9327:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:9327:3: rule__XOrExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:9242:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:9242:3: rule__XOrExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__RightOperandAssignment_1_1();
@@ -31414,14 +31147,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:9336:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9251:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
     public final void rule__XOrExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9340:1: ( rule__XOrExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:9341:2: rule__XOrExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:9255:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:9256:2: rule__XOrExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0__Impl();
@@ -31447,23 +31180,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:9347:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9262:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9351:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9352:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9266:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9267:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9352:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9353:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9267:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9268:2: ( rule__XOrExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9354:2: ( rule__XOrExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:9354:3: rule__XOrExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:9269:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9269:3: rule__XOrExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__0();
@@ -31498,16 +31231,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:9363:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:9278:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
     public final void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9367:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:9368:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:9282:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:9283:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_61);
             rule__XOrExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -31536,23 +31269,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9375:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9290:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9379:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9380:1: ( () )
+            // InternalPerspectiveDsl.g:9294:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9295:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9380:1: ( () )
-            // InternalPerspectiveDsl.g:9381:2: ()
+            // InternalPerspectiveDsl.g:9295:1: ( () )
+            // InternalPerspectiveDsl.g:9296:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9382:2: ()
-            // InternalPerspectiveDsl.g:9382:3: 
+            // InternalPerspectiveDsl.g:9297:2: ()
+            // InternalPerspectiveDsl.g:9297:3: 
             {
             }
 
@@ -31577,14 +31310,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:9390:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:9305:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
     public final void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9394:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:9395:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:9309:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:9310:2: rule__XOrExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__1__Impl();
@@ -31610,23 +31343,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9401:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9316:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9405:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9406:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9320:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9321:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9406:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:9407:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9321:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9322:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9408:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:9408:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:9323:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9323:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__FeatureAssignment_1_0_0_1();
@@ -31661,16 +31394,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0"
-    // InternalPerspectiveDsl.g:9417:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:9332:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
     public final void rule__XAndExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9421:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
-            // InternalPerspectiveDsl.g:9422:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            // InternalPerspectiveDsl.g:9336:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalPerspectiveDsl.g:9337:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_63);
             rule__XAndExpression__Group__0__Impl();
 
             state._fsp--;
@@ -31699,17 +31432,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:9429:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    // InternalPerspectiveDsl.g:9344:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9433:1: ( ( ruleXEqualityExpression ) )
-            // InternalPerspectiveDsl.g:9434:1: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:9348:1: ( ( ruleXEqualityExpression ) )
+            // InternalPerspectiveDsl.g:9349:1: ( ruleXEqualityExpression )
             {
-            // InternalPerspectiveDsl.g:9434:1: ( ruleXEqualityExpression )
-            // InternalPerspectiveDsl.g:9435:2: ruleXEqualityExpression
+            // InternalPerspectiveDsl.g:9349:1: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:9350:2: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
@@ -31744,14 +31477,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1"
-    // InternalPerspectiveDsl.g:9444:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:9359:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
     public final void rule__XAndExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9448:1: ( rule__XAndExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:9449:2: rule__XAndExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:9363:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:9364:2: rule__XAndExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__1__Impl();
@@ -31777,22 +31510,22 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:9455:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:9370:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
     public final void rule__XAndExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9459:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9460:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:9374:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9375:1: ( ( rule__XAndExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9460:1: ( ( rule__XAndExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:9461:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:9375:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:9376:2: ( rule__XAndExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:9462:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:9377:2: ( rule__XAndExpression__Group_1__0 )*
             loop72:
             do {
                 int alt72=2;
@@ -31801,7 +31534,7 @@
                 if ( (LA72_0==15) ) {
                     int LA72_2 = input.LA(2);
 
-                    if ( (synpred129_InternalPerspectiveDsl()) ) {
+                    if ( (synpred128_InternalPerspectiveDsl()) ) {
                         alt72=1;
                     }
 
@@ -31811,9 +31544,9 @@
 
                 switch (alt72) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9462:3: rule__XAndExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:9377:3: rule__XAndExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_65);
+            	    pushFollow(FOLLOW_64);
             	    rule__XAndExpression__Group_1__0();
 
             	    state._fsp--;
@@ -31852,16 +31585,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:9471:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:9386:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
     public final void rule__XAndExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9475:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:9476:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            // InternalPerspectiveDsl.g:9390:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:9391:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAndExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -31890,23 +31623,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:9483:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9398:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
     public final void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9487:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9488:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9402:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9403:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9488:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:9489:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:9403:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9404:2: ( rule__XAndExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9490:2: ( rule__XAndExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:9490:3: rule__XAndExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:9405:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:9405:3: rule__XAndExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0();
@@ -31941,14 +31674,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:9498:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9413:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
     public final void rule__XAndExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9502:1: ( rule__XAndExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:9503:2: rule__XAndExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:9417:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:9418:2: rule__XAndExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1__1__Impl();
@@ -31974,23 +31707,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:9509:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9424:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9513:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9514:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:9428:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9429:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9514:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:9515:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:9429:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:9430:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9516:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:9516:3: rule__XAndExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:9431:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:9431:3: rule__XAndExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__RightOperandAssignment_1_1();
@@ -32025,14 +31758,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:9525:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9440:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
     public final void rule__XAndExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9529:1: ( rule__XAndExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:9530:2: rule__XAndExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:9444:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:9445:2: rule__XAndExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0__Impl();
@@ -32058,23 +31791,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:9536:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9451:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9540:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9541:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9455:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9456:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9541:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9542:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9456:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9457:2: ( rule__XAndExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9543:2: ( rule__XAndExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:9543:3: rule__XAndExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:9458:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9458:3: rule__XAndExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__0();
@@ -32109,16 +31842,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:9552:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:9467:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
     public final void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9556:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:9557:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:9471:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:9472:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_63);
             rule__XAndExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -32147,23 +31880,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9564:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9479:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9568:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9569:1: ( () )
+            // InternalPerspectiveDsl.g:9483:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9484:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9569:1: ( () )
-            // InternalPerspectiveDsl.g:9570:2: ()
+            // InternalPerspectiveDsl.g:9484:1: ( () )
+            // InternalPerspectiveDsl.g:9485:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9571:2: ()
-            // InternalPerspectiveDsl.g:9571:3: 
+            // InternalPerspectiveDsl.g:9486:2: ()
+            // InternalPerspectiveDsl.g:9486:3: 
             {
             }
 
@@ -32188,14 +31921,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:9579:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:9494:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
     public final void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9583:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:9584:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:9498:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:9499:2: rule__XAndExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__1__Impl();
@@ -32221,23 +31954,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9590:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9505:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9594:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9595:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9509:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9510:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9595:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:9596:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9510:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9511:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9597:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:9597:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:9512:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9512:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__FeatureAssignment_1_0_0_1();
@@ -32272,16 +32005,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0"
-    // InternalPerspectiveDsl.g:9606:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:9521:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
     public final void rule__XEqualityExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9610:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
-            // InternalPerspectiveDsl.g:9611:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            // InternalPerspectiveDsl.g:9525:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalPerspectiveDsl.g:9526:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_65);
             rule__XEqualityExpression__Group__0__Impl();
 
             state._fsp--;
@@ -32310,17 +32043,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:9618:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    // InternalPerspectiveDsl.g:9533:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9622:1: ( ( ruleXRelationalExpression ) )
-            // InternalPerspectiveDsl.g:9623:1: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:9537:1: ( ( ruleXRelationalExpression ) )
+            // InternalPerspectiveDsl.g:9538:1: ( ruleXRelationalExpression )
             {
-            // InternalPerspectiveDsl.g:9623:1: ( ruleXRelationalExpression )
-            // InternalPerspectiveDsl.g:9624:2: ruleXRelationalExpression
+            // InternalPerspectiveDsl.g:9538:1: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:9539:2: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
@@ -32355,14 +32088,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1"
-    // InternalPerspectiveDsl.g:9633:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:9548:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
     public final void rule__XEqualityExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9637:1: ( rule__XEqualityExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:9638:2: rule__XEqualityExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:9552:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:9553:2: rule__XEqualityExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__1__Impl();
@@ -32388,22 +32121,22 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:9644:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:9559:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
     public final void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9648:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9649:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:9563:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9564:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9649:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:9650:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:9564:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:9565:2: ( rule__XEqualityExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:9651:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:9566:2: ( rule__XEqualityExpression__Group_1__0 )*
             loop73:
             do {
                 int alt73=2;
@@ -32412,7 +32145,7 @@
                     {
                     int LA73_2 = input.LA(2);
 
-                    if ( (synpred130_InternalPerspectiveDsl()) ) {
+                    if ( (synpred129_InternalPerspectiveDsl()) ) {
                         alt73=1;
                     }
 
@@ -32423,7 +32156,7 @@
                     {
                     int LA73_3 = input.LA(2);
 
-                    if ( (synpred130_InternalPerspectiveDsl()) ) {
+                    if ( (synpred129_InternalPerspectiveDsl()) ) {
                         alt73=1;
                     }
 
@@ -32434,7 +32167,7 @@
                     {
                     int LA73_4 = input.LA(2);
 
-                    if ( (synpred130_InternalPerspectiveDsl()) ) {
+                    if ( (synpred129_InternalPerspectiveDsl()) ) {
                         alt73=1;
                     }
 
@@ -32445,7 +32178,7 @@
                     {
                     int LA73_5 = input.LA(2);
 
-                    if ( (synpred130_InternalPerspectiveDsl()) ) {
+                    if ( (synpred129_InternalPerspectiveDsl()) ) {
                         alt73=1;
                     }
 
@@ -32457,9 +32190,9 @@
 
                 switch (alt73) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9651:3: rule__XEqualityExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:9566:3: rule__XEqualityExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_67);
+            	    pushFollow(FOLLOW_66);
             	    rule__XEqualityExpression__Group_1__0();
 
             	    state._fsp--;
@@ -32498,16 +32231,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:9660:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:9575:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
     public final void rule__XEqualityExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9664:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:9665:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            // InternalPerspectiveDsl.g:9579:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:9580:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XEqualityExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -32536,23 +32269,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:9672:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9587:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
     public final void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9676:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9677:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9591:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9592:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9677:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:9678:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:9592:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9593:2: ( rule__XEqualityExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9679:2: ( rule__XEqualityExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:9679:3: rule__XEqualityExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:9594:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:9594:3: rule__XEqualityExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0();
@@ -32587,14 +32320,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:9687:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9602:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
     public final void rule__XEqualityExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9691:1: ( rule__XEqualityExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:9692:2: rule__XEqualityExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:9606:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:9607:2: rule__XEqualityExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1__1__Impl();
@@ -32620,23 +32353,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:9698:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9613:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9702:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9703:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:9617:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9618:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9703:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:9704:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:9618:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:9619:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9705:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:9705:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:9620:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:9620:3: rule__XEqualityExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__RightOperandAssignment_1_1();
@@ -32671,14 +32404,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:9714:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9629:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
     public final void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9718:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:9719:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:9633:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:9634:2: rule__XEqualityExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0__Impl();
@@ -32704,23 +32437,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:9725:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9640:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9729:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9730:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9644:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9645:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9730:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9731:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9645:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9646:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9732:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:9732:3: rule__XEqualityExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:9647:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9647:3: rule__XEqualityExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__0();
@@ -32755,16 +32488,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:9741:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:9656:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
     public final void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9745:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:9746:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:9660:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:9661:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_65);
             rule__XEqualityExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -32793,23 +32526,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9753:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9668:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9757:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9758:1: ( () )
+            // InternalPerspectiveDsl.g:9672:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9673:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9758:1: ( () )
-            // InternalPerspectiveDsl.g:9759:2: ()
+            // InternalPerspectiveDsl.g:9673:1: ( () )
+            // InternalPerspectiveDsl.g:9674:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9760:2: ()
-            // InternalPerspectiveDsl.g:9760:3: 
+            // InternalPerspectiveDsl.g:9675:2: ()
+            // InternalPerspectiveDsl.g:9675:3: 
             {
             }
 
@@ -32834,14 +32567,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:9768:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:9683:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
     public final void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9772:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:9773:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:9687:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:9688:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__1__Impl();
@@ -32867,23 +32600,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9779:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9694:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9783:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9784:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9698:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9699:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9784:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:9785:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9699:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9700:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9786:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:9786:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:9701:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9701:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
@@ -32918,16 +32651,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0"
-    // InternalPerspectiveDsl.g:9795:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:9710:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
     public final void rule__XRelationalExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9799:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
-            // InternalPerspectiveDsl.g:9800:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+            // InternalPerspectiveDsl.g:9714:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+            // InternalPerspectiveDsl.g:9715:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_67);
             rule__XRelationalExpression__Group__0__Impl();
 
             state._fsp--;
@@ -32956,17 +32689,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:9807:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+    // InternalPerspectiveDsl.g:9722:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9811:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalPerspectiveDsl.g:9812:1: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:9726:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalPerspectiveDsl.g:9727:1: ( ruleXOtherOperatorExpression )
             {
-            // InternalPerspectiveDsl.g:9812:1: ( ruleXOtherOperatorExpression )
-            // InternalPerspectiveDsl.g:9813:2: ruleXOtherOperatorExpression
+            // InternalPerspectiveDsl.g:9727:1: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:9728:2: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
@@ -33001,14 +32734,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1"
-    // InternalPerspectiveDsl.g:9822:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:9737:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
     public final void rule__XRelationalExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9826:1: ( rule__XRelationalExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:9827:2: rule__XRelationalExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:9741:1: ( rule__XRelationalExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:9742:2: rule__XRelationalExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__1__Impl();
@@ -33034,22 +32767,22 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:9833:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+    // InternalPerspectiveDsl.g:9748:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
     public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9837:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
-            // InternalPerspectiveDsl.g:9838:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:9752:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+            // InternalPerspectiveDsl.g:9753:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
             {
-            // InternalPerspectiveDsl.g:9838:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
-            // InternalPerspectiveDsl.g:9839:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            // InternalPerspectiveDsl.g:9753:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:9754:2: ( rule__XRelationalExpression__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:9840:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            // InternalPerspectiveDsl.g:9755:2: ( rule__XRelationalExpression__Alternatives_1 )*
             loop74:
             do {
                 int alt74=2;
@@ -33058,7 +32791,7 @@
                     {
                     int LA74_2 = input.LA(2);
 
-                    if ( (synpred131_InternalPerspectiveDsl()) ) {
+                    if ( (synpred130_InternalPerspectiveDsl()) ) {
                         alt74=1;
                     }
 
@@ -33069,18 +32802,18 @@
                     {
                     int LA74_3 = input.LA(2);
 
-                    if ( (synpred131_InternalPerspectiveDsl()) ) {
+                    if ( (synpred130_InternalPerspectiveDsl()) ) {
                         alt74=1;
                     }
 
 
                     }
                     break;
-                case 96:
+                case 95:
                     {
                     int LA74_4 = input.LA(2);
 
-                    if ( (synpred131_InternalPerspectiveDsl()) ) {
+                    if ( (synpred130_InternalPerspectiveDsl()) ) {
                         alt74=1;
                     }
 
@@ -33091,7 +32824,7 @@
                     {
                     int LA74_5 = input.LA(2);
 
-                    if ( (synpred131_InternalPerspectiveDsl()) ) {
+                    if ( (synpred130_InternalPerspectiveDsl()) ) {
                         alt74=1;
                     }
 
@@ -33103,9 +32836,9 @@
 
                 switch (alt74) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9840:3: rule__XRelationalExpression__Alternatives_1
+            	    // InternalPerspectiveDsl.g:9755:3: rule__XRelationalExpression__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_69);
+            	    pushFollow(FOLLOW_68);
             	    rule__XRelationalExpression__Alternatives_1();
 
             	    state._fsp--;
@@ -33144,16 +32877,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:9849:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:9764:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9853:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:9854:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+            // InternalPerspectiveDsl.g:9768:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:9769:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XRelationalExpression__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -33182,23 +32915,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:9861:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9776:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9865:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9866:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9780:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9781:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9866:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9867:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9781:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9782:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9868:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:9868:3: rule__XRelationalExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:9783:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9783:3: rule__XRelationalExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0();
@@ -33233,14 +32966,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
-    // InternalPerspectiveDsl.g:9876:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:9791:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9880:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:9881:2: rule__XRelationalExpression__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:9795:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:9796:2: rule__XRelationalExpression__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0__1__Impl();
@@ -33266,23 +32999,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:9887:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9802:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9891:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9892:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:9806:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9807:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9892:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:9893:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:9807:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:9808:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9894:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:9894:3: rule__XRelationalExpression__TypeAssignment_1_0_1
+            // InternalPerspectiveDsl.g:9809:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:9809:3: rule__XRelationalExpression__TypeAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__TypeAssignment_1_0_1();
@@ -33317,14 +33050,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:9903:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9818:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9907:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:9908:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+            // InternalPerspectiveDsl.g:9822:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:9823:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0__Impl();
@@ -33350,23 +33083,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9914:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9829:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9918:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9919:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9833:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9834:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9919:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9920:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:9834:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9835:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9921:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
-            // InternalPerspectiveDsl.g:9921:3: rule__XRelationalExpression__Group_1_0_0_0__0
+            // InternalPerspectiveDsl.g:9836:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:9836:3: rule__XRelationalExpression__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__0();
@@ -33401,16 +33134,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
-    // InternalPerspectiveDsl.g:9930:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
+    // InternalPerspectiveDsl.g:9845:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9934:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
-            // InternalPerspectiveDsl.g:9935:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+            // InternalPerspectiveDsl.g:9849:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+            // InternalPerspectiveDsl.g:9850:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_71);
+            pushFollow(FOLLOW_70);
             rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -33439,23 +33172,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9942:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9857:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9946:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9947:1: ( () )
+            // InternalPerspectiveDsl.g:9861:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9862:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9947:1: ( () )
-            // InternalPerspectiveDsl.g:9948:2: ()
+            // InternalPerspectiveDsl.g:9862:1: ( () )
+            // InternalPerspectiveDsl.g:9863:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9949:2: ()
-            // InternalPerspectiveDsl.g:9949:3: 
+            // InternalPerspectiveDsl.g:9864:2: ()
+            // InternalPerspectiveDsl.g:9864:3: 
             {
             }
 
@@ -33480,14 +33213,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
-    // InternalPerspectiveDsl.g:9957:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:9872:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9961:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:9962:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+            // InternalPerspectiveDsl.g:9876:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:9877:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
@@ -33513,22 +33246,22 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9968:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+    // InternalPerspectiveDsl.g:9883:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9972:1: ( ( 'instanceof' ) )
-            // InternalPerspectiveDsl.g:9973:1: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:9887:1: ( ( 'instanceof' ) )
+            // InternalPerspectiveDsl.g:9888:1: ( 'instanceof' )
             {
-            // InternalPerspectiveDsl.g:9973:1: ( 'instanceof' )
-            // InternalPerspectiveDsl.g:9974:2: 'instanceof'
+            // InternalPerspectiveDsl.g:9888:1: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:9889:2: 'instanceof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
-            match(input,96,FOLLOW_2); if (state.failed) return ;
+            match(input,95,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
@@ -33554,16 +33287,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
-    // InternalPerspectiveDsl.g:9984:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:9899:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
     public final void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9988:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:9989:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+            // InternalPerspectiveDsl.g:9903:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:9904:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XRelationalExpression__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -33592,23 +33325,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9996:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9911:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10000:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10001:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9915:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9916:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10001:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10002:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:9916:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9917:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10003:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
-            // InternalPerspectiveDsl.g:10003:3: rule__XRelationalExpression__Group_1_1_0__0
+            // InternalPerspectiveDsl.g:9918:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:9918:3: rule__XRelationalExpression__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0();
@@ -33643,14 +33376,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
-    // InternalPerspectiveDsl.g:10011:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9926:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10015:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:10016:2: rule__XRelationalExpression__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9930:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9931:2: rule__XRelationalExpression__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1__1__Impl();
@@ -33676,23 +33409,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:10022:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9937:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10026:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10027:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9941:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9942:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10027:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
-            // InternalPerspectiveDsl.g:10028:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:9942:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9943:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10029:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
-            // InternalPerspectiveDsl.g:10029:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+            // InternalPerspectiveDsl.g:9944:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:9944:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__RightOperandAssignment_1_1_1();
@@ -33727,14 +33460,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
-    // InternalPerspectiveDsl.g:10038:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9953:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10042:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10043:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+            // InternalPerspectiveDsl.g:9957:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:9958:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0__Impl();
@@ -33760,23 +33493,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10049:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9964:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10053:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10054:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9968:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9969:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10054:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10055:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9969:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9970:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10056:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10056:3: rule__XRelationalExpression__Group_1_1_0_0__0
+            // InternalPerspectiveDsl.g:9971:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9971:3: rule__XRelationalExpression__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__0();
@@ -33811,16 +33544,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
-    // InternalPerspectiveDsl.g:10065:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:9980:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10069:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10070:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+            // InternalPerspectiveDsl.g:9984:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+            // InternalPerspectiveDsl.g:9985:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_67);
             rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -33849,23 +33582,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10077:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9992:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10081:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10082:1: ( () )
+            // InternalPerspectiveDsl.g:9996:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9997:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10082:1: ( () )
-            // InternalPerspectiveDsl.g:10083:2: ()
+            // InternalPerspectiveDsl.g:9997:1: ( () )
+            // InternalPerspectiveDsl.g:9998:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10084:2: ()
-            // InternalPerspectiveDsl.g:10084:3: 
+            // InternalPerspectiveDsl.g:9999:2: ()
+            // InternalPerspectiveDsl.g:9999:3: 
             {
             }
 
@@ -33890,14 +33623,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
-    // InternalPerspectiveDsl.g:10092:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10007:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10096:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10097:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10011:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10012:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
@@ -33923,23 +33656,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10103:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10018:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10107:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10108:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10022:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10023:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10108:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10109:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10023:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10024:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10110:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10110:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+            // InternalPerspectiveDsl.g:10025:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10025:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
@@ -33974,16 +33707,16 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0"
-    // InternalPerspectiveDsl.g:10119:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10034:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
     public final void rule__OpCompare__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10123:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
-            // InternalPerspectiveDsl.g:10124:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
+            // InternalPerspectiveDsl.g:10038:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
+            // InternalPerspectiveDsl.g:10039:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_53);
             rule__OpCompare__Group_1__0__Impl();
 
             state._fsp--;
@@ -34012,17 +33745,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10131:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:10046:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
     public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10135:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:10136:1: ( '<' )
+            // InternalPerspectiveDsl.g:10050:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:10051:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:10136:1: ( '<' )
-            // InternalPerspectiveDsl.g:10137:2: '<'
+            // InternalPerspectiveDsl.g:10051:1: ( '<' )
+            // InternalPerspectiveDsl.g:10052:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
@@ -34053,14 +33786,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1"
-    // InternalPerspectiveDsl.g:10146:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10061:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
     public final void rule__OpCompare__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10150:1: ( rule__OpCompare__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10151:2: rule__OpCompare__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10065:1: ( rule__OpCompare__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10066:2: rule__OpCompare__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Group_1__1__Impl();
@@ -34086,17 +33819,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10157:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:10072:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
     public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10161:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:10162:1: ( '=' )
+            // InternalPerspectiveDsl.g:10076:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:10077:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:10162:1: ( '=' )
-            // InternalPerspectiveDsl.g:10163:2: '='
+            // InternalPerspectiveDsl.g:10077:1: ( '=' )
+            // InternalPerspectiveDsl.g:10078:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
@@ -34127,16 +33860,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
-    // InternalPerspectiveDsl.g:10173:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10088:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
     public final void rule__XOtherOperatorExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10177:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10178:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+            // InternalPerspectiveDsl.g:10092:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10093:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
             {
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_71);
             rule__XOtherOperatorExpression__Group__0__Impl();
 
             state._fsp--;
@@ -34165,17 +33898,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10185:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+    // InternalPerspectiveDsl.g:10100:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10189:1: ( ( ruleXAdditiveExpression ) )
-            // InternalPerspectiveDsl.g:10190:1: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:10104:1: ( ( ruleXAdditiveExpression ) )
+            // InternalPerspectiveDsl.g:10105:1: ( ruleXAdditiveExpression )
             {
-            // InternalPerspectiveDsl.g:10190:1: ( ruleXAdditiveExpression )
-            // InternalPerspectiveDsl.g:10191:2: ruleXAdditiveExpression
+            // InternalPerspectiveDsl.g:10105:1: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:10106:2: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
@@ -34210,14 +33943,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
-    // InternalPerspectiveDsl.g:10200:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10115:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10204:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10205:2: rule__XOtherOperatorExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10119:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10120:2: rule__XOtherOperatorExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__1__Impl();
@@ -34243,31 +33976,31 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10211:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10126:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
     public final void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10215:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10216:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10130:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10131:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10216:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10217:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10131:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10132:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10218:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10133:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
             loop75:
             do {
                 int alt75=2;
                 alt75 = dfa75.predict(input);
                 switch (alt75) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10218:3: rule__XOtherOperatorExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10133:3: rule__XOtherOperatorExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_73);
+            	    pushFollow(FOLLOW_72);
             	    rule__XOtherOperatorExpression__Group_1__0();
 
             	    state._fsp--;
@@ -34306,16 +34039,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10227:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10142:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
     public final void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10231:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10232:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10146:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10147:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XOtherOperatorExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -34344,23 +34077,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10239:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10154:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10243:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10244:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10158:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10159:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10244:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10245:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10159:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10160:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10246:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10246:3: rule__XOtherOperatorExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10161:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10161:3: rule__XOtherOperatorExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0();
@@ -34395,14 +34128,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10254:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10169:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10258:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10259:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10173:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10174:2: rule__XOtherOperatorExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1__1__Impl();
@@ -34428,23 +34161,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10265:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10180:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10269:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10270:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10184:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10185:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10270:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10271:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10185:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10186:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10272:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10272:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10187:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10187:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
@@ -34479,14 +34212,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10281:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10196:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10285:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10286:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10200:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10201:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0__Impl();
@@ -34512,23 +34245,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10292:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10207:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10296:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10297:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10211:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10212:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10297:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10298:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10212:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10213:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10299:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10299:3: rule__XOtherOperatorExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10214:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10214:3: rule__XOtherOperatorExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__0();
@@ -34563,16 +34296,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10308:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10223:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10312:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10313:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10227:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10228:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_71);
             rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -34601,23 +34334,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10320:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10235:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10324:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10325:1: ( () )
+            // InternalPerspectiveDsl.g:10239:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10240:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10325:1: ( () )
-            // InternalPerspectiveDsl.g:10326:2: ()
+            // InternalPerspectiveDsl.g:10240:1: ( () )
+            // InternalPerspectiveDsl.g:10241:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10327:2: ()
-            // InternalPerspectiveDsl.g:10327:3: 
+            // InternalPerspectiveDsl.g:10242:2: ()
+            // InternalPerspectiveDsl.g:10242:3: 
             {
             }
 
@@ -34642,14 +34375,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10335:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10250:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10339:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10340:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10254:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10255:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
@@ -34675,23 +34408,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10346:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10261:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10350:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10351:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10265:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10266:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10351:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10352:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10266:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10267:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10353:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10353:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10268:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10268:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
@@ -34726,16 +34459,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0"
-    // InternalPerspectiveDsl.g:10362:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+    // InternalPerspectiveDsl.g:10277:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
     public final void rule__OpOther__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10366:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
-            // InternalPerspectiveDsl.g:10367:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+            // InternalPerspectiveDsl.g:10281:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+            // InternalPerspectiveDsl.g:10282:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
             {
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_73);
             rule__OpOther__Group_2__0__Impl();
 
             state._fsp--;
@@ -34764,17 +34497,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0__Impl"
-    // InternalPerspectiveDsl.g:10374:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:10289:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10378:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:10379:1: ( '>' )
+            // InternalPerspectiveDsl.g:10293:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:10294:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:10379:1: ( '>' )
-            // InternalPerspectiveDsl.g:10380:2: '>'
+            // InternalPerspectiveDsl.g:10294:1: ( '>' )
+            // InternalPerspectiveDsl.g:10295:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
@@ -34805,14 +34538,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1"
-    // InternalPerspectiveDsl.g:10389:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+    // InternalPerspectiveDsl.g:10304:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
     public final void rule__OpOther__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10393:1: ( rule__OpOther__Group_2__1__Impl )
-            // InternalPerspectiveDsl.g:10394:2: rule__OpOther__Group_2__1__Impl
+            // InternalPerspectiveDsl.g:10308:1: ( rule__OpOther__Group_2__1__Impl )
+            // InternalPerspectiveDsl.g:10309:2: rule__OpOther__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_2__1__Impl();
@@ -34838,17 +34571,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1__Impl"
-    // InternalPerspectiveDsl.g:10400:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+    // InternalPerspectiveDsl.g:10315:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
     public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10404:1: ( ( '..' ) )
-            // InternalPerspectiveDsl.g:10405:1: ( '..' )
+            // InternalPerspectiveDsl.g:10319:1: ( ( '..' ) )
+            // InternalPerspectiveDsl.g:10320:1: ( '..' )
             {
-            // InternalPerspectiveDsl.g:10405:1: ( '..' )
-            // InternalPerspectiveDsl.g:10406:2: '..'
+            // InternalPerspectiveDsl.g:10320:1: ( '..' )
+            // InternalPerspectiveDsl.g:10321:2: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
@@ -34879,16 +34612,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0"
-    // InternalPerspectiveDsl.g:10416:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+    // InternalPerspectiveDsl.g:10331:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
     public final void rule__OpOther__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10420:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
-            // InternalPerspectiveDsl.g:10421:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+            // InternalPerspectiveDsl.g:10335:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+            // InternalPerspectiveDsl.g:10336:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__OpOther__Group_5__0__Impl();
 
             state._fsp--;
@@ -34917,17 +34650,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0__Impl"
-    // InternalPerspectiveDsl.g:10428:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:10343:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10432:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:10433:1: ( '>' )
+            // InternalPerspectiveDsl.g:10347:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:10348:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:10433:1: ( '>' )
-            // InternalPerspectiveDsl.g:10434:2: '>'
+            // InternalPerspectiveDsl.g:10348:1: ( '>' )
+            // InternalPerspectiveDsl.g:10349:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
@@ -34958,14 +34691,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1"
-    // InternalPerspectiveDsl.g:10443:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+    // InternalPerspectiveDsl.g:10358:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
     public final void rule__OpOther__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10447:1: ( rule__OpOther__Group_5__1__Impl )
-            // InternalPerspectiveDsl.g:10448:2: rule__OpOther__Group_5__1__Impl
+            // InternalPerspectiveDsl.g:10362:1: ( rule__OpOther__Group_5__1__Impl )
+            // InternalPerspectiveDsl.g:10363:2: rule__OpOther__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5__1__Impl();
@@ -34991,23 +34724,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1__Impl"
-    // InternalPerspectiveDsl.g:10454:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+    // InternalPerspectiveDsl.g:10369:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
     public final void rule__OpOther__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10458:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
-            // InternalPerspectiveDsl.g:10459:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalPerspectiveDsl.g:10373:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+            // InternalPerspectiveDsl.g:10374:1: ( ( rule__OpOther__Alternatives_5_1 ) )
             {
-            // InternalPerspectiveDsl.g:10459:1: ( ( rule__OpOther__Alternatives_5_1 ) )
-            // InternalPerspectiveDsl.g:10460:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalPerspectiveDsl.g:10374:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalPerspectiveDsl.g:10375:2: ( rule__OpOther__Alternatives_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
             }
-            // InternalPerspectiveDsl.g:10461:2: ( rule__OpOther__Alternatives_5_1 )
-            // InternalPerspectiveDsl.g:10461:3: rule__OpOther__Alternatives_5_1
+            // InternalPerspectiveDsl.g:10376:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalPerspectiveDsl.g:10376:3: rule__OpOther__Alternatives_5_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_5_1();
@@ -35042,14 +34775,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0"
-    // InternalPerspectiveDsl.g:10470:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10385:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
     public final void rule__OpOther__Group_5_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10474:1: ( rule__OpOther__Group_5_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10475:2: rule__OpOther__Group_5_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10389:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10390:2: rule__OpOther__Group_5_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0__0__Impl();
@@ -35075,23 +34808,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10481:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10396:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10485:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10486:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10400:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10401:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10486:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10487:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10401:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10402:2: ( rule__OpOther__Group_5_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10488:2: ( rule__OpOther__Group_5_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10488:3: rule__OpOther__Group_5_1_0_0__0
+            // InternalPerspectiveDsl.g:10403:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10403:3: rule__OpOther__Group_5_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__0();
@@ -35126,16 +34859,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
-    // InternalPerspectiveDsl.g:10497:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10412:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
     public final void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10501:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10502:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+            // InternalPerspectiveDsl.g:10416:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10417:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__OpOther__Group_5_1_0_0__0__Impl();
 
             state._fsp--;
@@ -35164,17 +34897,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10509:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:10424:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10513:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:10514:1: ( '>' )
+            // InternalPerspectiveDsl.g:10428:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:10429:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:10514:1: ( '>' )
-            // InternalPerspectiveDsl.g:10515:2: '>'
+            // InternalPerspectiveDsl.g:10429:1: ( '>' )
+            // InternalPerspectiveDsl.g:10430:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
@@ -35205,14 +34938,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
-    // InternalPerspectiveDsl.g:10524:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10439:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10528:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10529:2: rule__OpOther__Group_5_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10443:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10444:2: rule__OpOther__Group_5_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__1__Impl();
@@ -35238,17 +34971,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10535:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:10450:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10539:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:10540:1: ( '>' )
+            // InternalPerspectiveDsl.g:10454:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:10455:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:10540:1: ( '>' )
-            // InternalPerspectiveDsl.g:10541:2: '>'
+            // InternalPerspectiveDsl.g:10455:1: ( '>' )
+            // InternalPerspectiveDsl.g:10456:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
@@ -35279,16 +35012,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0"
-    // InternalPerspectiveDsl.g:10551:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+    // InternalPerspectiveDsl.g:10466:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
     public final void rule__OpOther__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10555:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
-            // InternalPerspectiveDsl.g:10556:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+            // InternalPerspectiveDsl.g:10470:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+            // InternalPerspectiveDsl.g:10471:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__OpOther__Group_6__0__Impl();
 
             state._fsp--;
@@ -35317,17 +35050,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0__Impl"
-    // InternalPerspectiveDsl.g:10563:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:10478:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10567:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:10568:1: ( '<' )
+            // InternalPerspectiveDsl.g:10482:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:10483:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:10568:1: ( '<' )
-            // InternalPerspectiveDsl.g:10569:2: '<'
+            // InternalPerspectiveDsl.g:10483:1: ( '<' )
+            // InternalPerspectiveDsl.g:10484:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
@@ -35358,14 +35091,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1"
-    // InternalPerspectiveDsl.g:10578:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+    // InternalPerspectiveDsl.g:10493:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
     public final void rule__OpOther__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10582:1: ( rule__OpOther__Group_6__1__Impl )
-            // InternalPerspectiveDsl.g:10583:2: rule__OpOther__Group_6__1__Impl
+            // InternalPerspectiveDsl.g:10497:1: ( rule__OpOther__Group_6__1__Impl )
+            // InternalPerspectiveDsl.g:10498:2: rule__OpOther__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6__1__Impl();
@@ -35391,23 +35124,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1__Impl"
-    // InternalPerspectiveDsl.g:10589:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+    // InternalPerspectiveDsl.g:10504:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
     public final void rule__OpOther__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10593:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
-            // InternalPerspectiveDsl.g:10594:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalPerspectiveDsl.g:10508:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+            // InternalPerspectiveDsl.g:10509:1: ( ( rule__OpOther__Alternatives_6_1 ) )
             {
-            // InternalPerspectiveDsl.g:10594:1: ( ( rule__OpOther__Alternatives_6_1 ) )
-            // InternalPerspectiveDsl.g:10595:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalPerspectiveDsl.g:10509:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalPerspectiveDsl.g:10510:2: ( rule__OpOther__Alternatives_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
             }
-            // InternalPerspectiveDsl.g:10596:2: ( rule__OpOther__Alternatives_6_1 )
-            // InternalPerspectiveDsl.g:10596:3: rule__OpOther__Alternatives_6_1
+            // InternalPerspectiveDsl.g:10511:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalPerspectiveDsl.g:10511:3: rule__OpOther__Alternatives_6_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_6_1();
@@ -35442,14 +35175,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0"
-    // InternalPerspectiveDsl.g:10605:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10520:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
     public final void rule__OpOther__Group_6_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10609:1: ( rule__OpOther__Group_6_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10610:2: rule__OpOther__Group_6_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10524:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10525:2: rule__OpOther__Group_6_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0__0__Impl();
@@ -35475,23 +35208,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10616:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10531:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10620:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10621:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10535:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10536:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10621:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10622:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10536:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10537:2: ( rule__OpOther__Group_6_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10623:2: ( rule__OpOther__Group_6_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10623:3: rule__OpOther__Group_6_1_0_0__0
+            // InternalPerspectiveDsl.g:10538:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10538:3: rule__OpOther__Group_6_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__0();
@@ -35526,16 +35259,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
-    // InternalPerspectiveDsl.g:10632:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10547:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
     public final void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10636:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10637:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+            // InternalPerspectiveDsl.g:10551:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10552:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
             {
-            pushFollow(FOLLOW_60);
+            pushFollow(FOLLOW_59);
             rule__OpOther__Group_6_1_0_0__0__Impl();
 
             state._fsp--;
@@ -35564,17 +35297,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10644:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:10559:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10648:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:10649:1: ( '<' )
+            // InternalPerspectiveDsl.g:10563:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:10564:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:10649:1: ( '<' )
-            // InternalPerspectiveDsl.g:10650:2: '<'
+            // InternalPerspectiveDsl.g:10564:1: ( '<' )
+            // InternalPerspectiveDsl.g:10565:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
@@ -35605,14 +35338,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
-    // InternalPerspectiveDsl.g:10659:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10574:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10663:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10664:2: rule__OpOther__Group_6_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10578:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10579:2: rule__OpOther__Group_6_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__1__Impl();
@@ -35638,17 +35371,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10670:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:10585:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10674:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:10675:1: ( '<' )
+            // InternalPerspectiveDsl.g:10589:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:10590:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:10675:1: ( '<' )
-            // InternalPerspectiveDsl.g:10676:2: '<'
+            // InternalPerspectiveDsl.g:10590:1: ( '<' )
+            // InternalPerspectiveDsl.g:10591:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
@@ -35679,16 +35412,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0"
-    // InternalPerspectiveDsl.g:10686:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10601:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
     public final void rule__XAdditiveExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10690:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10691:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+            // InternalPerspectiveDsl.g:10605:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10606:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XAdditiveExpression__Group__0__Impl();
 
             state._fsp--;
@@ -35717,17 +35450,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10698:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+    // InternalPerspectiveDsl.g:10613:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10702:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalPerspectiveDsl.g:10703:1: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:10617:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalPerspectiveDsl.g:10618:1: ( ruleXMultiplicativeExpression )
             {
-            // InternalPerspectiveDsl.g:10703:1: ( ruleXMultiplicativeExpression )
-            // InternalPerspectiveDsl.g:10704:2: ruleXMultiplicativeExpression
+            // InternalPerspectiveDsl.g:10618:1: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:10619:2: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
@@ -35762,14 +35495,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1"
-    // InternalPerspectiveDsl.g:10713:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10628:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
     public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10717:1: ( rule__XAdditiveExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10718:2: rule__XAdditiveExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10632:1: ( rule__XAdditiveExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10633:2: rule__XAdditiveExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__1__Impl();
@@ -35795,22 +35528,22 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10724:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10639:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
     public final void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10728:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10729:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10643:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10644:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10729:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10730:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10644:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10645:2: ( rule__XAdditiveExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10731:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10646:2: ( rule__XAdditiveExpression__Group_1__0 )*
             loop76:
             do {
                 int alt76=2;
@@ -35819,7 +35552,7 @@
                 if ( (LA76_0==35) ) {
                     int LA76_2 = input.LA(2);
 
-                    if ( (synpred133_InternalPerspectiveDsl()) ) {
+                    if ( (synpred132_InternalPerspectiveDsl()) ) {
                         alt76=1;
                     }
 
@@ -35828,7 +35561,7 @@
                 else if ( (LA76_0==34) ) {
                     int LA76_3 = input.LA(2);
 
-                    if ( (synpred133_InternalPerspectiveDsl()) ) {
+                    if ( (synpred132_InternalPerspectiveDsl()) ) {
                         alt76=1;
                     }
 
@@ -35838,9 +35571,9 @@
 
                 switch (alt76) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10731:3: rule__XAdditiveExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10646:3: rule__XAdditiveExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_78);
+            	    pushFollow(FOLLOW_77);
             	    rule__XAdditiveExpression__Group_1__0();
 
             	    state._fsp--;
@@ -35879,16 +35612,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10740:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10655:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
     public final void rule__XAdditiveExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10744:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10745:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10659:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10660:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XAdditiveExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -35917,23 +35650,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10752:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10667:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10756:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10757:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10671:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10672:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10757:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10758:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10672:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10673:2: ( rule__XAdditiveExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10759:2: ( rule__XAdditiveExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10759:3: rule__XAdditiveExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10674:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10674:3: rule__XAdditiveExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0();
@@ -35968,14 +35701,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10767:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10682:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10771:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10772:2: rule__XAdditiveExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10686:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10687:2: rule__XAdditiveExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1__1__Impl();
@@ -36001,23 +35734,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10778:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10693:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10782:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10783:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10697:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10698:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10783:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10784:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10698:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10699:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10785:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10785:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10700:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10700:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__RightOperandAssignment_1_1();
@@ -36052,14 +35785,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10794:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10709:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10798:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10799:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10713:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10714:2: rule__XAdditiveExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0__Impl();
@@ -36085,23 +35818,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10805:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10720:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10809:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10810:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10724:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10725:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10810:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10811:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10725:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10726:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10812:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10812:3: rule__XAdditiveExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10727:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10727:3: rule__XAdditiveExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__0();
@@ -36136,16 +35869,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10821:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10736:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10825:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10826:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10740:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10741:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XAdditiveExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -36174,23 +35907,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10833:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10748:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10837:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10838:1: ( () )
+            // InternalPerspectiveDsl.g:10752:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10753:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10838:1: ( () )
-            // InternalPerspectiveDsl.g:10839:2: ()
+            // InternalPerspectiveDsl.g:10753:1: ( () )
+            // InternalPerspectiveDsl.g:10754:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10840:2: ()
-            // InternalPerspectiveDsl.g:10840:3: 
+            // InternalPerspectiveDsl.g:10755:2: ()
+            // InternalPerspectiveDsl.g:10755:3: 
             {
             }
 
@@ -36215,14 +35948,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10848:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10763:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10852:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10853:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10767:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10768:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__1__Impl();
@@ -36248,23 +35981,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10859:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10774:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10863:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10864:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10778:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10779:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10864:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10865:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10779:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10780:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10866:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10866:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10781:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10781:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
@@ -36299,16 +36032,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
-    // InternalPerspectiveDsl.g:10875:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10790:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
     public final void rule__XMultiplicativeExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10879:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10880:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+            // InternalPerspectiveDsl.g:10794:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10795:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_78);
             rule__XMultiplicativeExpression__Group__0__Impl();
 
             state._fsp--;
@@ -36337,17 +36070,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10887:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+    // InternalPerspectiveDsl.g:10802:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10891:1: ( ( ruleXUnaryOperation ) )
-            // InternalPerspectiveDsl.g:10892:1: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:10806:1: ( ( ruleXUnaryOperation ) )
+            // InternalPerspectiveDsl.g:10807:1: ( ruleXUnaryOperation )
             {
-            // InternalPerspectiveDsl.g:10892:1: ( ruleXUnaryOperation )
-            // InternalPerspectiveDsl.g:10893:2: ruleXUnaryOperation
+            // InternalPerspectiveDsl.g:10807:1: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:10808:2: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
@@ -36382,14 +36115,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
-    // InternalPerspectiveDsl.g:10902:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10817:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10906:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10907:2: rule__XMultiplicativeExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10821:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10822:2: rule__XMultiplicativeExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__1__Impl();
@@ -36415,22 +36148,22 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10913:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10828:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
     public final void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10917:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10918:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10832:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10833:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10918:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10919:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10833:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10834:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10920:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10835:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
             loop77:
             do {
                 int alt77=2;
@@ -36439,7 +36172,7 @@
                     {
                     int LA77_2 = input.LA(2);
 
-                    if ( (synpred134_InternalPerspectiveDsl()) ) {
+                    if ( (synpred133_InternalPerspectiveDsl()) ) {
                         alt77=1;
                     }
 
@@ -36450,7 +36183,7 @@
                     {
                     int LA77_3 = input.LA(2);
 
-                    if ( (synpred134_InternalPerspectiveDsl()) ) {
+                    if ( (synpred133_InternalPerspectiveDsl()) ) {
                         alt77=1;
                     }
 
@@ -36461,7 +36194,7 @@
                     {
                     int LA77_4 = input.LA(2);
 
-                    if ( (synpred134_InternalPerspectiveDsl()) ) {
+                    if ( (synpred133_InternalPerspectiveDsl()) ) {
                         alt77=1;
                     }
 
@@ -36472,7 +36205,7 @@
                     {
                     int LA77_5 = input.LA(2);
 
-                    if ( (synpred134_InternalPerspectiveDsl()) ) {
+                    if ( (synpred133_InternalPerspectiveDsl()) ) {
                         alt77=1;
                     }
 
@@ -36484,9 +36217,9 @@
 
                 switch (alt77) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10920:3: rule__XMultiplicativeExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10835:3: rule__XMultiplicativeExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_80);
+            	    pushFollow(FOLLOW_79);
             	    rule__XMultiplicativeExpression__Group_1__0();
 
             	    state._fsp--;
@@ -36525,16 +36258,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10929:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10844:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
     public final void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10933:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10934:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10848:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10849:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XMultiplicativeExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -36563,23 +36296,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10941:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10856:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10945:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10946:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10860:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10861:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10946:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10947:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10861:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10862:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10948:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10948:3: rule__XMultiplicativeExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10863:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10863:3: rule__XMultiplicativeExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0();
@@ -36614,14 +36347,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10956:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10871:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10960:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10961:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10875:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10876:2: rule__XMultiplicativeExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1__1__Impl();
@@ -36647,23 +36380,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10967:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10882:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10971:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10972:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10886:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10887:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10972:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10973:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10887:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10888:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10974:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10974:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10889:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10889:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
@@ -36698,14 +36431,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10983:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10898:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10987:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10988:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10902:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10903:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0__Impl();
@@ -36731,23 +36464,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10994:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10909:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10998:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10999:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10913:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10914:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10999:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11000:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10914:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10915:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11001:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11001:3: rule__XMultiplicativeExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10916:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10916:3: rule__XMultiplicativeExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__0();
@@ -36782,16 +36515,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:11010:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:10925:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11014:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11015:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10929:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10930:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_78);
             rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -36820,23 +36553,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11022:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10937:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11026:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11027:1: ( () )
+            // InternalPerspectiveDsl.g:10941:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10942:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11027:1: ( () )
-            // InternalPerspectiveDsl.g:11028:2: ()
+            // InternalPerspectiveDsl.g:10942:1: ( () )
+            // InternalPerspectiveDsl.g:10943:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11029:2: ()
-            // InternalPerspectiveDsl.g:11029:3: 
+            // InternalPerspectiveDsl.g:10944:2: ()
+            // InternalPerspectiveDsl.g:10944:3: 
             {
             }
 
@@ -36861,14 +36594,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:11037:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10952:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11041:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11042:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10956:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10957:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
@@ -36894,23 +36627,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11048:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10963:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11052:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11053:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10967:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10968:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11053:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:11054:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10968:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10969:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11055:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:11055:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10970:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10970:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
@@ -36945,16 +36678,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0"
-    // InternalPerspectiveDsl.g:11064:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+    // InternalPerspectiveDsl.g:10979:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
     public final void rule__XUnaryOperation__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11068:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
-            // InternalPerspectiveDsl.g:11069:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+            // InternalPerspectiveDsl.g:10983:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+            // InternalPerspectiveDsl.g:10984:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
             {
-            pushFollow(FOLLOW_81);
+            pushFollow(FOLLOW_80);
             rule__XUnaryOperation__Group_0__0__Impl();
 
             state._fsp--;
@@ -36983,23 +36716,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:11076:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10991:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
     public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11080:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11081:1: ( () )
+            // InternalPerspectiveDsl.g:10995:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10996:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11081:1: ( () )
-            // InternalPerspectiveDsl.g:11082:2: ()
+            // InternalPerspectiveDsl.g:10996:1: ( () )
+            // InternalPerspectiveDsl.g:10997:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11083:2: ()
-            // InternalPerspectiveDsl.g:11083:3: 
+            // InternalPerspectiveDsl.g:10998:2: ()
+            // InternalPerspectiveDsl.g:10998:3: 
             {
             }
 
@@ -37024,16 +36757,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1"
-    // InternalPerspectiveDsl.g:11091:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+    // InternalPerspectiveDsl.g:11006:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
     public final void rule__XUnaryOperation__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11095:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
-            // InternalPerspectiveDsl.g:11096:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+            // InternalPerspectiveDsl.g:11010:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+            // InternalPerspectiveDsl.g:11011:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XUnaryOperation__Group_0__1__Impl();
 
             state._fsp--;
@@ -37062,23 +36795,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:11103:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11018:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
     public final void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11107:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11108:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:11022:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11023:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11108:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
-            // InternalPerspectiveDsl.g:11109:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:11023:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:11024:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11110:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
-            // InternalPerspectiveDsl.g:11110:3: rule__XUnaryOperation__FeatureAssignment_0_1
+            // InternalPerspectiveDsl.g:11025:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:11025:3: rule__XUnaryOperation__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__FeatureAssignment_0_1();
@@ -37113,14 +36846,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2"
-    // InternalPerspectiveDsl.g:11118:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:11033:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
     public final void rule__XUnaryOperation__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11122:1: ( rule__XUnaryOperation__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:11123:2: rule__XUnaryOperation__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:11037:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:11038:2: rule__XUnaryOperation__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Group_0__2__Impl();
@@ -37146,23 +36879,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:11129:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:11044:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
     public final void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11133:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
-            // InternalPerspectiveDsl.g:11134:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalPerspectiveDsl.g:11048:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+            // InternalPerspectiveDsl.g:11049:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:11134:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
-            // InternalPerspectiveDsl.g:11135:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalPerspectiveDsl.g:11049:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalPerspectiveDsl.g:11050:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
             }
-            // InternalPerspectiveDsl.g:11136:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
-            // InternalPerspectiveDsl.g:11136:3: rule__XUnaryOperation__OperandAssignment_0_2
+            // InternalPerspectiveDsl.g:11051:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalPerspectiveDsl.g:11051:3: rule__XUnaryOperation__OperandAssignment_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__OperandAssignment_0_2();
@@ -37197,16 +36930,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0"
-    // InternalPerspectiveDsl.g:11145:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:11060:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
     public final void rule__XCastedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11149:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
-            // InternalPerspectiveDsl.g:11150:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+            // InternalPerspectiveDsl.g:11064:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+            // InternalPerspectiveDsl.g:11065:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
             {
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_81);
             rule__XCastedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -37235,17 +36968,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:11157:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
+    // InternalPerspectiveDsl.g:11072:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
     public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11161:1: ( ( ruleXPostfixOperation ) )
-            // InternalPerspectiveDsl.g:11162:1: ( ruleXPostfixOperation )
+            // InternalPerspectiveDsl.g:11076:1: ( ( ruleXPostfixOperation ) )
+            // InternalPerspectiveDsl.g:11077:1: ( ruleXPostfixOperation )
             {
-            // InternalPerspectiveDsl.g:11162:1: ( ruleXPostfixOperation )
-            // InternalPerspectiveDsl.g:11163:2: ruleXPostfixOperation
+            // InternalPerspectiveDsl.g:11077:1: ( ruleXPostfixOperation )
+            // InternalPerspectiveDsl.g:11078:2: ruleXPostfixOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
@@ -37280,14 +37013,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1"
-    // InternalPerspectiveDsl.g:11172:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:11087:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
     public final void rule__XCastedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11176:1: ( rule__XCastedExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:11177:2: rule__XCastedExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:11091:1: ( rule__XCastedExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:11092:2: rule__XCastedExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__1__Impl();
@@ -37313,31 +37046,31 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:11183:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:11098:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
     public final void rule__XCastedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11187:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:11188:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11102:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:11103:1: ( ( rule__XCastedExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:11188:1: ( ( rule__XCastedExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:11189:2: ( rule__XCastedExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:11103:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:11104:2: ( rule__XCastedExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:11190:2: ( rule__XCastedExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:11105:2: ( rule__XCastedExpression__Group_1__0 )*
             loop78:
             do {
                 int alt78=2;
                 int LA78_0 = input.LA(1);
 
-                if ( (LA78_0==97) ) {
+                if ( (LA78_0==96) ) {
                     int LA78_2 = input.LA(2);
 
-                    if ( (synpred135_InternalPerspectiveDsl()) ) {
+                    if ( (synpred134_InternalPerspectiveDsl()) ) {
                         alt78=1;
                     }
 
@@ -37347,9 +37080,9 @@
 
                 switch (alt78) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:11190:3: rule__XCastedExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:11105:3: rule__XCastedExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_83);
+            	    pushFollow(FOLLOW_82);
             	    rule__XCastedExpression__Group_1__0();
 
             	    state._fsp--;
@@ -37388,16 +37121,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:11199:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:11114:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
     public final void rule__XCastedExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11203:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:11204:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+            // InternalPerspectiveDsl.g:11118:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:11119:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XCastedExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -37426,23 +37159,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:11211:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11126:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11215:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11216:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11130:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11131:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11216:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:11217:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11131:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11132:2: ( rule__XCastedExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:11218:2: ( rule__XCastedExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:11218:3: rule__XCastedExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:11133:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11133:3: rule__XCastedExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0();
@@ -37477,14 +37210,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:11226:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:11141:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
     public final void rule__XCastedExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11230:1: ( rule__XCastedExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:11231:2: rule__XCastedExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:11145:1: ( rule__XCastedExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:11146:2: rule__XCastedExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1__1__Impl();
@@ -37510,23 +37243,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:11237:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:11152:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
     public final void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11241:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:11242:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11156:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:11157:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:11242:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:11243:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11157:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:11158:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:11244:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
-            // InternalPerspectiveDsl.g:11244:3: rule__XCastedExpression__TypeAssignment_1_1
+            // InternalPerspectiveDsl.g:11159:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalPerspectiveDsl.g:11159:3: rule__XCastedExpression__TypeAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__TypeAssignment_1_1();
@@ -37561,14 +37294,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:11253:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11168:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
     public final void rule__XCastedExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11257:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:11258:2: rule__XCastedExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:11172:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:11173:2: rule__XCastedExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0__Impl();
@@ -37594,23 +37327,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11264:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11179:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11268:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11269:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11183:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11184:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11269:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11270:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11184:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11185:2: ( rule__XCastedExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11271:2: ( rule__XCastedExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11271:3: rule__XCastedExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:11186:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11186:3: rule__XCastedExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__0();
@@ -37645,16 +37378,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:11280:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:11195:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
     public final void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11284:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11285:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:11199:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:11200:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_81);
             rule__XCastedExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -37683,23 +37416,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11292:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11207:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11296:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11297:1: ( () )
+            // InternalPerspectiveDsl.g:11211:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11212:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11297:1: ( () )
-            // InternalPerspectiveDsl.g:11298:2: ()
+            // InternalPerspectiveDsl.g:11212:1: ( () )
+            // InternalPerspectiveDsl.g:11213:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11299:2: ()
-            // InternalPerspectiveDsl.g:11299:3: 
+            // InternalPerspectiveDsl.g:11214:2: ()
+            // InternalPerspectiveDsl.g:11214:3: 
             {
             }
 
@@ -37724,14 +37457,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:11307:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11222:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
     public final void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11311:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11312:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:11226:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:11227:2: rule__XCastedExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__1__Impl();
@@ -37757,22 +37490,22 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11318:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+    // InternalPerspectiveDsl.g:11233:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
     public final void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11322:1: ( ( 'as' ) )
-            // InternalPerspectiveDsl.g:11323:1: ( 'as' )
+            // InternalPerspectiveDsl.g:11237:1: ( ( 'as' ) )
+            // InternalPerspectiveDsl.g:11238:1: ( 'as' )
             {
-            // InternalPerspectiveDsl.g:11323:1: ( 'as' )
-            // InternalPerspectiveDsl.g:11324:2: 'as'
+            // InternalPerspectiveDsl.g:11238:1: ( 'as' )
+            // InternalPerspectiveDsl.g:11239:2: 'as'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,96,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
@@ -37798,16 +37531,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0"
-    // InternalPerspectiveDsl.g:11334:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
+    // InternalPerspectiveDsl.g:11249:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
     public final void rule__XPostfixOperation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11338:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
-            // InternalPerspectiveDsl.g:11339:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
+            // InternalPerspectiveDsl.g:11253:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
+            // InternalPerspectiveDsl.g:11254:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
             {
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_83);
             rule__XPostfixOperation__Group__0__Impl();
 
             state._fsp--;
@@ -37836,17 +37569,17 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
-    // InternalPerspectiveDsl.g:11346:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+    // InternalPerspectiveDsl.g:11261:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
     public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11350:1: ( ( ruleXMemberFeatureCall ) )
-            // InternalPerspectiveDsl.g:11351:1: ( ruleXMemberFeatureCall )
+            // InternalPerspectiveDsl.g:11265:1: ( ( ruleXMemberFeatureCall ) )
+            // InternalPerspectiveDsl.g:11266:1: ( ruleXMemberFeatureCall )
             {
-            // InternalPerspectiveDsl.g:11351:1: ( ruleXMemberFeatureCall )
-            // InternalPerspectiveDsl.g:11352:2: ruleXMemberFeatureCall
+            // InternalPerspectiveDsl.g:11266:1: ( ruleXMemberFeatureCall )
+            // InternalPerspectiveDsl.g:11267:2: ruleXMemberFeatureCall
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
@@ -37881,14 +37614,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1"
-    // InternalPerspectiveDsl.g:11361:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:11276:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
     public final void rule__XPostfixOperation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11365:1: ( rule__XPostfixOperation__Group__1__Impl )
-            // InternalPerspectiveDsl.g:11366:2: rule__XPostfixOperation__Group__1__Impl
+            // InternalPerspectiveDsl.g:11280:1: ( rule__XPostfixOperation__Group__1__Impl )
+            // InternalPerspectiveDsl.g:11281:2: rule__XPostfixOperation__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__1__Impl();
@@ -37914,42 +37647,42 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
-    // InternalPerspectiveDsl.g:11372:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:11287:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
     public final void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11376:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:11377:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:11291:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:11292:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:11377:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:11378:2: ( rule__XPostfixOperation__Group_1__0 )?
+            // InternalPerspectiveDsl.g:11292:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:11293:2: ( rule__XPostfixOperation__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:11379:2: ( rule__XPostfixOperation__Group_1__0 )?
+            // InternalPerspectiveDsl.g:11294:2: ( rule__XPostfixOperation__Group_1__0 )?
             int alt79=2;
             int LA79_0 = input.LA(1);
 
             if ( (LA79_0==41) ) {
                 int LA79_1 = input.LA(2);
 
-                if ( (synpred136_InternalPerspectiveDsl()) ) {
+                if ( (synpred135_InternalPerspectiveDsl()) ) {
                     alt79=1;
                 }
             }
             else if ( (LA79_0==42) ) {
                 int LA79_2 = input.LA(2);
 
-                if ( (synpred136_InternalPerspectiveDsl()) ) {
+                if ( (synpred135_InternalPerspectiveDsl()) ) {
                     alt79=1;
                 }
             }
             switch (alt79) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:11379:3: rule__XPostfixOperation__Group_1__0
+                    // InternalPerspectiveDsl.g:11294:3: rule__XPostfixOperation__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XPostfixOperation__Group_1__0();
@@ -37987,14 +37720,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0"
-    // InternalPerspectiveDsl.g:11388:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
+    // InternalPerspectiveDsl.g:11303:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
     public final void rule__XPostfixOperation__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11392:1: ( rule__XPostfixOperation__Group_1__0__Impl )
-            // InternalPerspectiveDsl.g:11393:2: rule__XPostfixOperation__Group_1__0__Impl
+            // InternalPerspectiveDsl.g:11307:1: ( rule__XPostfixOperation__Group_1__0__Impl )
+            // InternalPerspectiveDsl.g:11308:2: rule__XPostfixOperation__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1__0__Impl();
@@ -38020,23 +37753,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:11399:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11314:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
     public final void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11403:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11404:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11318:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11319:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11404:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:11405:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11319:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11320:2: ( rule__XPostfixOperation__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:11406:2: ( rule__XPostfixOperation__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:11406:3: rule__XPostfixOperation__Group_1_0__0
+            // InternalPerspectiveDsl.g:11321:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:11321:3: rule__XPostfixOperation__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__0();
@@ -38071,16 +37804,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
-    // InternalPerspectiveDsl.g:11415:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:11330:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
     public final void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11419:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:11420:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
+            // InternalPerspectiveDsl.g:11334:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:11335:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
             {
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_83);
             rule__XPostfixOperation__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -38109,23 +37842,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11427:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11342:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
     public final void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11431:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11432:1: ( () )
+            // InternalPerspectiveDsl.g:11346:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11347:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11432:1: ( () )
-            // InternalPerspectiveDsl.g:11433:2: ()
+            // InternalPerspectiveDsl.g:11347:1: ( () )
+            // InternalPerspectiveDsl.g:11348:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11434:2: ()
-            // InternalPerspectiveDsl.g:11434:3: 
+            // InternalPerspectiveDsl.g:11349:2: ()
+            // InternalPerspectiveDsl.g:11349:3: 
             {
             }
 
@@ -38150,14 +37883,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
-    // InternalPerspectiveDsl.g:11442:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11357:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
     public final void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11446:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:11447:2: rule__XPostfixOperation__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:11361:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:11362:2: rule__XPostfixOperation__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__1__Impl();
@@ -38183,23 +37916,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:11453:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11368:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
     public final void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11457:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11458:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:11372:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11373:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11458:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:11459:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:11373:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:11374:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11460:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:11460:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
+            // InternalPerspectiveDsl.g:11375:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:11375:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__FeatureAssignment_1_0_1();
@@ -38234,16 +37967,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0"
-    // InternalPerspectiveDsl.g:11469:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+    // InternalPerspectiveDsl.g:11384:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
     public final void rule__XMemberFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11473:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
-            // InternalPerspectiveDsl.g:11474:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+            // InternalPerspectiveDsl.g:11388:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+            // InternalPerspectiveDsl.g:11389:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_84);
             rule__XMemberFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -38272,17 +38005,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
-    // InternalPerspectiveDsl.g:11481:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+    // InternalPerspectiveDsl.g:11396:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
     public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11485:1: ( ( ruleXPrimaryExpression ) )
-            // InternalPerspectiveDsl.g:11486:1: ( ruleXPrimaryExpression )
+            // InternalPerspectiveDsl.g:11400:1: ( ( ruleXPrimaryExpression ) )
+            // InternalPerspectiveDsl.g:11401:1: ( ruleXPrimaryExpression )
             {
-            // InternalPerspectiveDsl.g:11486:1: ( ruleXPrimaryExpression )
-            // InternalPerspectiveDsl.g:11487:2: ruleXPrimaryExpression
+            // InternalPerspectiveDsl.g:11401:1: ( ruleXPrimaryExpression )
+            // InternalPerspectiveDsl.g:11402:2: ruleXPrimaryExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
@@ -38317,14 +38050,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1"
-    // InternalPerspectiveDsl.g:11496:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:11411:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
     public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11500:1: ( rule__XMemberFeatureCall__Group__1__Impl )
-            // InternalPerspectiveDsl.g:11501:2: rule__XMemberFeatureCall__Group__1__Impl
+            // InternalPerspectiveDsl.g:11415:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+            // InternalPerspectiveDsl.g:11416:2: rule__XMemberFeatureCall__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__1__Impl();
@@ -38350,22 +38083,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
-    // InternalPerspectiveDsl.g:11507:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+    // InternalPerspectiveDsl.g:11422:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
     public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11511:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
-            // InternalPerspectiveDsl.g:11512:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:11426:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+            // InternalPerspectiveDsl.g:11427:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
             {
-            // InternalPerspectiveDsl.g:11512:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
-            // InternalPerspectiveDsl.g:11513:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            // InternalPerspectiveDsl.g:11427:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalPerspectiveDsl.g:11428:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:11514:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            // InternalPerspectiveDsl.g:11429:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
             loop80:
             do {
                 int alt80=2;
@@ -38374,7 +38107,18 @@
                     {
                     int LA80_2 = input.LA(2);
 
-                    if ( (synpred137_InternalPerspectiveDsl()) ) {
+                    if ( (synpred136_InternalPerspectiveDsl()) ) {
+                        alt80=1;
+                    }
+
+
+                    }
+                    break;
+                case 120:
+                    {
+                    int LA80_3 = input.LA(2);
+
+                    if ( (synpred136_InternalPerspectiveDsl()) ) {
                         alt80=1;
                     }
 
@@ -38383,20 +38127,9 @@
                     break;
                 case 121:
                     {
-                    int LA80_3 = input.LA(2);
-
-                    if ( (synpred137_InternalPerspectiveDsl()) ) {
-                        alt80=1;
-                    }
-
-
-                    }
-                    break;
-                case 122:
-                    {
                     int LA80_4 = input.LA(2);
 
-                    if ( (synpred137_InternalPerspectiveDsl()) ) {
+                    if ( (synpred136_InternalPerspectiveDsl()) ) {
                         alt80=1;
                     }
 
@@ -38408,9 +38141,9 @@
 
                 switch (alt80) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:11514:3: rule__XMemberFeatureCall__Alternatives_1
+            	    // InternalPerspectiveDsl.g:11429:3: rule__XMemberFeatureCall__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_86);
+            	    pushFollow(FOLLOW_85);
             	    rule__XMemberFeatureCall__Alternatives_1();
 
             	    state._fsp--;
@@ -38449,16 +38182,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
-    // InternalPerspectiveDsl.g:11523:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:11438:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11527:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:11528:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+            // InternalPerspectiveDsl.g:11442:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:11443:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XMemberFeatureCall__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -38487,23 +38220,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11535:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11450:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11539:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11540:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11454:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11455:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11540:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11541:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11455:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11456:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11542:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11542:3: rule__XMemberFeatureCall__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:11457:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11457:3: rule__XMemberFeatureCall__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0();
@@ -38538,14 +38271,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
-    // InternalPerspectiveDsl.g:11550:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11465:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11554:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:11555:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:11469:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:11470:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0__1__Impl();
@@ -38571,23 +38304,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:11561:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11476:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11565:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11566:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:11480:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11481:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11566:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:11567:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:11481:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:11482:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11568:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:11568:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+            // InternalPerspectiveDsl.g:11483:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:11483:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ValueAssignment_1_0_1();
@@ -38622,14 +38355,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:11577:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11492:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11581:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:11582:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+            // InternalPerspectiveDsl.g:11496:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:11497:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
@@ -38655,23 +38388,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11588:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11503:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11592:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11593:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11507:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11508:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11593:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11594:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:11508:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11509:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11595:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
-            // InternalPerspectiveDsl.g:11595:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
+            // InternalPerspectiveDsl.g:11510:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalPerspectiveDsl.g:11510:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__0();
@@ -38706,16 +38439,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
-    // InternalPerspectiveDsl.g:11604:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
+    // InternalPerspectiveDsl.g:11519:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11608:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
-            // InternalPerspectiveDsl.g:11609:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+            // InternalPerspectiveDsl.g:11523:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+            // InternalPerspectiveDsl.g:11524:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_86);
             rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -38744,23 +38477,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11616:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11531:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11620:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11621:1: ( () )
+            // InternalPerspectiveDsl.g:11535:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11536:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11621:1: ( () )
-            // InternalPerspectiveDsl.g:11622:2: ()
+            // InternalPerspectiveDsl.g:11536:1: ( () )
+            // InternalPerspectiveDsl.g:11537:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11623:2: ()
-            // InternalPerspectiveDsl.g:11623:3: 
+            // InternalPerspectiveDsl.g:11538:2: ()
+            // InternalPerspectiveDsl.g:11538:3: 
             {
             }
 
@@ -38785,16 +38518,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
-    // InternalPerspectiveDsl.g:11631:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
+    // InternalPerspectiveDsl.g:11546:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11635:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
-            // InternalPerspectiveDsl.g:11636:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+            // InternalPerspectiveDsl.g:11550:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+            // InternalPerspectiveDsl.g:11551:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
             {
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_57);
             rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
 
             state._fsp--;
@@ -38823,23 +38556,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11643:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11558:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11647:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11648:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11562:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11563:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11648:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
-            // InternalPerspectiveDsl.g:11649:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalPerspectiveDsl.g:11563:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11564:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11650:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
-            // InternalPerspectiveDsl.g:11650:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+            // InternalPerspectiveDsl.g:11565:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalPerspectiveDsl.g:11565:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
@@ -38874,16 +38607,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
-    // InternalPerspectiveDsl.g:11658:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
+    // InternalPerspectiveDsl.g:11573:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11662:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
-            // InternalPerspectiveDsl.g:11663:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+            // InternalPerspectiveDsl.g:11577:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+            // InternalPerspectiveDsl.g:11578:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_53);
             rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
 
             state._fsp--;
@@ -38912,23 +38645,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:11670:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:11585:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11674:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
-            // InternalPerspectiveDsl.g:11675:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalPerspectiveDsl.g:11589:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+            // InternalPerspectiveDsl.g:11590:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:11675:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
-            // InternalPerspectiveDsl.g:11676:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalPerspectiveDsl.g:11590:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalPerspectiveDsl.g:11591:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
             }
-            // InternalPerspectiveDsl.g:11677:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
-            // InternalPerspectiveDsl.g:11677:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+            // InternalPerspectiveDsl.g:11592:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalPerspectiveDsl.g:11592:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
@@ -38963,14 +38696,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
-    // InternalPerspectiveDsl.g:11685:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+    // InternalPerspectiveDsl.g:11600:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11689:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
-            // InternalPerspectiveDsl.g:11690:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+            // InternalPerspectiveDsl.g:11604:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+            // InternalPerspectiveDsl.g:11605:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
@@ -38996,17 +38729,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
-    // InternalPerspectiveDsl.g:11696:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+    // InternalPerspectiveDsl.g:11611:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11700:1: ( ( ruleOpSingleAssign ) )
-            // InternalPerspectiveDsl.g:11701:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:11615:1: ( ( ruleOpSingleAssign ) )
+            // InternalPerspectiveDsl.g:11616:1: ( ruleOpSingleAssign )
             {
-            // InternalPerspectiveDsl.g:11701:1: ( ruleOpSingleAssign )
-            // InternalPerspectiveDsl.g:11702:2: ruleOpSingleAssign
+            // InternalPerspectiveDsl.g:11616:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:11617:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
@@ -39041,16 +38774,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
-    // InternalPerspectiveDsl.g:11712:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:11627:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11716:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:11717:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+            // InternalPerspectiveDsl.g:11631:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:11632:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_87);
             rule__XMemberFeatureCall__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -39079,23 +38812,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:11724:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11639:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11728:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11729:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11643:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11644:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11729:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
-            // InternalPerspectiveDsl.g:11730:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:11644:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:11645:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:11731:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
-            // InternalPerspectiveDsl.g:11731:3: rule__XMemberFeatureCall__Group_1_1_0__0
+            // InternalPerspectiveDsl.g:11646:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:11646:3: rule__XMemberFeatureCall__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0();
@@ -39130,16 +38863,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
-    // InternalPerspectiveDsl.g:11739:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+    // InternalPerspectiveDsl.g:11654:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11743:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
-            // InternalPerspectiveDsl.g:11744:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+            // InternalPerspectiveDsl.g:11658:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+            // InternalPerspectiveDsl.g:11659:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_87);
             rule__XMemberFeatureCall__Group_1_1__1__Impl();
 
             state._fsp--;
@@ -39168,22 +38901,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:11751:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:11666:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11755:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:11756:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalPerspectiveDsl.g:11670:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:11671:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:11756:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
-            // InternalPerspectiveDsl.g:11757:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            // InternalPerspectiveDsl.g:11671:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalPerspectiveDsl.g:11672:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:11758:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            // InternalPerspectiveDsl.g:11673:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
             int alt81=2;
             int LA81_0 = input.LA(1);
 
@@ -39192,7 +38925,7 @@
             }
             switch (alt81) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:11758:3: rule__XMemberFeatureCall__Group_1_1_1__0
+                    // InternalPerspectiveDsl.g:11673:3: rule__XMemberFeatureCall__Group_1_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_1__0();
@@ -39230,16 +38963,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
-    // InternalPerspectiveDsl.g:11766:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+    // InternalPerspectiveDsl.g:11681:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11770:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
-            // InternalPerspectiveDsl.g:11771:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+            // InternalPerspectiveDsl.g:11685:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+            // InternalPerspectiveDsl.g:11686:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
             {
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_88);
             rule__XMemberFeatureCall__Group_1_1__2__Impl();
 
             state._fsp--;
@@ -39268,23 +39001,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
-    // InternalPerspectiveDsl.g:11778:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+    // InternalPerspectiveDsl.g:11693:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11782:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
-            // InternalPerspectiveDsl.g:11783:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalPerspectiveDsl.g:11697:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+            // InternalPerspectiveDsl.g:11698:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
             {
-            // InternalPerspectiveDsl.g:11783:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
-            // InternalPerspectiveDsl.g:11784:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalPerspectiveDsl.g:11698:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalPerspectiveDsl.g:11699:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
             }
-            // InternalPerspectiveDsl.g:11785:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
-            // InternalPerspectiveDsl.g:11785:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+            // InternalPerspectiveDsl.g:11700:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalPerspectiveDsl.g:11700:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
@@ -39319,16 +39052,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
-    // InternalPerspectiveDsl.g:11793:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+    // InternalPerspectiveDsl.g:11708:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
     public final void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11797:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
-            // InternalPerspectiveDsl.g:11798:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+            // InternalPerspectiveDsl.g:11712:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+            // InternalPerspectiveDsl.g:11713:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
             {
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_88);
             rule__XMemberFeatureCall__Group_1_1__3__Impl();
 
             state._fsp--;
@@ -39357,27 +39090,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
-    // InternalPerspectiveDsl.g:11805:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:11720:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11809:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
-            // InternalPerspectiveDsl.g:11810:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalPerspectiveDsl.g:11724:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+            // InternalPerspectiveDsl.g:11725:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:11810:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
-            // InternalPerspectiveDsl.g:11811:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            // InternalPerspectiveDsl.g:11725:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalPerspectiveDsl.g:11726:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
             }
-            // InternalPerspectiveDsl.g:11812:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            // InternalPerspectiveDsl.g:11727:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
             int alt82=2;
             alt82 = dfa82.predict(input);
             switch (alt82) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:11812:3: rule__XMemberFeatureCall__Group_1_1_3__0
+                    // InternalPerspectiveDsl.g:11727:3: rule__XMemberFeatureCall__Group_1_1_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -39415,14 +39148,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
-    // InternalPerspectiveDsl.g:11820:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+    // InternalPerspectiveDsl.g:11735:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11824:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
-            // InternalPerspectiveDsl.g:11825:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+            // InternalPerspectiveDsl.g:11739:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+            // InternalPerspectiveDsl.g:11740:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1__4__Impl();
@@ -39448,27 +39181,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
-    // InternalPerspectiveDsl.g:11831:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+    // InternalPerspectiveDsl.g:11746:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11835:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
-            // InternalPerspectiveDsl.g:11836:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalPerspectiveDsl.g:11750:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+            // InternalPerspectiveDsl.g:11751:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
             {
-            // InternalPerspectiveDsl.g:11836:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
-            // InternalPerspectiveDsl.g:11837:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            // InternalPerspectiveDsl.g:11751:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalPerspectiveDsl.g:11752:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
             }
-            // InternalPerspectiveDsl.g:11838:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            // InternalPerspectiveDsl.g:11753:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
             int alt83=2;
             alt83 = dfa83.predict(input);
             switch (alt83) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:11838:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+                    // InternalPerspectiveDsl.g:11753:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -39506,14 +39239,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
-    // InternalPerspectiveDsl.g:11847:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:11762:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11851:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:11852:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+            // InternalPerspectiveDsl.g:11766:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:11767:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
@@ -39539,23 +39272,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:11858:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:11773:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11862:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:11863:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11777:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:11778:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:11863:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:11864:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11778:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:11779:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11865:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
-            // InternalPerspectiveDsl.g:11865:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
+            // InternalPerspectiveDsl.g:11780:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:11780:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__0();
@@ -39590,16 +39323,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
-    // InternalPerspectiveDsl.g:11874:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:11789:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11878:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
-            // InternalPerspectiveDsl.g:11879:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+            // InternalPerspectiveDsl.g:11793:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+            // InternalPerspectiveDsl.g:11794:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_84);
             rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -39628,23 +39361,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:11886:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:11801:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11890:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:11891:1: ( () )
+            // InternalPerspectiveDsl.g:11805:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:11806:1: ( () )
             {
-            // InternalPerspectiveDsl.g:11891:1: ( () )
-            // InternalPerspectiveDsl.g:11892:2: ()
+            // InternalPerspectiveDsl.g:11806:1: ( () )
+            // InternalPerspectiveDsl.g:11807:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:11893:2: ()
-            // InternalPerspectiveDsl.g:11893:3: 
+            // InternalPerspectiveDsl.g:11808:2: ()
+            // InternalPerspectiveDsl.g:11808:3: 
             {
             }
 
@@ -39669,14 +39402,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
-    // InternalPerspectiveDsl.g:11901:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:11816:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11905:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:11906:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:11820:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:11821:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
@@ -39702,23 +39435,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:11912:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:11827:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11916:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:11917:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11831:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:11832:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:11917:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:11918:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11832:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:11833:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:11919:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
-            // InternalPerspectiveDsl.g:11919:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+            // InternalPerspectiveDsl.g:11834:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:11834:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
@@ -39753,16 +39486,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
-    // InternalPerspectiveDsl.g:11928:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
+    // InternalPerspectiveDsl.g:11843:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11932:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
-            // InternalPerspectiveDsl.g:11933:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+            // InternalPerspectiveDsl.g:11847:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+            // InternalPerspectiveDsl.g:11848:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -39791,17 +39524,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:11940:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:11855:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11944:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:11945:1: ( '<' )
+            // InternalPerspectiveDsl.g:11859:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:11860:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:11945:1: ( '<' )
-            // InternalPerspectiveDsl.g:11946:2: '<'
+            // InternalPerspectiveDsl.g:11860:1: ( '<' )
+            // InternalPerspectiveDsl.g:11861:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
@@ -39832,16 +39565,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
-    // InternalPerspectiveDsl.g:11955:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
+    // InternalPerspectiveDsl.g:11870:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11959:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
-            // InternalPerspectiveDsl.g:11960:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+            // InternalPerspectiveDsl.g:11874:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+            // InternalPerspectiveDsl.g:11875:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
 
             state._fsp--;
@@ -39870,23 +39603,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:11967:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:11882:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11971:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:11972:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:11886:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:11887:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:11972:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:11973:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:11887:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:11888:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:11974:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
-            // InternalPerspectiveDsl.g:11974:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+            // InternalPerspectiveDsl.g:11889:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:11889:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
@@ -39921,16 +39654,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
-    // InternalPerspectiveDsl.g:11982:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
+    // InternalPerspectiveDsl.g:11897:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11986:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
-            // InternalPerspectiveDsl.g:11987:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+            // InternalPerspectiveDsl.g:11901:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+            // InternalPerspectiveDsl.g:11902:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
 
             state._fsp--;
@@ -39959,37 +39692,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
-    // InternalPerspectiveDsl.g:11994:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:11909:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:11998:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
-            // InternalPerspectiveDsl.g:11999:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalPerspectiveDsl.g:11913:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+            // InternalPerspectiveDsl.g:11914:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:11999:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
-            // InternalPerspectiveDsl.g:12000:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            // InternalPerspectiveDsl.g:11914:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalPerspectiveDsl.g:11915:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
             }
-            // InternalPerspectiveDsl.g:12001:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            // InternalPerspectiveDsl.g:11916:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
             loop84:
             do {
                 int alt84=2;
                 int LA84_0 = input.LA(1);
 
-                if ( (LA84_0==92) ) {
+                if ( (LA84_0==91) ) {
                     alt84=1;
                 }
 
 
                 switch (alt84) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:12001:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
+            	    // InternalPerspectiveDsl.g:11916:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XMemberFeatureCall__Group_1_1_1_2__0();
 
             	    state._fsp--;
@@ -40028,14 +39761,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
-    // InternalPerspectiveDsl.g:12009:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+    // InternalPerspectiveDsl.g:11924:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12013:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
-            // InternalPerspectiveDsl.g:12014:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+            // InternalPerspectiveDsl.g:11928:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+            // InternalPerspectiveDsl.g:11929:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
@@ -40061,17 +39794,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
-    // InternalPerspectiveDsl.g:12020:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:11935:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12024:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:12025:1: ( '>' )
+            // InternalPerspectiveDsl.g:11939:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:11940:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:12025:1: ( '>' )
-            // InternalPerspectiveDsl.g:12026:2: '>'
+            // InternalPerspectiveDsl.g:11940:1: ( '>' )
+            // InternalPerspectiveDsl.g:11941:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
@@ -40102,16 +39835,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
-    // InternalPerspectiveDsl.g:12036:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
+    // InternalPerspectiveDsl.g:11951:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12040:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
-            // InternalPerspectiveDsl.g:12041:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+            // InternalPerspectiveDsl.g:11955:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+            // InternalPerspectiveDsl.g:11956:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
 
             state._fsp--;
@@ -40140,22 +39873,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
-    // InternalPerspectiveDsl.g:12048:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:11963:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12052:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:12053:1: ( ',' )
+            // InternalPerspectiveDsl.g:11967:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:11968:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:12053:1: ( ',' )
-            // InternalPerspectiveDsl.g:12054:2: ','
+            // InternalPerspectiveDsl.g:11968:1: ( ',' )
+            // InternalPerspectiveDsl.g:11969:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
@@ -40181,14 +39914,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
-    // InternalPerspectiveDsl.g:12063:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+    // InternalPerspectiveDsl.g:11978:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12067:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
-            // InternalPerspectiveDsl.g:12068:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+            // InternalPerspectiveDsl.g:11982:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+            // InternalPerspectiveDsl.g:11983:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
@@ -40214,23 +39947,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
-    // InternalPerspectiveDsl.g:12074:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:11989:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12078:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
-            // InternalPerspectiveDsl.g:12079:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalPerspectiveDsl.g:11993:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+            // InternalPerspectiveDsl.g:11994:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:12079:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
-            // InternalPerspectiveDsl.g:12080:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalPerspectiveDsl.g:11994:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalPerspectiveDsl.g:11995:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
             }
-            // InternalPerspectiveDsl.g:12081:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
-            // InternalPerspectiveDsl.g:12081:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+            // InternalPerspectiveDsl.g:11996:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalPerspectiveDsl.g:11996:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
@@ -40265,16 +39998,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
-    // InternalPerspectiveDsl.g:12090:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
+    // InternalPerspectiveDsl.g:12005:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12094:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
-            // InternalPerspectiveDsl.g:12095:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+            // InternalPerspectiveDsl.g:12009:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+            // InternalPerspectiveDsl.g:12010:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
 
             state._fsp--;
@@ -40303,23 +40036,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
-    // InternalPerspectiveDsl.g:12102:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:12017:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12106:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
-            // InternalPerspectiveDsl.g:12107:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalPerspectiveDsl.g:12021:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+            // InternalPerspectiveDsl.g:12022:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:12107:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
-            // InternalPerspectiveDsl.g:12108:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalPerspectiveDsl.g:12022:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalPerspectiveDsl.g:12023:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
             }
-            // InternalPerspectiveDsl.g:12109:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
-            // InternalPerspectiveDsl.g:12109:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+            // InternalPerspectiveDsl.g:12024:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalPerspectiveDsl.g:12024:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
@@ -40354,16 +40087,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
-    // InternalPerspectiveDsl.g:12117:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
+    // InternalPerspectiveDsl.g:12032:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12121:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
-            // InternalPerspectiveDsl.g:12122:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+            // InternalPerspectiveDsl.g:12036:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+            // InternalPerspectiveDsl.g:12037:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
 
             state._fsp--;
@@ -40392,31 +40125,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
-    // InternalPerspectiveDsl.g:12129:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+    // InternalPerspectiveDsl.g:12044:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12133:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
-            // InternalPerspectiveDsl.g:12134:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalPerspectiveDsl.g:12048:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+            // InternalPerspectiveDsl.g:12049:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
             {
-            // InternalPerspectiveDsl.g:12134:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
-            // InternalPerspectiveDsl.g:12135:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            // InternalPerspectiveDsl.g:12049:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalPerspectiveDsl.g:12050:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
             }
-            // InternalPerspectiveDsl.g:12136:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            // InternalPerspectiveDsl.g:12051:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
             int alt85=2;
             int LA85_0 = input.LA(1);
 
-            if ( ((LA85_0>=RULE_ID && LA85_0<=RULE_DECIMAL)||LA85_0==27||LA85_0==31||(LA85_0>=34 && LA85_0<=35)||LA85_0==40||(LA85_0>=45 && LA85_0<=50)||LA85_0==54||LA85_0==90||(LA85_0>=94 && LA85_0<=95)||LA85_0==98||LA85_0==100||(LA85_0>=104 && LA85_0<=112)||LA85_0==114||LA85_0==123||LA85_0==125) ) {
+            if ( ((LA85_0>=RULE_ID && LA85_0<=RULE_DECIMAL)||LA85_0==27||LA85_0==31||(LA85_0>=34 && LA85_0<=35)||LA85_0==40||(LA85_0>=45 && LA85_0<=50)||LA85_0==54||LA85_0==89||(LA85_0>=93 && LA85_0<=94)||LA85_0==97||LA85_0==99||(LA85_0>=103 && LA85_0<=111)||LA85_0==113||LA85_0==122||LA85_0==124) ) {
                 alt85=1;
             }
             switch (alt85) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12136:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+                    // InternalPerspectiveDsl.g:12051:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Alternatives_1_1_3_1();
@@ -40454,14 +40187,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
-    // InternalPerspectiveDsl.g:12144:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+    // InternalPerspectiveDsl.g:12059:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12148:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
-            // InternalPerspectiveDsl.g:12149:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+            // InternalPerspectiveDsl.g:12063:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+            // InternalPerspectiveDsl.g:12064:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
@@ -40487,22 +40220,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
-    // InternalPerspectiveDsl.g:12155:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:12070:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12159:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:12160:1: ( ')' )
+            // InternalPerspectiveDsl.g:12074:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:12075:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:12160:1: ( ')' )
-            // InternalPerspectiveDsl.g:12161:2: ')'
+            // InternalPerspectiveDsl.g:12075:1: ( ')' )
+            // InternalPerspectiveDsl.g:12076:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
@@ -40528,16 +40261,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
-    // InternalPerspectiveDsl.g:12171:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
+    // InternalPerspectiveDsl.g:12086:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12175:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
-            // InternalPerspectiveDsl.g:12176:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+            // InternalPerspectiveDsl.g:12090:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+            // InternalPerspectiveDsl.g:12091:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
 
             state._fsp--;
@@ -40566,23 +40299,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:12183:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:12098:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12187:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
-            // InternalPerspectiveDsl.g:12188:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:12102:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+            // InternalPerspectiveDsl.g:12103:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:12188:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
-            // InternalPerspectiveDsl.g:12189:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalPerspectiveDsl.g:12103:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:12104:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:12190:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
-            // InternalPerspectiveDsl.g:12190:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+            // InternalPerspectiveDsl.g:12105:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalPerspectiveDsl.g:12105:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
@@ -40617,14 +40350,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
-    // InternalPerspectiveDsl.g:12198:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:12113:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12202:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:12203:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+            // InternalPerspectiveDsl.g:12117:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:12118:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
@@ -40650,37 +40383,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:12209:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:12124:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12213:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:12214:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:12128:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:12129:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:12214:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:12215:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:12129:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:12130:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:12216:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:12131:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
             loop86:
             do {
                 int alt86=2;
                 int LA86_0 = input.LA(1);
 
-                if ( (LA86_0==92) ) {
+                if ( (LA86_0==91) ) {
                     alt86=1;
                 }
 
 
                 switch (alt86) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:12216:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+            	    // InternalPerspectiveDsl.g:12131:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
 
             	    state._fsp--;
@@ -40719,16 +40452,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
-    // InternalPerspectiveDsl.g:12225:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
+    // InternalPerspectiveDsl.g:12140:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12229:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
-            // InternalPerspectiveDsl.g:12230:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+            // InternalPerspectiveDsl.g:12144:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+            // InternalPerspectiveDsl.g:12145:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -40757,22 +40490,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:12237:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:12152:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12241:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:12242:1: ( ',' )
+            // InternalPerspectiveDsl.g:12156:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:12157:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:12242:1: ( ',' )
-            // InternalPerspectiveDsl.g:12243:2: ','
+            // InternalPerspectiveDsl.g:12157:1: ( ',' )
+            // InternalPerspectiveDsl.g:12158:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
@@ -40798,14 +40531,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
-    // InternalPerspectiveDsl.g:12252:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:12167:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12256:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:12257:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:12171:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:12172:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl();
@@ -40831,23 +40564,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:12263:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:12178:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12267:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:12268:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:12182:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:12183:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:12268:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:12269:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:12183:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:12184:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:12270:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
-            // InternalPerspectiveDsl.g:12270:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+            // InternalPerspectiveDsl.g:12185:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:12185:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
@@ -40882,16 +40615,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0"
-    // InternalPerspectiveDsl.g:12279:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:12194:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
     public final void rule__XSetLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12283:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:12284:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+            // InternalPerspectiveDsl.g:12198:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:12199:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_55);
             rule__XSetLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -40920,23 +40653,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:12291:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:12206:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12295:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:12296:1: ( () )
+            // InternalPerspectiveDsl.g:12210:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:12211:1: ( () )
             {
-            // InternalPerspectiveDsl.g:12296:1: ( () )
-            // InternalPerspectiveDsl.g:12297:2: ()
+            // InternalPerspectiveDsl.g:12211:1: ( () )
+            // InternalPerspectiveDsl.g:12212:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:12298:2: ()
-            // InternalPerspectiveDsl.g:12298:3: 
+            // InternalPerspectiveDsl.g:12213:2: ()
+            // InternalPerspectiveDsl.g:12213:3: 
             {
             }
 
@@ -40961,14 +40694,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1"
-    // InternalPerspectiveDsl.g:12306:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+    // InternalPerspectiveDsl.g:12221:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
     public final void rule__XSetLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12310:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
-            // InternalPerspectiveDsl.g:12311:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+            // InternalPerspectiveDsl.g:12225:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+            // InternalPerspectiveDsl.g:12226:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__XSetLiteral__Group__1__Impl();
@@ -40999,22 +40732,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:12318:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:12233:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12322:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:12323:1: ( '#' )
+            // InternalPerspectiveDsl.g:12237:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:12238:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:12323:1: ( '#' )
-            // InternalPerspectiveDsl.g:12324:2: '#'
+            // InternalPerspectiveDsl.g:12238:1: ( '#' )
+            // InternalPerspectiveDsl.g:12239:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -41040,16 +40773,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2"
-    // InternalPerspectiveDsl.g:12333:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+    // InternalPerspectiveDsl.g:12248:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
     public final void rule__XSetLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12337:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
-            // InternalPerspectiveDsl.g:12338:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+            // InternalPerspectiveDsl.g:12252:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+            // InternalPerspectiveDsl.g:12253:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
             {
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_92);
             rule__XSetLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -41078,17 +40811,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
-    // InternalPerspectiveDsl.g:12345:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:12260:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
     public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12349:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:12350:1: ( '{' )
+            // InternalPerspectiveDsl.g:12264:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:12265:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:12350:1: ( '{' )
-            // InternalPerspectiveDsl.g:12351:2: '{'
+            // InternalPerspectiveDsl.g:12265:1: ( '{' )
+            // InternalPerspectiveDsl.g:12266:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
@@ -41119,16 +40852,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3"
-    // InternalPerspectiveDsl.g:12360:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+    // InternalPerspectiveDsl.g:12275:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
     public final void rule__XSetLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12364:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
-            // InternalPerspectiveDsl.g:12365:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+            // InternalPerspectiveDsl.g:12279:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+            // InternalPerspectiveDsl.g:12280:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
             {
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_92);
             rule__XSetLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -41157,31 +40890,31 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
-    // InternalPerspectiveDsl.g:12372:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:12287:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
     public final void rule__XSetLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12376:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:12377:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:12291:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:12292:1: ( ( rule__XSetLiteral__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:12377:1: ( ( rule__XSetLiteral__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:12378:2: ( rule__XSetLiteral__Group_3__0 )?
+            // InternalPerspectiveDsl.g:12292:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:12293:2: ( rule__XSetLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:12379:2: ( rule__XSetLiteral__Group_3__0 )?
+            // InternalPerspectiveDsl.g:12294:2: ( rule__XSetLiteral__Group_3__0 )?
             int alt87=2;
             int LA87_0 = input.LA(1);
 
-            if ( ((LA87_0>=RULE_ID && LA87_0<=RULE_DECIMAL)||LA87_0==27||(LA87_0>=34 && LA87_0<=35)||LA87_0==40||(LA87_0>=45 && LA87_0<=50)||LA87_0==54||LA87_0==90||(LA87_0>=94 && LA87_0<=95)||LA87_0==98||LA87_0==100||(LA87_0>=104 && LA87_0<=112)||LA87_0==114||LA87_0==125) ) {
+            if ( ((LA87_0>=RULE_ID && LA87_0<=RULE_DECIMAL)||LA87_0==27||(LA87_0>=34 && LA87_0<=35)||LA87_0==40||(LA87_0>=45 && LA87_0<=50)||LA87_0==54||LA87_0==89||(LA87_0>=93 && LA87_0<=94)||LA87_0==97||LA87_0==99||(LA87_0>=103 && LA87_0<=111)||LA87_0==113||LA87_0==124) ) {
                 alt87=1;
             }
             switch (alt87) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12379:3: rule__XSetLiteral__Group_3__0
+                    // InternalPerspectiveDsl.g:12294:3: rule__XSetLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSetLiteral__Group_3__0();
@@ -41219,14 +40952,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4"
-    // InternalPerspectiveDsl.g:12387:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:12302:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
     public final void rule__XSetLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12391:1: ( rule__XSetLiteral__Group__4__Impl )
-            // InternalPerspectiveDsl.g:12392:2: rule__XSetLiteral__Group__4__Impl
+            // InternalPerspectiveDsl.g:12306:1: ( rule__XSetLiteral__Group__4__Impl )
+            // InternalPerspectiveDsl.g:12307:2: rule__XSetLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__4__Impl();
@@ -41252,17 +40985,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
-    // InternalPerspectiveDsl.g:12398:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:12313:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
     public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12402:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:12403:1: ( '}' )
+            // InternalPerspectiveDsl.g:12317:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:12318:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:12403:1: ( '}' )
-            // InternalPerspectiveDsl.g:12404:2: '}'
+            // InternalPerspectiveDsl.g:12318:1: ( '}' )
+            // InternalPerspectiveDsl.g:12319:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
@@ -41293,16 +41026,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0"
-    // InternalPerspectiveDsl.g:12414:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+    // InternalPerspectiveDsl.g:12329:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
     public final void rule__XSetLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12418:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
-            // InternalPerspectiveDsl.g:12419:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+            // InternalPerspectiveDsl.g:12333:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+            // InternalPerspectiveDsl.g:12334:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XSetLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -41331,23 +41064,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:12426:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:12341:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12430:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:12431:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:12345:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:12346:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:12431:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:12432:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:12346:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:12347:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:12433:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
-            // InternalPerspectiveDsl.g:12433:3: rule__XSetLiteral__ElementsAssignment_3_0
+            // InternalPerspectiveDsl.g:12348:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:12348:3: rule__XSetLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_0();
@@ -41382,14 +41115,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1"
-    // InternalPerspectiveDsl.g:12441:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:12356:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
     public final void rule__XSetLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12445:1: ( rule__XSetLiteral__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:12446:2: rule__XSetLiteral__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:12360:1: ( rule__XSetLiteral__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:12361:2: rule__XSetLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3__1__Impl();
@@ -41415,37 +41148,37 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:12452:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:12367:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
     public final void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12456:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
-            // InternalPerspectiveDsl.g:12457:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:12371:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+            // InternalPerspectiveDsl.g:12372:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:12457:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
-            // InternalPerspectiveDsl.g:12458:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:12372:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:12373:2: ( rule__XSetLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
             }
-            // InternalPerspectiveDsl.g:12459:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:12374:2: ( rule__XSetLiteral__Group_3_1__0 )*
             loop88:
             do {
                 int alt88=2;
                 int LA88_0 = input.LA(1);
 
-                if ( (LA88_0==92) ) {
+                if ( (LA88_0==91) ) {
                     alt88=1;
                 }
 
 
                 switch (alt88) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:12459:3: rule__XSetLiteral__Group_3_1__0
+            	    // InternalPerspectiveDsl.g:12374:3: rule__XSetLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XSetLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -41484,16 +41217,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
-    // InternalPerspectiveDsl.g:12468:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:12383:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
     public final void rule__XSetLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12472:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:12473:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+            // InternalPerspectiveDsl.g:12387:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:12388:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XSetLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -41522,22 +41255,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:12480:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:12395:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12484:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:12485:1: ( ',' )
+            // InternalPerspectiveDsl.g:12399:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:12400:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:12485:1: ( ',' )
-            // InternalPerspectiveDsl.g:12486:2: ','
+            // InternalPerspectiveDsl.g:12400:1: ( ',' )
+            // InternalPerspectiveDsl.g:12401:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -41563,14 +41296,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
-    // InternalPerspectiveDsl.g:12495:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:12410:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
     public final void rule__XSetLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12499:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:12500:2: rule__XSetLiteral__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:12414:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:12415:2: rule__XSetLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3_1__1__Impl();
@@ -41596,23 +41329,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:12506:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:12421:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12510:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:12511:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:12425:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:12426:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:12511:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:12512:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:12426:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:12427:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:12513:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:12513:3: rule__XSetLiteral__ElementsAssignment_3_1_1
+            // InternalPerspectiveDsl.g:12428:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:12428:3: rule__XSetLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_1_1();
@@ -41647,16 +41380,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0"
-    // InternalPerspectiveDsl.g:12522:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:12437:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
     public final void rule__XListLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12526:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:12527:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+            // InternalPerspectiveDsl.g:12441:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:12442:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_55);
             rule__XListLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -41685,23 +41418,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:12534:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:12449:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12538:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:12539:1: ( () )
+            // InternalPerspectiveDsl.g:12453:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:12454:1: ( () )
             {
-            // InternalPerspectiveDsl.g:12539:1: ( () )
-            // InternalPerspectiveDsl.g:12540:2: ()
+            // InternalPerspectiveDsl.g:12454:1: ( () )
+            // InternalPerspectiveDsl.g:12455:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:12541:2: ()
-            // InternalPerspectiveDsl.g:12541:3: 
+            // InternalPerspectiveDsl.g:12456:2: ()
+            // InternalPerspectiveDsl.g:12456:3: 
             {
             }
 
@@ -41726,16 +41459,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1"
-    // InternalPerspectiveDsl.g:12549:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+    // InternalPerspectiveDsl.g:12464:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
     public final void rule__XListLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12553:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
-            // InternalPerspectiveDsl.g:12554:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+            // InternalPerspectiveDsl.g:12468:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+            // InternalPerspectiveDsl.g:12469:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__XListLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -41764,22 +41497,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:12561:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:12476:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12565:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:12566:1: ( '#' )
+            // InternalPerspectiveDsl.g:12480:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:12481:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:12566:1: ( '#' )
-            // InternalPerspectiveDsl.g:12567:2: '#'
+            // InternalPerspectiveDsl.g:12481:1: ( '#' )
+            // InternalPerspectiveDsl.g:12482:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -41805,16 +41538,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2"
-    // InternalPerspectiveDsl.g:12576:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+    // InternalPerspectiveDsl.g:12491:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
     public final void rule__XListLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12580:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
-            // InternalPerspectiveDsl.g:12581:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+            // InternalPerspectiveDsl.g:12495:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+            // InternalPerspectiveDsl.g:12496:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XListLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -41843,22 +41576,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2__Impl"
-    // InternalPerspectiveDsl.g:12588:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:12503:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
     public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12592:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:12593:1: ( '[' )
+            // InternalPerspectiveDsl.g:12507:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:12508:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:12593:1: ( '[' )
-            // InternalPerspectiveDsl.g:12594:2: '['
+            // InternalPerspectiveDsl.g:12508:1: ( '[' )
+            // InternalPerspectiveDsl.g:12509:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
@@ -41884,16 +41617,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3"
-    // InternalPerspectiveDsl.g:12603:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+    // InternalPerspectiveDsl.g:12518:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
     public final void rule__XListLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12607:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
-            // InternalPerspectiveDsl.g:12608:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+            // InternalPerspectiveDsl.g:12522:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+            // InternalPerspectiveDsl.g:12523:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XListLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -41922,31 +41655,31 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3__Impl"
-    // InternalPerspectiveDsl.g:12615:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:12530:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
     public final void rule__XListLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12619:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:12620:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:12534:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:12535:1: ( ( rule__XListLiteral__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:12620:1: ( ( rule__XListLiteral__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:12621:2: ( rule__XListLiteral__Group_3__0 )?
+            // InternalPerspectiveDsl.g:12535:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:12536:2: ( rule__XListLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:12622:2: ( rule__XListLiteral__Group_3__0 )?
+            // InternalPerspectiveDsl.g:12537:2: ( rule__XListLiteral__Group_3__0 )?
             int alt89=2;
             int LA89_0 = input.LA(1);
 
-            if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_DECIMAL)||LA89_0==27||(LA89_0>=34 && LA89_0<=35)||LA89_0==40||(LA89_0>=45 && LA89_0<=50)||LA89_0==54||LA89_0==90||(LA89_0>=94 && LA89_0<=95)||LA89_0==98||LA89_0==100||(LA89_0>=104 && LA89_0<=112)||LA89_0==114||LA89_0==125) ) {
+            if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_DECIMAL)||LA89_0==27||(LA89_0>=34 && LA89_0<=35)||LA89_0==40||(LA89_0>=45 && LA89_0<=50)||LA89_0==54||LA89_0==89||(LA89_0>=93 && LA89_0<=94)||LA89_0==97||LA89_0==99||(LA89_0>=103 && LA89_0<=111)||LA89_0==113||LA89_0==124) ) {
                 alt89=1;
             }
             switch (alt89) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12622:3: rule__XListLiteral__Group_3__0
+                    // InternalPerspectiveDsl.g:12537:3: rule__XListLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XListLiteral__Group_3__0();
@@ -41984,14 +41717,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4"
-    // InternalPerspectiveDsl.g:12630:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:12545:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
     public final void rule__XListLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12634:1: ( rule__XListLiteral__Group__4__Impl )
-            // InternalPerspectiveDsl.g:12635:2: rule__XListLiteral__Group__4__Impl
+            // InternalPerspectiveDsl.g:12549:1: ( rule__XListLiteral__Group__4__Impl )
+            // InternalPerspectiveDsl.g:12550:2: rule__XListLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__4__Impl();
@@ -42017,22 +41750,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4__Impl"
-    // InternalPerspectiveDsl.g:12641:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:12556:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
     public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12645:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:12646:1: ( ']' )
+            // InternalPerspectiveDsl.g:12560:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:12561:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:12646:1: ( ']' )
-            // InternalPerspectiveDsl.g:12647:2: ']'
+            // InternalPerspectiveDsl.g:12561:1: ( ']' )
+            // InternalPerspectiveDsl.g:12562:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
@@ -42058,16 +41791,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0"
-    // InternalPerspectiveDsl.g:12657:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+    // InternalPerspectiveDsl.g:12572:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
     public final void rule__XListLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12661:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
-            // InternalPerspectiveDsl.g:12662:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+            // InternalPerspectiveDsl.g:12576:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+            // InternalPerspectiveDsl.g:12577:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XListLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -42096,23 +41829,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:12669:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:12584:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12673:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:12674:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:12588:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:12589:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:12674:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:12675:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:12589:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:12590:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:12676:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
-            // InternalPerspectiveDsl.g:12676:3: rule__XListLiteral__ElementsAssignment_3_0
+            // InternalPerspectiveDsl.g:12591:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:12591:3: rule__XListLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_0();
@@ -42147,14 +41880,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1"
-    // InternalPerspectiveDsl.g:12684:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:12599:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
     public final void rule__XListLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12688:1: ( rule__XListLiteral__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:12689:2: rule__XListLiteral__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:12603:1: ( rule__XListLiteral__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:12604:2: rule__XListLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3__1__Impl();
@@ -42180,37 +41913,37 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:12695:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:12610:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
     public final void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12699:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
-            // InternalPerspectiveDsl.g:12700:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:12614:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+            // InternalPerspectiveDsl.g:12615:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:12700:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
-            // InternalPerspectiveDsl.g:12701:2: ( rule__XListLiteral__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:12615:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:12616:2: ( rule__XListLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
             }
-            // InternalPerspectiveDsl.g:12702:2: ( rule__XListLiteral__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:12617:2: ( rule__XListLiteral__Group_3_1__0 )*
             loop90:
             do {
                 int alt90=2;
                 int LA90_0 = input.LA(1);
 
-                if ( (LA90_0==92) ) {
+                if ( (LA90_0==91) ) {
                     alt90=1;
                 }
 
 
                 switch (alt90) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:12702:3: rule__XListLiteral__Group_3_1__0
+            	    // InternalPerspectiveDsl.g:12617:3: rule__XListLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XListLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -42249,16 +41982,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0"
-    // InternalPerspectiveDsl.g:12711:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:12626:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
     public final void rule__XListLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12715:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:12716:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+            // InternalPerspectiveDsl.g:12630:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:12631:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XListLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -42287,22 +42020,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:12723:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:12638:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12727:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:12728:1: ( ',' )
+            // InternalPerspectiveDsl.g:12642:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:12643:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:12728:1: ( ',' )
-            // InternalPerspectiveDsl.g:12729:2: ','
+            // InternalPerspectiveDsl.g:12643:1: ( ',' )
+            // InternalPerspectiveDsl.g:12644:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -42328,14 +42061,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1"
-    // InternalPerspectiveDsl.g:12738:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:12653:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
     public final void rule__XListLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12742:1: ( rule__XListLiteral__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:12743:2: rule__XListLiteral__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:12657:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:12658:2: rule__XListLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3_1__1__Impl();
@@ -42361,23 +42094,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:12749:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:12664:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12753:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:12754:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:12668:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:12669:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:12754:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:12755:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:12669:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:12670:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:12756:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:12756:3: rule__XListLiteral__ElementsAssignment_3_1_1
+            // InternalPerspectiveDsl.g:12671:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:12671:3: rule__XListLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_1_1();
@@ -42412,16 +42145,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0"
-    // InternalPerspectiveDsl.g:12765:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+    // InternalPerspectiveDsl.g:12680:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
     public final void rule__XClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12769:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
-            // InternalPerspectiveDsl.g:12770:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+            // InternalPerspectiveDsl.g:12684:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+            // InternalPerspectiveDsl.g:12685:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
             {
-            pushFollow(FOLLOW_94);
+            pushFollow(FOLLOW_93);
             rule__XClosure__Group__0__Impl();
 
             state._fsp--;
@@ -42450,23 +42183,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0__Impl"
-    // InternalPerspectiveDsl.g:12777:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12692:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
     public final void rule__XClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12781:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12782:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:12696:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12697:1: ( ( rule__XClosure__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12782:1: ( ( rule__XClosure__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:12783:2: ( rule__XClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:12697:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:12698:2: ( rule__XClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:12784:2: ( rule__XClosure__Group_0__0 )
-            // InternalPerspectiveDsl.g:12784:3: rule__XClosure__Group_0__0
+            // InternalPerspectiveDsl.g:12699:2: ( rule__XClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:12699:3: rule__XClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0();
@@ -42501,16 +42234,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1"
-    // InternalPerspectiveDsl.g:12792:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+    // InternalPerspectiveDsl.g:12707:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
     public final void rule__XClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12796:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
-            // InternalPerspectiveDsl.g:12797:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+            // InternalPerspectiveDsl.g:12711:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+            // InternalPerspectiveDsl.g:12712:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
             {
-            pushFollow(FOLLOW_94);
+            pushFollow(FOLLOW_93);
             rule__XClosure__Group__1__Impl();
 
             state._fsp--;
@@ -42539,27 +42272,27 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1__Impl"
-    // InternalPerspectiveDsl.g:12804:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:12719:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
     public final void rule__XClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12808:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:12809:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:12723:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:12724:1: ( ( rule__XClosure__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:12809:1: ( ( rule__XClosure__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:12810:2: ( rule__XClosure__Group_1__0 )?
+            // InternalPerspectiveDsl.g:12724:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:12725:2: ( rule__XClosure__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:12811:2: ( rule__XClosure__Group_1__0 )?
+            // InternalPerspectiveDsl.g:12726:2: ( rule__XClosure__Group_1__0 )?
             int alt91=2;
             alt91 = dfa91.predict(input);
             switch (alt91) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:12811:3: rule__XClosure__Group_1__0
+                    // InternalPerspectiveDsl.g:12726:3: rule__XClosure__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1__0();
@@ -42597,16 +42330,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2"
-    // InternalPerspectiveDsl.g:12819:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+    // InternalPerspectiveDsl.g:12734:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
     public final void rule__XClosure__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12823:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
-            // InternalPerspectiveDsl.g:12824:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+            // InternalPerspectiveDsl.g:12738:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+            // InternalPerspectiveDsl.g:12739:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
             {
-            pushFollow(FOLLOW_95);
+            pushFollow(FOLLOW_94);
             rule__XClosure__Group__2__Impl();
 
             state._fsp--;
@@ -42635,23 +42368,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2__Impl"
-    // InternalPerspectiveDsl.g:12831:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:12746:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
     public final void rule__XClosure__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12835:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:12836:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:12750:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:12751:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:12836:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
-            // InternalPerspectiveDsl.g:12837:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:12751:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:12752:2: ( rule__XClosure__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:12838:2: ( rule__XClosure__ExpressionAssignment_2 )
-            // InternalPerspectiveDsl.g:12838:3: rule__XClosure__ExpressionAssignment_2
+            // InternalPerspectiveDsl.g:12753:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:12753:3: rule__XClosure__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExpressionAssignment_2();
@@ -42686,14 +42419,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3"
-    // InternalPerspectiveDsl.g:12846:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:12761:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
     public final void rule__XClosure__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12850:1: ( rule__XClosure__Group__3__Impl )
-            // InternalPerspectiveDsl.g:12851:2: rule__XClosure__Group__3__Impl
+            // InternalPerspectiveDsl.g:12765:1: ( rule__XClosure__Group__3__Impl )
+            // InternalPerspectiveDsl.g:12766:2: rule__XClosure__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__3__Impl();
@@ -42719,22 +42452,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3__Impl"
-    // InternalPerspectiveDsl.g:12857:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:12772:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
     public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12861:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:12862:1: ( ']' )
+            // InternalPerspectiveDsl.g:12776:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:12777:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:12862:1: ( ']' )
-            // InternalPerspectiveDsl.g:12863:2: ']'
+            // InternalPerspectiveDsl.g:12777:1: ( ']' )
+            // InternalPerspectiveDsl.g:12778:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
@@ -42760,14 +42493,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0"
-    // InternalPerspectiveDsl.g:12873:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:12788:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
     public final void rule__XClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12877:1: ( rule__XClosure__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:12878:2: rule__XClosure__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:12792:1: ( rule__XClosure__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:12793:2: rule__XClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0__Impl();
@@ -42793,23 +42526,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:12884:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12799:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
     public final void rule__XClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12888:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12889:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12803:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12804:1: ( ( rule__XClosure__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12889:1: ( ( rule__XClosure__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:12890:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:12804:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:12805:2: ( rule__XClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12891:2: ( rule__XClosure__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:12891:3: rule__XClosure__Group_0_0__0
+            // InternalPerspectiveDsl.g:12806:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:12806:3: rule__XClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__0();
@@ -42844,16 +42577,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0"
-    // InternalPerspectiveDsl.g:12900:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:12815:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
     public final void rule__XClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12904:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:12905:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+            // InternalPerspectiveDsl.g:12819:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:12820:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__XClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -42882,23 +42615,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:12912:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:12827:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12916:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:12917:1: ( () )
+            // InternalPerspectiveDsl.g:12831:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:12832:1: ( () )
             {
-            // InternalPerspectiveDsl.g:12917:1: ( () )
-            // InternalPerspectiveDsl.g:12918:2: ()
+            // InternalPerspectiveDsl.g:12832:1: ( () )
+            // InternalPerspectiveDsl.g:12833:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:12919:2: ()
-            // InternalPerspectiveDsl.g:12919:3: 
+            // InternalPerspectiveDsl.g:12834:2: ()
+            // InternalPerspectiveDsl.g:12834:3: 
             {
             }
 
@@ -42923,14 +42656,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1"
-    // InternalPerspectiveDsl.g:12927:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:12842:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
     public final void rule__XClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12931:1: ( rule__XClosure__Group_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:12932:2: rule__XClosure__Group_0_0__1__Impl
+            // InternalPerspectiveDsl.g:12846:1: ( rule__XClosure__Group_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:12847:2: rule__XClosure__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__1__Impl();
@@ -42956,22 +42689,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:12938:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:12853:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
     public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12942:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:12943:1: ( '[' )
+            // InternalPerspectiveDsl.g:12857:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:12858:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:12943:1: ( '[' )
-            // InternalPerspectiveDsl.g:12944:2: '['
+            // InternalPerspectiveDsl.g:12858:1: ( '[' )
+            // InternalPerspectiveDsl.g:12859:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
@@ -42997,14 +42730,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0"
-    // InternalPerspectiveDsl.g:12954:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+    // InternalPerspectiveDsl.g:12869:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
     public final void rule__XClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12958:1: ( rule__XClosure__Group_1__0__Impl )
-            // InternalPerspectiveDsl.g:12959:2: rule__XClosure__Group_1__0__Impl
+            // InternalPerspectiveDsl.g:12873:1: ( rule__XClosure__Group_1__0__Impl )
+            // InternalPerspectiveDsl.g:12874:2: rule__XClosure__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1__0__Impl();
@@ -43030,23 +42763,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:12965:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:12880:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
     public final void rule__XClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12969:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:12970:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12884:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:12885:1: ( ( rule__XClosure__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:12970:1: ( ( rule__XClosure__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:12971:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:12885:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:12886:2: ( rule__XClosure__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:12972:2: ( rule__XClosure__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:12972:3: rule__XClosure__Group_1_0__0
+            // InternalPerspectiveDsl.g:12887:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:12887:3: rule__XClosure__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__0();
@@ -43081,16 +42814,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0"
-    // InternalPerspectiveDsl.g:12981:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+    // InternalPerspectiveDsl.g:12896:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
     public final void rule__XClosure__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12985:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
-            // InternalPerspectiveDsl.g:12986:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+            // InternalPerspectiveDsl.g:12900:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+            // InternalPerspectiveDsl.g:12901:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_95);
             rule__XClosure__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -43119,31 +42852,31 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:12993:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+    // InternalPerspectiveDsl.g:12908:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
     public final void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:12997:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
-            // InternalPerspectiveDsl.g:12998:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalPerspectiveDsl.g:12912:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+            // InternalPerspectiveDsl.g:12913:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
             {
-            // InternalPerspectiveDsl.g:12998:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
-            // InternalPerspectiveDsl.g:12999:2: ( rule__XClosure__Group_1_0_0__0 )?
+            // InternalPerspectiveDsl.g:12913:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalPerspectiveDsl.g:12914:2: ( rule__XClosure__Group_1_0_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13000:2: ( rule__XClosure__Group_1_0_0__0 )?
+            // InternalPerspectiveDsl.g:12915:2: ( rule__XClosure__Group_1_0_0__0 )?
             int alt92=2;
             int LA92_0 = input.LA(1);
 
-            if ( (LA92_0==RULE_ID||LA92_0==31||LA92_0==90) ) {
+            if ( (LA92_0==RULE_ID||LA92_0==31||LA92_0==89) ) {
                 alt92=1;
             }
             switch (alt92) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13000:3: rule__XClosure__Group_1_0_0__0
+                    // InternalPerspectiveDsl.g:12915:3: rule__XClosure__Group_1_0_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1_0_0__0();
@@ -43181,14 +42914,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1"
-    // InternalPerspectiveDsl.g:13008:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:12923:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
     public final void rule__XClosure__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13012:1: ( rule__XClosure__Group_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:13013:2: rule__XClosure__Group_1_0__1__Impl
+            // InternalPerspectiveDsl.g:12927:1: ( rule__XClosure__Group_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:12928:2: rule__XClosure__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__1__Impl();
@@ -43214,23 +42947,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:13019:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:12934:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
     public final void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13023:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
-            // InternalPerspectiveDsl.g:13024:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:12938:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+            // InternalPerspectiveDsl.g:12939:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:13024:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
-            // InternalPerspectiveDsl.g:13025:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:12939:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalPerspectiveDsl.g:12940:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:13026:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
-            // InternalPerspectiveDsl.g:13026:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+            // InternalPerspectiveDsl.g:12941:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalPerspectiveDsl.g:12941:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
@@ -43265,16 +42998,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:13035:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:12950:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
     public final void rule__XClosure__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13039:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:13040:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:12954:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:12955:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XClosure__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -43303,23 +43036,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:13047:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:12962:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
     public final void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13051:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:13052:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:12966:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:12967:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:13052:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
-            // InternalPerspectiveDsl.g:13053:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalPerspectiveDsl.g:12967:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:12968:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13054:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
-            // InternalPerspectiveDsl.g:13054:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+            // InternalPerspectiveDsl.g:12969:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalPerspectiveDsl.g:12969:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
@@ -43354,14 +43087,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:13062:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:12977:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
     public final void rule__XClosure__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13066:1: ( rule__XClosure__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:13067:2: rule__XClosure__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:12981:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:12982:2: rule__XClosure__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0__1__Impl();
@@ -43387,37 +43120,37 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:13073:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:12988:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
     public final void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13077:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
-            // InternalPerspectiveDsl.g:13078:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalPerspectiveDsl.g:12992:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+            // InternalPerspectiveDsl.g:12993:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:13078:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
-            // InternalPerspectiveDsl.g:13079:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            // InternalPerspectiveDsl.g:12993:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalPerspectiveDsl.g:12994:2: ( rule__XClosure__Group_1_0_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:13080:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            // InternalPerspectiveDsl.g:12995:2: ( rule__XClosure__Group_1_0_0_1__0 )*
             loop93:
             do {
                 int alt93=2;
                 int LA93_0 = input.LA(1);
 
-                if ( (LA93_0==92) ) {
+                if ( (LA93_0==91) ) {
                     alt93=1;
                 }
 
 
                 switch (alt93) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13080:3: rule__XClosure__Group_1_0_0_1__0
+            	    // InternalPerspectiveDsl.g:12995:3: rule__XClosure__Group_1_0_0_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XClosure__Group_1_0_0_1__0();
 
             	    state._fsp--;
@@ -43456,16 +43189,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
-    // InternalPerspectiveDsl.g:13089:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
+    // InternalPerspectiveDsl.g:13004:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
     public final void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13093:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
-            // InternalPerspectiveDsl.g:13094:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+            // InternalPerspectiveDsl.g:13008:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+            // InternalPerspectiveDsl.g:13009:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XClosure__Group_1_0_0_1__0__Impl();
 
             state._fsp--;
@@ -43494,22 +43227,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:13101:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:13016:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
     public final void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13105:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:13106:1: ( ',' )
+            // InternalPerspectiveDsl.g:13020:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:13021:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:13106:1: ( ',' )
-            // InternalPerspectiveDsl.g:13107:2: ','
+            // InternalPerspectiveDsl.g:13021:1: ( ',' )
+            // InternalPerspectiveDsl.g:13022:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
@@ -43535,14 +43268,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
-    // InternalPerspectiveDsl.g:13116:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13031:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
     public final void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13120:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:13121:2: rule__XClosure__Group_1_0_0_1__1__Impl
+            // InternalPerspectiveDsl.g:13035:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:13036:2: rule__XClosure__Group_1_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0_1__1__Impl();
@@ -43568,23 +43301,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:13127:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:13042:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
     public final void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13131:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
-            // InternalPerspectiveDsl.g:13132:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalPerspectiveDsl.g:13046:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:13047:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:13132:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
-            // InternalPerspectiveDsl.g:13133:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalPerspectiveDsl.g:13047:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalPerspectiveDsl.g:13048:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:13134:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
-            // InternalPerspectiveDsl.g:13134:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+            // InternalPerspectiveDsl.g:13049:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalPerspectiveDsl.g:13049:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
@@ -43619,16 +43352,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0"
-    // InternalPerspectiveDsl.g:13143:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+    // InternalPerspectiveDsl.g:13058:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
     public final void rule__XExpressionInClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13147:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
-            // InternalPerspectiveDsl.g:13148:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+            // InternalPerspectiveDsl.g:13062:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+            // InternalPerspectiveDsl.g:13063:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
             {
-            pushFollow(FOLLOW_94);
+            pushFollow(FOLLOW_93);
             rule__XExpressionInClosure__Group__0__Impl();
 
             state._fsp--;
@@ -43657,23 +43390,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13155:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13070:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
     public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13159:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13160:1: ( () )
+            // InternalPerspectiveDsl.g:13074:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13075:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13160:1: ( () )
-            // InternalPerspectiveDsl.g:13161:2: ()
+            // InternalPerspectiveDsl.g:13075:1: ( () )
+            // InternalPerspectiveDsl.g:13076:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:13162:2: ()
-            // InternalPerspectiveDsl.g:13162:3: 
+            // InternalPerspectiveDsl.g:13077:2: ()
+            // InternalPerspectiveDsl.g:13077:3: 
             {
             }
 
@@ -43698,14 +43431,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1"
-    // InternalPerspectiveDsl.g:13170:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:13085:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
     public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13174:1: ( rule__XExpressionInClosure__Group__1__Impl )
-            // InternalPerspectiveDsl.g:13175:2: rule__XExpressionInClosure__Group__1__Impl
+            // InternalPerspectiveDsl.g:13089:1: ( rule__XExpressionInClosure__Group__1__Impl )
+            // InternalPerspectiveDsl.g:13090:2: rule__XExpressionInClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__1__Impl();
@@ -43731,37 +43464,37 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13181:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:13096:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
     public final void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13185:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:13186:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:13100:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:13101:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:13186:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:13187:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            // InternalPerspectiveDsl.g:13101:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:13102:2: ( rule__XExpressionInClosure__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:13188:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            // InternalPerspectiveDsl.g:13103:2: ( rule__XExpressionInClosure__Group_1__0 )*
             loop94:
             do {
                 int alt94=2;
                 int LA94_0 = input.LA(1);
 
-                if ( ((LA94_0>=RULE_ID && LA94_0<=RULE_DECIMAL)||LA94_0==27||(LA94_0>=34 && LA94_0<=35)||LA94_0==40||(LA94_0>=44 && LA94_0<=50)||LA94_0==54||LA94_0==90||(LA94_0>=94 && LA94_0<=95)||LA94_0==98||LA94_0==100||(LA94_0>=104 && LA94_0<=112)||LA94_0==114||(LA94_0>=124 && LA94_0<=125)) ) {
+                if ( ((LA94_0>=RULE_ID && LA94_0<=RULE_DECIMAL)||LA94_0==27||(LA94_0>=34 && LA94_0<=35)||LA94_0==40||(LA94_0>=44 && LA94_0<=50)||LA94_0==54||LA94_0==89||(LA94_0>=93 && LA94_0<=94)||LA94_0==97||LA94_0==99||(LA94_0>=103 && LA94_0<=111)||LA94_0==113||(LA94_0>=123 && LA94_0<=124)) ) {
                     alt94=1;
                 }
 
 
                 switch (alt94) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13188:3: rule__XExpressionInClosure__Group_1__0
+            	    // InternalPerspectiveDsl.g:13103:3: rule__XExpressionInClosure__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_97);
+            	    pushFollow(FOLLOW_96);
             	    rule__XExpressionInClosure__Group_1__0();
 
             	    state._fsp--;
@@ -43800,16 +43533,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
-    // InternalPerspectiveDsl.g:13197:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+    // InternalPerspectiveDsl.g:13112:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
     public final void rule__XExpressionInClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13201:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
-            // InternalPerspectiveDsl.g:13202:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+            // InternalPerspectiveDsl.g:13116:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+            // InternalPerspectiveDsl.g:13117:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             rule__XExpressionInClosure__Group_1__0__Impl();
 
             state._fsp--;
@@ -43838,23 +43571,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:13209:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:13124:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
     public final void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13213:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
-            // InternalPerspectiveDsl.g:13214:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalPerspectiveDsl.g:13128:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+            // InternalPerspectiveDsl.g:13129:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:13214:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
-            // InternalPerspectiveDsl.g:13215:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalPerspectiveDsl.g:13129:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalPerspectiveDsl.g:13130:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
             }
-            // InternalPerspectiveDsl.g:13216:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
-            // InternalPerspectiveDsl.g:13216:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+            // InternalPerspectiveDsl.g:13131:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalPerspectiveDsl.g:13131:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__ExpressionsAssignment_1_0();
@@ -43889,14 +43622,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
-    // InternalPerspectiveDsl.g:13224:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13139:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
     public final void rule__XExpressionInClosure__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13228:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:13229:2: rule__XExpressionInClosure__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:13143:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:13144:2: rule__XExpressionInClosure__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group_1__1__Impl();
@@ -43922,33 +43655,33 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:13235:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+    // InternalPerspectiveDsl.g:13150:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
     public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13239:1: ( ( ( ';' )? ) )
-            // InternalPerspectiveDsl.g:13240:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:13154:1: ( ( ( ';' )? ) )
+            // InternalPerspectiveDsl.g:13155:1: ( ( ';' )? )
             {
-            // InternalPerspectiveDsl.g:13240:1: ( ( ';' )? )
-            // InternalPerspectiveDsl.g:13241:2: ( ';' )?
+            // InternalPerspectiveDsl.g:13155:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:13156:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
             }
-            // InternalPerspectiveDsl.g:13242:2: ( ';' )?
+            // InternalPerspectiveDsl.g:13157:2: ( ';' )?
             int alt95=2;
             int LA95_0 = input.LA(1);
 
-            if ( (LA95_0==88) ) {
+            if ( (LA95_0==87) ) {
                 alt95=1;
             }
             switch (alt95) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13242:3: ';'
+                    // InternalPerspectiveDsl.g:13157:3: ';'
                     {
-                    match(input,88,FOLLOW_2); if (state.failed) return ;
+                    match(input,87,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -43980,16 +43713,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0"
-    // InternalPerspectiveDsl.g:13251:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+    // InternalPerspectiveDsl.g:13166:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
     public final void rule__XShortClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13255:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
-            // InternalPerspectiveDsl.g:13256:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+            // InternalPerspectiveDsl.g:13170:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+            // InternalPerspectiveDsl.g:13171:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XShortClosure__Group__0__Impl();
 
             state._fsp--;
@@ -44018,23 +43751,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13263:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:13178:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
     public final void rule__XShortClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13267:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:13268:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:13182:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:13183:1: ( ( rule__XShortClosure__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:13268:1: ( ( rule__XShortClosure__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:13269:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:13183:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:13184:2: ( rule__XShortClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:13270:2: ( rule__XShortClosure__Group_0__0 )
-            // InternalPerspectiveDsl.g:13270:3: rule__XShortClosure__Group_0__0
+            // InternalPerspectiveDsl.g:13185:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalPerspectiveDsl.g:13185:3: rule__XShortClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0();
@@ -44069,14 +43802,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1"
-    // InternalPerspectiveDsl.g:13278:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:13193:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
     public final void rule__XShortClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13282:1: ( rule__XShortClosure__Group__1__Impl )
-            // InternalPerspectiveDsl.g:13283:2: rule__XShortClosure__Group__1__Impl
+            // InternalPerspectiveDsl.g:13197:1: ( rule__XShortClosure__Group__1__Impl )
+            // InternalPerspectiveDsl.g:13198:2: rule__XShortClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__1__Impl();
@@ -44102,23 +43835,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13289:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:13204:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
     public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13293:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:13294:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:13208:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:13209:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:13294:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
-            // InternalPerspectiveDsl.g:13295:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:13209:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:13210:2: ( rule__XShortClosure__ExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:13296:2: ( rule__XShortClosure__ExpressionAssignment_1 )
-            // InternalPerspectiveDsl.g:13296:3: rule__XShortClosure__ExpressionAssignment_1
+            // InternalPerspectiveDsl.g:13211:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:13211:3: rule__XShortClosure__ExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExpressionAssignment_1();
@@ -44153,14 +43886,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0"
-    // InternalPerspectiveDsl.g:13305:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:13220:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
     public final void rule__XShortClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13309:1: ( rule__XShortClosure__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:13310:2: rule__XShortClosure__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:13224:1: ( rule__XShortClosure__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:13225:2: rule__XShortClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0__Impl();
@@ -44186,23 +43919,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:13316:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:13231:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
     public final void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13320:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:13321:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:13235:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:13236:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:13321:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:13322:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:13236:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:13237:2: ( rule__XShortClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13323:2: ( rule__XShortClosure__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:13323:3: rule__XShortClosure__Group_0_0__0
+            // InternalPerspectiveDsl.g:13238:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:13238:3: rule__XShortClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__0();
@@ -44237,16 +43970,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0"
-    // InternalPerspectiveDsl.g:13332:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:13247:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
     public final void rule__XShortClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13336:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:13337:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+            // InternalPerspectiveDsl.g:13251:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:13252:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_95);
             rule__XShortClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -44275,23 +44008,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:13344:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13259:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13348:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13349:1: ( () )
+            // InternalPerspectiveDsl.g:13263:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13264:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13349:1: ( () )
-            // InternalPerspectiveDsl.g:13350:2: ()
+            // InternalPerspectiveDsl.g:13264:1: ( () )
+            // InternalPerspectiveDsl.g:13265:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:13351:2: ()
-            // InternalPerspectiveDsl.g:13351:3: 
+            // InternalPerspectiveDsl.g:13266:2: ()
+            // InternalPerspectiveDsl.g:13266:3: 
             {
             }
 
@@ -44316,16 +44049,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1"
-    // InternalPerspectiveDsl.g:13359:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+    // InternalPerspectiveDsl.g:13274:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
     public final void rule__XShortClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13363:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
-            // InternalPerspectiveDsl.g:13364:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+            // InternalPerspectiveDsl.g:13278:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+            // InternalPerspectiveDsl.g:13279:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_95);
             rule__XShortClosure__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -44354,31 +44087,31 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:13371:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:13286:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
     public final void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13375:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:13376:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalPerspectiveDsl.g:13290:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:13291:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:13376:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
-            // InternalPerspectiveDsl.g:13377:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            // InternalPerspectiveDsl.g:13291:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalPerspectiveDsl.g:13292:2: ( rule__XShortClosure__Group_0_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:13378:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            // InternalPerspectiveDsl.g:13293:2: ( rule__XShortClosure__Group_0_0_1__0 )?
             int alt96=2;
             int LA96_0 = input.LA(1);
 
-            if ( (LA96_0==RULE_ID||LA96_0==31||LA96_0==90) ) {
+            if ( (LA96_0==RULE_ID||LA96_0==31||LA96_0==89) ) {
                 alt96=1;
             }
             switch (alt96) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13378:3: rule__XShortClosure__Group_0_0_1__0
+                    // InternalPerspectiveDsl.g:13293:3: rule__XShortClosure__Group_0_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XShortClosure__Group_0_0_1__0();
@@ -44416,14 +44149,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2"
-    // InternalPerspectiveDsl.g:13386:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:13301:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
     public final void rule__XShortClosure__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13390:1: ( rule__XShortClosure__Group_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:13391:2: rule__XShortClosure__Group_0_0__2__Impl
+            // InternalPerspectiveDsl.g:13305:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:13306:2: rule__XShortClosure__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__2__Impl();
@@ -44449,23 +44182,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:13397:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:13312:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
     public final void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13401:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
-            // InternalPerspectiveDsl.g:13402:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalPerspectiveDsl.g:13316:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+            // InternalPerspectiveDsl.g:13317:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:13402:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
-            // InternalPerspectiveDsl.g:13403:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalPerspectiveDsl.g:13317:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalPerspectiveDsl.g:13318:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
             }
-            // InternalPerspectiveDsl.g:13404:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
-            // InternalPerspectiveDsl.g:13404:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+            // InternalPerspectiveDsl.g:13319:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalPerspectiveDsl.g:13319:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
@@ -44500,16 +44233,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
-    // InternalPerspectiveDsl.g:13413:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
+    // InternalPerspectiveDsl.g:13328:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13417:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
-            // InternalPerspectiveDsl.g:13418:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+            // InternalPerspectiveDsl.g:13332:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+            // InternalPerspectiveDsl.g:13333:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XShortClosure__Group_0_0_1__0__Impl();
 
             state._fsp--;
@@ -44538,23 +44271,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:13425:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:13340:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13429:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:13430:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalPerspectiveDsl.g:13344:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:13345:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:13430:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
-            // InternalPerspectiveDsl.g:13431:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalPerspectiveDsl.g:13345:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalPerspectiveDsl.g:13346:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:13432:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
-            // InternalPerspectiveDsl.g:13432:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+            // InternalPerspectiveDsl.g:13347:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalPerspectiveDsl.g:13347:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
@@ -44589,14 +44322,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
-    // InternalPerspectiveDsl.g:13440:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13355:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13444:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:13445:2: rule__XShortClosure__Group_0_0_1__1__Impl
+            // InternalPerspectiveDsl.g:13359:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:13360:2: rule__XShortClosure__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1__1__Impl();
@@ -44622,37 +44355,37 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:13451:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:13366:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
     public final void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13455:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:13456:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:13370:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:13371:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:13456:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:13457:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:13371:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:13372:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:13458:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:13373:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
             loop97:
             do {
                 int alt97=2;
                 int LA97_0 = input.LA(1);
 
-                if ( (LA97_0==92) ) {
+                if ( (LA97_0==91) ) {
                     alt97=1;
                 }
 
 
                 switch (alt97) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13458:3: rule__XShortClosure__Group_0_0_1_1__0
+            	    // InternalPerspectiveDsl.g:13373:3: rule__XShortClosure__Group_0_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XShortClosure__Group_0_0_1_1__0();
 
             	    state._fsp--;
@@ -44691,16 +44424,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
-    // InternalPerspectiveDsl.g:13467:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
+    // InternalPerspectiveDsl.g:13382:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13471:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
-            // InternalPerspectiveDsl.g:13472:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+            // InternalPerspectiveDsl.g:13386:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+            // InternalPerspectiveDsl.g:13387:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XShortClosure__Group_0_0_1_1__0__Impl();
 
             state._fsp--;
@@ -44729,22 +44462,22 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:13479:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:13394:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13483:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:13484:1: ( ',' )
+            // InternalPerspectiveDsl.g:13398:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:13399:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:13484:1: ( ',' )
-            // InternalPerspectiveDsl.g:13485:2: ','
+            // InternalPerspectiveDsl.g:13399:1: ( ',' )
+            // InternalPerspectiveDsl.g:13400:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
@@ -44770,14 +44503,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
-    // InternalPerspectiveDsl.g:13494:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:13409:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13498:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:13499:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:13413:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:13414:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1_1__1__Impl();
@@ -44803,23 +44536,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:13505:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:13420:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13509:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:13510:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:13424:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:13425:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:13510:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:13511:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalPerspectiveDsl.g:13425:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:13426:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:13512:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
-            // InternalPerspectiveDsl.g:13512:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+            // InternalPerspectiveDsl.g:13427:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalPerspectiveDsl.g:13427:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
@@ -44854,16 +44587,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0"
-    // InternalPerspectiveDsl.g:13521:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:13436:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
     public final void rule__XParenthesizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13525:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
-            // InternalPerspectiveDsl.g:13526:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+            // InternalPerspectiveDsl.g:13440:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+            // InternalPerspectiveDsl.g:13441:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XParenthesizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -44892,22 +44625,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13533:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:13448:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
     public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13537:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:13538:1: ( '(' )
+            // InternalPerspectiveDsl.g:13452:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:13453:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:13538:1: ( '(' )
-            // InternalPerspectiveDsl.g:13539:2: '('
+            // InternalPerspectiveDsl.g:13453:1: ( '(' )
+            // InternalPerspectiveDsl.g:13454:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
@@ -44933,16 +44666,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1"
-    // InternalPerspectiveDsl.g:13548:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:13463:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
     public final void rule__XParenthesizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13552:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
-            // InternalPerspectiveDsl.g:13553:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+            // InternalPerspectiveDsl.g:13467:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+            // InternalPerspectiveDsl.g:13468:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XParenthesizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -44971,17 +44704,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13560:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:13475:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
     public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13564:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:13565:1: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:13479:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:13480:1: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:13565:1: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:13566:2: ruleXExpression
+            // InternalPerspectiveDsl.g:13480:1: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:13481:2: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -45016,14 +44749,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2"
-    // InternalPerspectiveDsl.g:13575:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:13490:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
     public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13579:1: ( rule__XParenthesizedExpression__Group__2__Impl )
-            // InternalPerspectiveDsl.g:13580:2: rule__XParenthesizedExpression__Group__2__Impl
+            // InternalPerspectiveDsl.g:13494:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+            // InternalPerspectiveDsl.g:13495:2: rule__XParenthesizedExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__2__Impl();
@@ -45049,22 +44782,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:13586:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:13501:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13590:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:13591:1: ( ')' )
+            // InternalPerspectiveDsl.g:13505:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:13506:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:13591:1: ( ')' )
-            // InternalPerspectiveDsl.g:13592:2: ')'
+            // InternalPerspectiveDsl.g:13506:1: ( ')' )
+            // InternalPerspectiveDsl.g:13507:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -45090,16 +44823,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0"
-    // InternalPerspectiveDsl.g:13602:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:13517:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
     public final void rule__XIfExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13606:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
-            // InternalPerspectiveDsl.g:13607:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+            // InternalPerspectiveDsl.g:13521:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+            // InternalPerspectiveDsl.g:13522:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_98);
             rule__XIfExpression__Group__0__Impl();
 
             state._fsp--;
@@ -45128,23 +44861,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13614:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13529:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
     public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13618:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13619:1: ( () )
+            // InternalPerspectiveDsl.g:13533:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13534:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13619:1: ( () )
-            // InternalPerspectiveDsl.g:13620:2: ()
+            // InternalPerspectiveDsl.g:13534:1: ( () )
+            // InternalPerspectiveDsl.g:13535:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:13621:2: ()
-            // InternalPerspectiveDsl.g:13621:3: 
+            // InternalPerspectiveDsl.g:13536:2: ()
+            // InternalPerspectiveDsl.g:13536:3: 
             {
             }
 
@@ -45169,16 +44902,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1"
-    // InternalPerspectiveDsl.g:13629:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:13544:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
     public final void rule__XIfExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13633:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
-            // InternalPerspectiveDsl.g:13634:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+            // InternalPerspectiveDsl.g:13548:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+            // InternalPerspectiveDsl.g:13549:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XIfExpression__Group__1__Impl();
 
             state._fsp--;
@@ -45207,22 +44940,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13641:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+    // InternalPerspectiveDsl.g:13556:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
     public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13645:1: ( ( 'if' ) )
-            // InternalPerspectiveDsl.g:13646:1: ( 'if' )
+            // InternalPerspectiveDsl.g:13560:1: ( ( 'if' ) )
+            // InternalPerspectiveDsl.g:13561:1: ( 'if' )
             {
-            // InternalPerspectiveDsl.g:13646:1: ( 'if' )
-            // InternalPerspectiveDsl.g:13647:2: 'if'
+            // InternalPerspectiveDsl.g:13561:1: ( 'if' )
+            // InternalPerspectiveDsl.g:13562:2: 'if'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,97,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
@@ -45248,16 +44981,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2"
-    // InternalPerspectiveDsl.g:13656:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:13571:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
     public final void rule__XIfExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13660:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
-            // InternalPerspectiveDsl.g:13661:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+            // InternalPerspectiveDsl.g:13575:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+            // InternalPerspectiveDsl.g:13576:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XIfExpression__Group__2__Impl();
 
             state._fsp--;
@@ -45286,22 +45019,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:13668:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:13583:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13672:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:13673:1: ( '(' )
+            // InternalPerspectiveDsl.g:13587:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:13588:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:13673:1: ( '(' )
-            // InternalPerspectiveDsl.g:13674:2: '('
+            // InternalPerspectiveDsl.g:13588:1: ( '(' )
+            // InternalPerspectiveDsl.g:13589:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -45327,16 +45060,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3"
-    // InternalPerspectiveDsl.g:13683:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:13598:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
     public final void rule__XIfExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13687:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
-            // InternalPerspectiveDsl.g:13688:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+            // InternalPerspectiveDsl.g:13602:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+            // InternalPerspectiveDsl.g:13603:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XIfExpression__Group__3__Impl();
 
             state._fsp--;
@@ -45365,23 +45098,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:13695:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:13610:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
     public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13699:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:13700:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalPerspectiveDsl.g:13614:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:13615:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:13700:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
-            // InternalPerspectiveDsl.g:13701:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalPerspectiveDsl.g:13615:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalPerspectiveDsl.g:13616:2: ( rule__XIfExpression__IfAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:13702:2: ( rule__XIfExpression__IfAssignment_3 )
-            // InternalPerspectiveDsl.g:13702:3: rule__XIfExpression__IfAssignment_3
+            // InternalPerspectiveDsl.g:13617:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalPerspectiveDsl.g:13617:3: rule__XIfExpression__IfAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__IfAssignment_3();
@@ -45416,16 +45149,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4"
-    // InternalPerspectiveDsl.g:13710:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:13625:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
     public final void rule__XIfExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13714:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
-            // InternalPerspectiveDsl.g:13715:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+            // InternalPerspectiveDsl.g:13629:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+            // InternalPerspectiveDsl.g:13630:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XIfExpression__Group__4__Impl();
 
             state._fsp--;
@@ -45454,22 +45187,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:13722:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:13637:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13726:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:13727:1: ( ')' )
+            // InternalPerspectiveDsl.g:13641:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:13642:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:13727:1: ( ')' )
-            // InternalPerspectiveDsl.g:13728:2: ')'
+            // InternalPerspectiveDsl.g:13642:1: ( ')' )
+            // InternalPerspectiveDsl.g:13643:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -45495,16 +45228,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5"
-    // InternalPerspectiveDsl.g:13737:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:13652:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
     public final void rule__XIfExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13741:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
-            // InternalPerspectiveDsl.g:13742:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+            // InternalPerspectiveDsl.g:13656:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+            // InternalPerspectiveDsl.g:13657:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_99);
             rule__XIfExpression__Group__5__Impl();
 
             state._fsp--;
@@ -45533,23 +45266,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:13749:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:13664:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
     public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13753:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:13754:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalPerspectiveDsl.g:13668:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:13669:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:13754:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
-            // InternalPerspectiveDsl.g:13755:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalPerspectiveDsl.g:13669:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalPerspectiveDsl.g:13670:2: ( rule__XIfExpression__ThenAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:13756:2: ( rule__XIfExpression__ThenAssignment_5 )
-            // InternalPerspectiveDsl.g:13756:3: rule__XIfExpression__ThenAssignment_5
+            // InternalPerspectiveDsl.g:13671:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalPerspectiveDsl.g:13671:3: rule__XIfExpression__ThenAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ThenAssignment_5();
@@ -45584,14 +45317,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6"
-    // InternalPerspectiveDsl.g:13764:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:13679:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
     public final void rule__XIfExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13768:1: ( rule__XIfExpression__Group__6__Impl )
-            // InternalPerspectiveDsl.g:13769:2: rule__XIfExpression__Group__6__Impl
+            // InternalPerspectiveDsl.g:13683:1: ( rule__XIfExpression__Group__6__Impl )
+            // InternalPerspectiveDsl.g:13684:2: rule__XIfExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__6__Impl();
@@ -45617,35 +45350,35 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:13775:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+    // InternalPerspectiveDsl.g:13690:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
     public final void rule__XIfExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13779:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
-            // InternalPerspectiveDsl.g:13780:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalPerspectiveDsl.g:13694:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+            // InternalPerspectiveDsl.g:13695:1: ( ( rule__XIfExpression__Group_6__0 )? )
             {
-            // InternalPerspectiveDsl.g:13780:1: ( ( rule__XIfExpression__Group_6__0 )? )
-            // InternalPerspectiveDsl.g:13781:2: ( rule__XIfExpression__Group_6__0 )?
+            // InternalPerspectiveDsl.g:13695:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalPerspectiveDsl.g:13696:2: ( rule__XIfExpression__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
             }
-            // InternalPerspectiveDsl.g:13782:2: ( rule__XIfExpression__Group_6__0 )?
+            // InternalPerspectiveDsl.g:13697:2: ( rule__XIfExpression__Group_6__0 )?
             int alt98=2;
             int LA98_0 = input.LA(1);
 
-            if ( (LA98_0==99) ) {
+            if ( (LA98_0==98) ) {
                 int LA98_1 = input.LA(2);
 
-                if ( (synpred155_InternalPerspectiveDsl()) ) {
+                if ( (synpred154_InternalPerspectiveDsl()) ) {
                     alt98=1;
                 }
             }
             switch (alt98) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13782:3: rule__XIfExpression__Group_6__0
+                    // InternalPerspectiveDsl.g:13697:3: rule__XIfExpression__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XIfExpression__Group_6__0();
@@ -45683,16 +45416,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0"
-    // InternalPerspectiveDsl.g:13791:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+    // InternalPerspectiveDsl.g:13706:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
     public final void rule__XIfExpression__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13795:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
-            // InternalPerspectiveDsl.g:13796:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+            // InternalPerspectiveDsl.g:13710:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+            // InternalPerspectiveDsl.g:13711:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XIfExpression__Group_6__0__Impl();
 
             state._fsp--;
@@ -45721,25 +45454,25 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
-    // InternalPerspectiveDsl.g:13803:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+    // InternalPerspectiveDsl.g:13718:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
     public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13807:1: ( ( ( 'else' ) ) )
-            // InternalPerspectiveDsl.g:13808:1: ( ( 'else' ) )
+            // InternalPerspectiveDsl.g:13722:1: ( ( ( 'else' ) ) )
+            // InternalPerspectiveDsl.g:13723:1: ( ( 'else' ) )
             {
-            // InternalPerspectiveDsl.g:13808:1: ( ( 'else' ) )
-            // InternalPerspectiveDsl.g:13809:2: ( 'else' )
+            // InternalPerspectiveDsl.g:13723:1: ( ( 'else' ) )
+            // InternalPerspectiveDsl.g:13724:2: ( 'else' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
             }
-            // InternalPerspectiveDsl.g:13810:2: ( 'else' )
-            // InternalPerspectiveDsl.g:13810:3: 'else'
+            // InternalPerspectiveDsl.g:13725:2: ( 'else' )
+            // InternalPerspectiveDsl.g:13725:3: 'else'
             {
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,98,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -45768,14 +45501,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1"
-    // InternalPerspectiveDsl.g:13818:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+    // InternalPerspectiveDsl.g:13733:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
     public final void rule__XIfExpression__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13822:1: ( rule__XIfExpression__Group_6__1__Impl )
-            // InternalPerspectiveDsl.g:13823:2: rule__XIfExpression__Group_6__1__Impl
+            // InternalPerspectiveDsl.g:13737:1: ( rule__XIfExpression__Group_6__1__Impl )
+            // InternalPerspectiveDsl.g:13738:2: rule__XIfExpression__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group_6__1__Impl();
@@ -45801,23 +45534,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
-    // InternalPerspectiveDsl.g:13829:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+    // InternalPerspectiveDsl.g:13744:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
     public final void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13833:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
-            // InternalPerspectiveDsl.g:13834:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalPerspectiveDsl.g:13748:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+            // InternalPerspectiveDsl.g:13749:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
             {
-            // InternalPerspectiveDsl.g:13834:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
-            // InternalPerspectiveDsl.g:13835:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalPerspectiveDsl.g:13749:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalPerspectiveDsl.g:13750:2: ( rule__XIfExpression__ElseAssignment_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
             }
-            // InternalPerspectiveDsl.g:13836:2: ( rule__XIfExpression__ElseAssignment_6_1 )
-            // InternalPerspectiveDsl.g:13836:3: rule__XIfExpression__ElseAssignment_6_1
+            // InternalPerspectiveDsl.g:13751:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalPerspectiveDsl.g:13751:3: rule__XIfExpression__ElseAssignment_6_1
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ElseAssignment_6_1();
@@ -45852,16 +45585,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0"
-    // InternalPerspectiveDsl.g:13845:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:13760:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
     public final void rule__XSwitchExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13849:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
-            // InternalPerspectiveDsl.g:13850:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+            // InternalPerspectiveDsl.g:13764:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+            // InternalPerspectiveDsl.g:13765:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
             {
-            pushFollow(FOLLOW_101);
+            pushFollow(FOLLOW_100);
             rule__XSwitchExpression__Group__0__Impl();
 
             state._fsp--;
@@ -45890,23 +45623,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:13857:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:13772:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
     public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13861:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:13862:1: ( () )
+            // InternalPerspectiveDsl.g:13776:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:13777:1: ( () )
             {
-            // InternalPerspectiveDsl.g:13862:1: ( () )
-            // InternalPerspectiveDsl.g:13863:2: ()
+            // InternalPerspectiveDsl.g:13777:1: ( () )
+            // InternalPerspectiveDsl.g:13778:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:13864:2: ()
-            // InternalPerspectiveDsl.g:13864:3: 
+            // InternalPerspectiveDsl.g:13779:2: ()
+            // InternalPerspectiveDsl.g:13779:3: 
             {
             }
 
@@ -45931,16 +45664,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1"
-    // InternalPerspectiveDsl.g:13872:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:13787:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
     public final void rule__XSwitchExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13876:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
-            // InternalPerspectiveDsl.g:13877:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+            // InternalPerspectiveDsl.g:13791:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+            // InternalPerspectiveDsl.g:13792:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
             {
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_101);
             rule__XSwitchExpression__Group__1__Impl();
 
             state._fsp--;
@@ -45969,22 +45702,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:13884:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+    // InternalPerspectiveDsl.g:13799:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
     public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13888:1: ( ( 'switch' ) )
-            // InternalPerspectiveDsl.g:13889:1: ( 'switch' )
+            // InternalPerspectiveDsl.g:13803:1: ( ( 'switch' ) )
+            // InternalPerspectiveDsl.g:13804:1: ( 'switch' )
             {
-            // InternalPerspectiveDsl.g:13889:1: ( 'switch' )
-            // InternalPerspectiveDsl.g:13890:2: 'switch'
+            // InternalPerspectiveDsl.g:13804:1: ( 'switch' )
+            // InternalPerspectiveDsl.g:13805:2: 'switch'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,99,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
@@ -46010,14 +45743,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2"
-    // InternalPerspectiveDsl.g:13899:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:13814:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
     public final void rule__XSwitchExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13903:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
-            // InternalPerspectiveDsl.g:13904:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+            // InternalPerspectiveDsl.g:13818:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+            // InternalPerspectiveDsl.g:13819:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__XSwitchExpression__Group__2__Impl();
@@ -46048,23 +45781,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:13911:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+    // InternalPerspectiveDsl.g:13826:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
     public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13915:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
-            // InternalPerspectiveDsl.g:13916:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:13830:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:13831:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:13916:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
-            // InternalPerspectiveDsl.g:13917:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalPerspectiveDsl.g:13831:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:13832:2: ( rule__XSwitchExpression__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:13918:2: ( rule__XSwitchExpression__Alternatives_2 )
-            // InternalPerspectiveDsl.g:13918:3: rule__XSwitchExpression__Alternatives_2
+            // InternalPerspectiveDsl.g:13833:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalPerspectiveDsl.g:13833:3: rule__XSwitchExpression__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Alternatives_2();
@@ -46099,16 +45832,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3"
-    // InternalPerspectiveDsl.g:13926:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:13841:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
     public final void rule__XSwitchExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13930:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
-            // InternalPerspectiveDsl.g:13931:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+            // InternalPerspectiveDsl.g:13845:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+            // InternalPerspectiveDsl.g:13846:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
             {
-            pushFollow(FOLLOW_103);
+            pushFollow(FOLLOW_102);
             rule__XSwitchExpression__Group__3__Impl();
 
             state._fsp--;
@@ -46137,17 +45870,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:13938:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:13853:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
     public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13942:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:13943:1: ( '{' )
+            // InternalPerspectiveDsl.g:13857:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:13858:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:13943:1: ( '{' )
-            // InternalPerspectiveDsl.g:13944:2: '{'
+            // InternalPerspectiveDsl.g:13858:1: ( '{' )
+            // InternalPerspectiveDsl.g:13859:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
@@ -46178,16 +45911,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4"
-    // InternalPerspectiveDsl.g:13953:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:13868:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
     public final void rule__XSwitchExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13957:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
-            // InternalPerspectiveDsl.g:13958:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+            // InternalPerspectiveDsl.g:13872:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+            // InternalPerspectiveDsl.g:13873:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
             {
-            pushFollow(FOLLOW_103);
+            pushFollow(FOLLOW_102);
             rule__XSwitchExpression__Group__4__Impl();
 
             state._fsp--;
@@ -46216,37 +45949,37 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:13965:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
+    // InternalPerspectiveDsl.g:13880:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
     public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13969:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
-            // InternalPerspectiveDsl.g:13970:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalPerspectiveDsl.g:13884:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+            // InternalPerspectiveDsl.g:13885:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
             {
-            // InternalPerspectiveDsl.g:13970:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
-            // InternalPerspectiveDsl.g:13971:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            // InternalPerspectiveDsl.g:13885:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalPerspectiveDsl.g:13886:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:13972:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            // InternalPerspectiveDsl.g:13887:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
             loop99:
             do {
                 int alt99=2;
                 int LA99_0 = input.LA(1);
 
-                if ( (LA99_0==RULE_ID||LA99_0==31||LA99_0==90||LA99_0==92||LA99_0==101||LA99_0==103) ) {
+                if ( (LA99_0==RULE_ID||LA99_0==31||LA99_0==89||LA99_0==91||LA99_0==100||LA99_0==102) ) {
                     alt99=1;
                 }
 
 
                 switch (alt99) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:13972:3: rule__XSwitchExpression__CasesAssignment_4
+            	    // InternalPerspectiveDsl.g:13887:3: rule__XSwitchExpression__CasesAssignment_4
             	    {
-            	    pushFollow(FOLLOW_104);
+            	    pushFollow(FOLLOW_103);
             	    rule__XSwitchExpression__CasesAssignment_4();
 
             	    state._fsp--;
@@ -46285,16 +46018,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5"
-    // InternalPerspectiveDsl.g:13980:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:13895:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
     public final void rule__XSwitchExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13984:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
-            // InternalPerspectiveDsl.g:13985:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+            // InternalPerspectiveDsl.g:13899:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+            // InternalPerspectiveDsl.g:13900:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
             {
-            pushFollow(FOLLOW_103);
+            pushFollow(FOLLOW_102);
             rule__XSwitchExpression__Group__5__Impl();
 
             state._fsp--;
@@ -46323,31 +46056,31 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:13992:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+    // InternalPerspectiveDsl.g:13907:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
     public final void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:13996:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
-            // InternalPerspectiveDsl.g:13997:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalPerspectiveDsl.g:13911:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+            // InternalPerspectiveDsl.g:13912:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
             {
-            // InternalPerspectiveDsl.g:13997:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
-            // InternalPerspectiveDsl.g:13998:2: ( rule__XSwitchExpression__Group_5__0 )?
+            // InternalPerspectiveDsl.g:13912:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalPerspectiveDsl.g:13913:2: ( rule__XSwitchExpression__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
             }
-            // InternalPerspectiveDsl.g:13999:2: ( rule__XSwitchExpression__Group_5__0 )?
+            // InternalPerspectiveDsl.g:13914:2: ( rule__XSwitchExpression__Group_5__0 )?
             int alt100=2;
             int LA100_0 = input.LA(1);
 
-            if ( (LA100_0==102) ) {
+            if ( (LA100_0==101) ) {
                 alt100=1;
             }
             switch (alt100) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:13999:3: rule__XSwitchExpression__Group_5__0
+                    // InternalPerspectiveDsl.g:13914:3: rule__XSwitchExpression__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_5__0();
@@ -46385,14 +46118,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6"
-    // InternalPerspectiveDsl.g:14007:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:13922:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
     public final void rule__XSwitchExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14011:1: ( rule__XSwitchExpression__Group__6__Impl )
-            // InternalPerspectiveDsl.g:14012:2: rule__XSwitchExpression__Group__6__Impl
+            // InternalPerspectiveDsl.g:13926:1: ( rule__XSwitchExpression__Group__6__Impl )
+            // InternalPerspectiveDsl.g:13927:2: rule__XSwitchExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__6__Impl();
@@ -46418,17 +46151,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:14018:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:13933:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
     public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14022:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:14023:1: ( '}' )
+            // InternalPerspectiveDsl.g:13937:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:13938:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:14023:1: ( '}' )
-            // InternalPerspectiveDsl.g:14024:2: '}'
+            // InternalPerspectiveDsl.g:13938:1: ( '}' )
+            // InternalPerspectiveDsl.g:13939:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
@@ -46459,16 +46192,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
-    // InternalPerspectiveDsl.g:14034:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+    // InternalPerspectiveDsl.g:13949:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14038:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
-            // InternalPerspectiveDsl.g:14039:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+            // InternalPerspectiveDsl.g:13953:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:13954:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XSwitchExpression__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -46497,23 +46230,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:14046:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:13961:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14050:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14051:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:13965:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:13966:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14051:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
-            // InternalPerspectiveDsl.g:14052:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:13966:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:13967:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14053:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
-            // InternalPerspectiveDsl.g:14053:3: rule__XSwitchExpression__Group_2_0_0__0
+            // InternalPerspectiveDsl.g:13968:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:13968:3: rule__XSwitchExpression__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0();
@@ -46548,16 +46281,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
-    // InternalPerspectiveDsl.g:14061:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
+    // InternalPerspectiveDsl.g:13976:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14065:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
-            // InternalPerspectiveDsl.g:14066:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
+            // InternalPerspectiveDsl.g:13980:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
+            // InternalPerspectiveDsl.g:13981:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XSwitchExpression__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -46586,23 +46319,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
-    // InternalPerspectiveDsl.g:14073:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:13988:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14077:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
-            // InternalPerspectiveDsl.g:14078:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalPerspectiveDsl.g:13992:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+            // InternalPerspectiveDsl.g:13993:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:14078:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
-            // InternalPerspectiveDsl.g:14079:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalPerspectiveDsl.g:13993:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalPerspectiveDsl.g:13994:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
             }
-            // InternalPerspectiveDsl.g:14080:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
-            // InternalPerspectiveDsl.g:14080:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
+            // InternalPerspectiveDsl.g:13995:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalPerspectiveDsl.g:13995:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_0_1();
@@ -46637,14 +46370,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
-    // InternalPerspectiveDsl.g:14088:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
+    // InternalPerspectiveDsl.g:14003:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14092:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
-            // InternalPerspectiveDsl.g:14093:2: rule__XSwitchExpression__Group_2_0__2__Impl
+            // InternalPerspectiveDsl.g:14007:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
+            // InternalPerspectiveDsl.g:14008:2: rule__XSwitchExpression__Group_2_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0__2__Impl();
@@ -46670,22 +46403,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
-    // InternalPerspectiveDsl.g:14099:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:14014:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
     public final void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14103:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:14104:1: ( ')' )
+            // InternalPerspectiveDsl.g:14018:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:14019:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:14104:1: ( ')' )
-            // InternalPerspectiveDsl.g:14105:2: ')'
+            // InternalPerspectiveDsl.g:14019:1: ( ')' )
+            // InternalPerspectiveDsl.g:14020:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
@@ -46711,14 +46444,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
-    // InternalPerspectiveDsl.g:14115:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:14030:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14119:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:14120:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+            // InternalPerspectiveDsl.g:14034:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:14035:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0__Impl();
@@ -46744,23 +46477,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:14126:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14041:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14130:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14131:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14045:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14046:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14131:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:14132:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalPerspectiveDsl.g:14046:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14047:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14133:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
-            // InternalPerspectiveDsl.g:14133:3: rule__XSwitchExpression__Group_2_0_0_0__0
+            // InternalPerspectiveDsl.g:14048:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalPerspectiveDsl.g:14048:3: rule__XSwitchExpression__Group_2_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__0();
@@ -46795,16 +46528,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
-    // InternalPerspectiveDsl.g:14142:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
+    // InternalPerspectiveDsl.g:14057:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14146:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
-            // InternalPerspectiveDsl.g:14147:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+            // InternalPerspectiveDsl.g:14061:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+            // InternalPerspectiveDsl.g:14062:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
 
             state._fsp--;
@@ -46833,22 +46566,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:14154:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:14069:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14158:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:14159:1: ( '(' )
+            // InternalPerspectiveDsl.g:14073:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:14074:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:14159:1: ( '(' )
-            // InternalPerspectiveDsl.g:14160:2: '('
+            // InternalPerspectiveDsl.g:14074:1: ( '(' )
+            // InternalPerspectiveDsl.g:14075:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
@@ -46874,16 +46607,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
-    // InternalPerspectiveDsl.g:14169:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
+    // InternalPerspectiveDsl.g:14084:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14173:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
-            // InternalPerspectiveDsl.g:14174:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
+            // InternalPerspectiveDsl.g:14088:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
+            // InternalPerspectiveDsl.g:14089:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
             {
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_104);
             rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
 
             state._fsp--;
@@ -46912,23 +46645,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:14181:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:14096:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14185:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:14186:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:14100:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:14101:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:14186:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
-            // InternalPerspectiveDsl.g:14187:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalPerspectiveDsl.g:14101:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalPerspectiveDsl.g:14102:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:14188:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
-            // InternalPerspectiveDsl.g:14188:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+            // InternalPerspectiveDsl.g:14103:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalPerspectiveDsl.g:14103:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();
@@ -46963,14 +46696,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
-    // InternalPerspectiveDsl.g:14196:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:14111:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14200:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:14201:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:14115:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:14116:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__2__Impl();
@@ -46996,22 +46729,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:14207:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:14122:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14211:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:14212:1: ( ':' )
+            // InternalPerspectiveDsl.g:14126:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:14127:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:14212:1: ( ':' )
-            // InternalPerspectiveDsl.g:14213:2: ':'
+            // InternalPerspectiveDsl.g:14127:1: ( ':' )
+            // InternalPerspectiveDsl.g:14128:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
             }
@@ -47037,16 +46770,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
-    // InternalPerspectiveDsl.g:14223:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+    // InternalPerspectiveDsl.g:14138:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
     public final void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14227:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
-            // InternalPerspectiveDsl.g:14228:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+            // InternalPerspectiveDsl.g:14142:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+            // InternalPerspectiveDsl.g:14143:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
             {
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_101);
             rule__XSwitchExpression__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -47075,27 +46808,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
-    // InternalPerspectiveDsl.g:14235:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
+    // InternalPerspectiveDsl.g:14150:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
     public final void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14239:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
-            // InternalPerspectiveDsl.g:14240:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalPerspectiveDsl.g:14154:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
+            // InternalPerspectiveDsl.g:14155:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
             {
-            // InternalPerspectiveDsl.g:14240:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
-            // InternalPerspectiveDsl.g:14241:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            // InternalPerspectiveDsl.g:14155:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalPerspectiveDsl.g:14156:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:14242:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            // InternalPerspectiveDsl.g:14157:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
             int alt101=2;
             alt101 = dfa101.predict(input);
             switch (alt101) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:14242:3: rule__XSwitchExpression__Group_2_1_0__0
+                    // InternalPerspectiveDsl.g:14157:3: rule__XSwitchExpression__Group_2_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1_0__0();
@@ -47133,14 +46866,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
-    // InternalPerspectiveDsl.g:14250:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
+    // InternalPerspectiveDsl.g:14165:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14254:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
-            // InternalPerspectiveDsl.g:14255:2: rule__XSwitchExpression__Group_2_1__1__Impl
+            // InternalPerspectiveDsl.g:14169:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
+            // InternalPerspectiveDsl.g:14170:2: rule__XSwitchExpression__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1__1__Impl();
@@ -47166,23 +46899,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
-    // InternalPerspectiveDsl.g:14261:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:14176:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14265:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
-            // InternalPerspectiveDsl.g:14266:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalPerspectiveDsl.g:14180:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+            // InternalPerspectiveDsl.g:14181:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:14266:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
-            // InternalPerspectiveDsl.g:14267:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalPerspectiveDsl.g:14181:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalPerspectiveDsl.g:14182:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
             }
-            // InternalPerspectiveDsl.g:14268:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
-            // InternalPerspectiveDsl.g:14268:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
+            // InternalPerspectiveDsl.g:14183:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalPerspectiveDsl.g:14183:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_1_1();
@@ -47217,14 +46950,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
-    // InternalPerspectiveDsl.g:14277:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:14192:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14281:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:14282:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+            // InternalPerspectiveDsl.g:14196:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:14197:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0__0__Impl();
@@ -47250,23 +46983,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:14288:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14203:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14292:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14293:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14207:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14208:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14293:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:14294:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalPerspectiveDsl.g:14208:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14209:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14295:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
-            // InternalPerspectiveDsl.g:14295:3: rule__XSwitchExpression__Group_2_1_0_0__0
+            // InternalPerspectiveDsl.g:14210:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalPerspectiveDsl.g:14210:3: rule__XSwitchExpression__Group_2_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__0();
@@ -47301,16 +47034,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
-    // InternalPerspectiveDsl.g:14304:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
+    // InternalPerspectiveDsl.g:14219:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14308:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
-            // InternalPerspectiveDsl.g:14309:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+            // InternalPerspectiveDsl.g:14223:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+            // InternalPerspectiveDsl.g:14224:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
             {
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_104);
             rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
 
             state._fsp--;
@@ -47339,23 +47072,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:14316:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:14231:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14320:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:14321:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:14235:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:14236:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:14321:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
-            // InternalPerspectiveDsl.g:14322:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalPerspectiveDsl.g:14236:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalPerspectiveDsl.g:14237:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14323:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
-            // InternalPerspectiveDsl.g:14323:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+            // InternalPerspectiveDsl.g:14238:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalPerspectiveDsl.g:14238:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();
@@ -47390,14 +47123,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
-    // InternalPerspectiveDsl.g:14331:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:14246:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14335:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:14336:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:14250:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:14251:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
@@ -47423,22 +47156,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:14342:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:14257:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14346:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:14347:1: ( ':' )
+            // InternalPerspectiveDsl.g:14261:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:14262:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:14347:1: ( ':' )
-            // InternalPerspectiveDsl.g:14348:2: ':'
+            // InternalPerspectiveDsl.g:14262:1: ( ':' )
+            // InternalPerspectiveDsl.g:14263:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
             }
@@ -47464,16 +47197,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0"
-    // InternalPerspectiveDsl.g:14358:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+    // InternalPerspectiveDsl.g:14273:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
     public final void rule__XSwitchExpression__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14362:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
-            // InternalPerspectiveDsl.g:14363:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+            // InternalPerspectiveDsl.g:14277:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+            // InternalPerspectiveDsl.g:14278:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
             {
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_104);
             rule__XSwitchExpression__Group_5__0__Impl();
 
             state._fsp--;
@@ -47502,22 +47235,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
-    // InternalPerspectiveDsl.g:14370:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+    // InternalPerspectiveDsl.g:14285:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
     public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14374:1: ( ( 'default' ) )
-            // InternalPerspectiveDsl.g:14375:1: ( 'default' )
+            // InternalPerspectiveDsl.g:14289:1: ( ( 'default' ) )
+            // InternalPerspectiveDsl.g:14290:1: ( 'default' )
             {
-            // InternalPerspectiveDsl.g:14375:1: ( 'default' )
-            // InternalPerspectiveDsl.g:14376:2: 'default'
+            // InternalPerspectiveDsl.g:14290:1: ( 'default' )
+            // InternalPerspectiveDsl.g:14291:2: 'default'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,101,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
@@ -47543,16 +47276,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1"
-    // InternalPerspectiveDsl.g:14385:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+    // InternalPerspectiveDsl.g:14300:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
     public final void rule__XSwitchExpression__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14389:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
-            // InternalPerspectiveDsl.g:14390:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+            // InternalPerspectiveDsl.g:14304:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+            // InternalPerspectiveDsl.g:14305:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XSwitchExpression__Group_5__1__Impl();
 
             state._fsp--;
@@ -47581,22 +47314,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
-    // InternalPerspectiveDsl.g:14397:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:14312:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14401:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:14402:1: ( ':' )
+            // InternalPerspectiveDsl.g:14316:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:14317:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:14402:1: ( ':' )
-            // InternalPerspectiveDsl.g:14403:2: ':'
+            // InternalPerspectiveDsl.g:14317:1: ( ':' )
+            // InternalPerspectiveDsl.g:14318:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
             }
@@ -47622,14 +47355,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2"
-    // InternalPerspectiveDsl.g:14412:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+    // InternalPerspectiveDsl.g:14327:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
     public final void rule__XSwitchExpression__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14416:1: ( rule__XSwitchExpression__Group_5__2__Impl )
-            // InternalPerspectiveDsl.g:14417:2: rule__XSwitchExpression__Group_5__2__Impl
+            // InternalPerspectiveDsl.g:14331:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+            // InternalPerspectiveDsl.g:14332:2: rule__XSwitchExpression__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_5__2__Impl();
@@ -47655,23 +47388,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
-    // InternalPerspectiveDsl.g:14423:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+    // InternalPerspectiveDsl.g:14338:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
     public final void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14427:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
-            // InternalPerspectiveDsl.g:14428:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalPerspectiveDsl.g:14342:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+            // InternalPerspectiveDsl.g:14343:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
             {
-            // InternalPerspectiveDsl.g:14428:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
-            // InternalPerspectiveDsl.g:14429:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalPerspectiveDsl.g:14343:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalPerspectiveDsl.g:14344:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
             }
-            // InternalPerspectiveDsl.g:14430:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
-            // InternalPerspectiveDsl.g:14430:3: rule__XSwitchExpression__DefaultAssignment_5_2
+            // InternalPerspectiveDsl.g:14345:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalPerspectiveDsl.g:14345:3: rule__XSwitchExpression__DefaultAssignment_5_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DefaultAssignment_5_2();
@@ -47706,16 +47439,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0"
-    // InternalPerspectiveDsl.g:14439:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+    // InternalPerspectiveDsl.g:14354:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
     public final void rule__XCasePart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14443:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
-            // InternalPerspectiveDsl.g:14444:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+            // InternalPerspectiveDsl.g:14358:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+            // InternalPerspectiveDsl.g:14359:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_105);
             rule__XCasePart__Group__0__Impl();
 
             state._fsp--;
@@ -47744,23 +47477,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:14451:1: rule__XCasePart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:14366:1: rule__XCasePart__Group__0__Impl : ( () ) ;
     public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14455:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:14456:1: ( () )
+            // InternalPerspectiveDsl.g:14370:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:14371:1: ( () )
             {
-            // InternalPerspectiveDsl.g:14456:1: ( () )
-            // InternalPerspectiveDsl.g:14457:2: ()
+            // InternalPerspectiveDsl.g:14371:1: ( () )
+            // InternalPerspectiveDsl.g:14372:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:14458:2: ()
-            // InternalPerspectiveDsl.g:14458:3: 
+            // InternalPerspectiveDsl.g:14373:2: ()
+            // InternalPerspectiveDsl.g:14373:3: 
             {
             }
 
@@ -47785,16 +47518,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1"
-    // InternalPerspectiveDsl.g:14466:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+    // InternalPerspectiveDsl.g:14381:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
     public final void rule__XCasePart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14470:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
-            // InternalPerspectiveDsl.g:14471:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+            // InternalPerspectiveDsl.g:14385:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+            // InternalPerspectiveDsl.g:14386:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_105);
             rule__XCasePart__Group__1__Impl();
 
             state._fsp--;
@@ -47823,31 +47556,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:14478:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
+    // InternalPerspectiveDsl.g:14393:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
     public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14482:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
-            // InternalPerspectiveDsl.g:14483:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalPerspectiveDsl.g:14397:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
+            // InternalPerspectiveDsl.g:14398:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
             {
-            // InternalPerspectiveDsl.g:14483:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
-            // InternalPerspectiveDsl.g:14484:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            // InternalPerspectiveDsl.g:14398:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalPerspectiveDsl.g:14399:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:14485:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            // InternalPerspectiveDsl.g:14400:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
             int alt102=2;
             int LA102_0 = input.LA(1);
 
-            if ( (LA102_0==RULE_ID||LA102_0==31||LA102_0==90) ) {
+            if ( (LA102_0==RULE_ID||LA102_0==31||LA102_0==89) ) {
                 alt102=1;
             }
             switch (alt102) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:14485:3: rule__XCasePart__TypeGuardAssignment_1
+                    // InternalPerspectiveDsl.g:14400:3: rule__XCasePart__TypeGuardAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__TypeGuardAssignment_1();
@@ -47885,16 +47618,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2"
-    // InternalPerspectiveDsl.g:14493:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+    // InternalPerspectiveDsl.g:14408:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
     public final void rule__XCasePart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14497:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
-            // InternalPerspectiveDsl.g:14498:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+            // InternalPerspectiveDsl.g:14412:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+            // InternalPerspectiveDsl.g:14413:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_105);
             rule__XCasePart__Group__2__Impl();
 
             state._fsp--;
@@ -47923,31 +47656,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:14505:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
+    // InternalPerspectiveDsl.g:14420:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
     public final void rule__XCasePart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14509:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
-            // InternalPerspectiveDsl.g:14510:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalPerspectiveDsl.g:14424:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
+            // InternalPerspectiveDsl.g:14425:1: ( ( rule__XCasePart__Group_2__0 )? )
             {
-            // InternalPerspectiveDsl.g:14510:1: ( ( rule__XCasePart__Group_2__0 )? )
-            // InternalPerspectiveDsl.g:14511:2: ( rule__XCasePart__Group_2__0 )?
+            // InternalPerspectiveDsl.g:14425:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalPerspectiveDsl.g:14426:2: ( rule__XCasePart__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup_2()); 
             }
-            // InternalPerspectiveDsl.g:14512:2: ( rule__XCasePart__Group_2__0 )?
+            // InternalPerspectiveDsl.g:14427:2: ( rule__XCasePart__Group_2__0 )?
             int alt103=2;
             int LA103_0 = input.LA(1);
 
-            if ( (LA103_0==103) ) {
+            if ( (LA103_0==102) ) {
                 alt103=1;
             }
             switch (alt103) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:14512:3: rule__XCasePart__Group_2__0
+                    // InternalPerspectiveDsl.g:14427:3: rule__XCasePart__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_2__0();
@@ -47985,14 +47718,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3"
-    // InternalPerspectiveDsl.g:14520:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:14435:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
     public final void rule__XCasePart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14524:1: ( rule__XCasePart__Group__3__Impl )
-            // InternalPerspectiveDsl.g:14525:2: rule__XCasePart__Group__3__Impl
+            // InternalPerspectiveDsl.g:14439:1: ( rule__XCasePart__Group__3__Impl )
+            // InternalPerspectiveDsl.g:14440:2: rule__XCasePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__3__Impl();
@@ -48018,23 +47751,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3__Impl"
-    // InternalPerspectiveDsl.g:14531:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
+    // InternalPerspectiveDsl.g:14446:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
     public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14535:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
-            // InternalPerspectiveDsl.g:14536:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:14450:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
+            // InternalPerspectiveDsl.g:14451:1: ( ( rule__XCasePart__Alternatives_3 ) )
             {
-            // InternalPerspectiveDsl.g:14536:1: ( ( rule__XCasePart__Alternatives_3 ) )
-            // InternalPerspectiveDsl.g:14537:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalPerspectiveDsl.g:14451:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:14452:2: ( rule__XCasePart__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
             }
-            // InternalPerspectiveDsl.g:14538:2: ( rule__XCasePart__Alternatives_3 )
-            // InternalPerspectiveDsl.g:14538:3: rule__XCasePart__Alternatives_3
+            // InternalPerspectiveDsl.g:14453:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalPerspectiveDsl.g:14453:3: rule__XCasePart__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Alternatives_3();
@@ -48069,16 +47802,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0"
-    // InternalPerspectiveDsl.g:14547:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
+    // InternalPerspectiveDsl.g:14462:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
     public final void rule__XCasePart__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14551:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
-            // InternalPerspectiveDsl.g:14552:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
+            // InternalPerspectiveDsl.g:14466:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
+            // InternalPerspectiveDsl.g:14467:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XCasePart__Group_2__0__Impl();
 
             state._fsp--;
@@ -48107,22 +47840,22 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
-    // InternalPerspectiveDsl.g:14559:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
+    // InternalPerspectiveDsl.g:14474:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
     public final void rule__XCasePart__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14563:1: ( ( 'case' ) )
-            // InternalPerspectiveDsl.g:14564:1: ( 'case' )
+            // InternalPerspectiveDsl.g:14478:1: ( ( 'case' ) )
+            // InternalPerspectiveDsl.g:14479:1: ( 'case' )
             {
-            // InternalPerspectiveDsl.g:14564:1: ( 'case' )
-            // InternalPerspectiveDsl.g:14565:2: 'case'
+            // InternalPerspectiveDsl.g:14479:1: ( 'case' )
+            // InternalPerspectiveDsl.g:14480:2: 'case'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
-            match(input,103,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
@@ -48148,14 +47881,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1"
-    // InternalPerspectiveDsl.g:14574:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
+    // InternalPerspectiveDsl.g:14489:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
     public final void rule__XCasePart__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14578:1: ( rule__XCasePart__Group_2__1__Impl )
-            // InternalPerspectiveDsl.g:14579:2: rule__XCasePart__Group_2__1__Impl
+            // InternalPerspectiveDsl.g:14493:1: ( rule__XCasePart__Group_2__1__Impl )
+            // InternalPerspectiveDsl.g:14494:2: rule__XCasePart__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_2__1__Impl();
@@ -48181,23 +47914,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
-    // InternalPerspectiveDsl.g:14585:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:14500:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
     public final void rule__XCasePart__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14589:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
-            // InternalPerspectiveDsl.g:14590:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalPerspectiveDsl.g:14504:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
+            // InternalPerspectiveDsl.g:14505:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:14590:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
-            // InternalPerspectiveDsl.g:14591:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalPerspectiveDsl.g:14505:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalPerspectiveDsl.g:14506:2: ( rule__XCasePart__CaseAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
             }
-            // InternalPerspectiveDsl.g:14592:2: ( rule__XCasePart__CaseAssignment_2_1 )
-            // InternalPerspectiveDsl.g:14592:3: rule__XCasePart__CaseAssignment_2_1
+            // InternalPerspectiveDsl.g:14507:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalPerspectiveDsl.g:14507:3: rule__XCasePart__CaseAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__CaseAssignment_2_1();
@@ -48232,16 +47965,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0"
-    // InternalPerspectiveDsl.g:14601:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:14516:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
     public final void rule__XCasePart__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14605:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:14606:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
+            // InternalPerspectiveDsl.g:14520:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:14521:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XCasePart__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -48270,22 +48003,22 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:14613:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:14528:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
     public final void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14617:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:14618:1: ( ':' )
+            // InternalPerspectiveDsl.g:14532:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:14533:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:14618:1: ( ':' )
-            // InternalPerspectiveDsl.g:14619:2: ':'
+            // InternalPerspectiveDsl.g:14533:1: ( ':' )
+            // InternalPerspectiveDsl.g:14534:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
             }
@@ -48311,14 +48044,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1"
-    // InternalPerspectiveDsl.g:14628:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:14543:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
     public final void rule__XCasePart__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14632:1: ( rule__XCasePart__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:14633:2: rule__XCasePart__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:14547:1: ( rule__XCasePart__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:14548:2: rule__XCasePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_3_0__1__Impl();
@@ -48344,23 +48077,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:14639:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:14554:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
     public final void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14643:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:14644:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:14558:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:14559:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:14644:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:14645:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:14559:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:14560:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:14646:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:14646:3: rule__XCasePart__ThenAssignment_3_0_1
+            // InternalPerspectiveDsl.g:14561:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:14561:3: rule__XCasePart__ThenAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__ThenAssignment_3_0_1();
@@ -48395,16 +48128,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0"
-    // InternalPerspectiveDsl.g:14655:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:14570:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
     public final void rule__XForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14659:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
-            // InternalPerspectiveDsl.g:14660:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+            // InternalPerspectiveDsl.g:14574:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+            // InternalPerspectiveDsl.g:14575:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -48433,23 +48166,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:14667:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14582:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14671:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14672:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:14586:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14587:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14672:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:14673:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:14587:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:14588:2: ( rule__XForLoopExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:14674:2: ( rule__XForLoopExpression__Group_0__0 )
-            // InternalPerspectiveDsl.g:14674:3: rule__XForLoopExpression__Group_0__0
+            // InternalPerspectiveDsl.g:14589:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:14589:3: rule__XForLoopExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0();
@@ -48484,16 +48217,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1"
-    // InternalPerspectiveDsl.g:14682:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:14597:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
     public final void rule__XForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14686:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
-            // InternalPerspectiveDsl.g:14687:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+            // InternalPerspectiveDsl.g:14601:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+            // InternalPerspectiveDsl.g:14602:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -48522,23 +48255,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:14694:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:14609:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
     public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14698:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:14699:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:14613:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:14614:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:14699:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
-            // InternalPerspectiveDsl.g:14700:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:14614:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalPerspectiveDsl.g:14615:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:14701:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
-            // InternalPerspectiveDsl.g:14701:3: rule__XForLoopExpression__ForExpressionAssignment_1
+            // InternalPerspectiveDsl.g:14616:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalPerspectiveDsl.g:14616:3: rule__XForLoopExpression__ForExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__ForExpressionAssignment_1();
@@ -48573,16 +48306,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2"
-    // InternalPerspectiveDsl.g:14709:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:14624:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
     public final void rule__XForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14713:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
-            // InternalPerspectiveDsl.g:14714:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+            // InternalPerspectiveDsl.g:14628:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+            // InternalPerspectiveDsl.g:14629:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -48611,22 +48344,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:14721:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:14636:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14725:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:14726:1: ( ')' )
+            // InternalPerspectiveDsl.g:14640:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:14641:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:14726:1: ( ')' )
-            // InternalPerspectiveDsl.g:14727:2: ')'
+            // InternalPerspectiveDsl.g:14641:1: ( ')' )
+            // InternalPerspectiveDsl.g:14642:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -48652,14 +48385,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3"
-    // InternalPerspectiveDsl.g:14736:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:14651:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
     public final void rule__XForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14740:1: ( rule__XForLoopExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:14741:2: rule__XForLoopExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:14655:1: ( rule__XForLoopExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:14656:2: rule__XForLoopExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__3__Impl();
@@ -48685,23 +48418,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:14747:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:14662:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
     public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14751:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:14752:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:14666:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:14667:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:14752:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
-            // InternalPerspectiveDsl.g:14753:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:14667:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:14668:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:14754:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
-            // InternalPerspectiveDsl.g:14754:3: rule__XForLoopExpression__EachExpressionAssignment_3
+            // InternalPerspectiveDsl.g:14669:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:14669:3: rule__XForLoopExpression__EachExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__EachExpressionAssignment_3();
@@ -48736,14 +48469,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0"
-    // InternalPerspectiveDsl.g:14763:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:14678:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
     public final void rule__XForLoopExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14767:1: ( rule__XForLoopExpression__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:14768:2: rule__XForLoopExpression__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:14682:1: ( rule__XForLoopExpression__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:14683:2: rule__XForLoopExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0__Impl();
@@ -48769,23 +48502,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:14774:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:14689:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14778:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:14779:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14693:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:14694:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:14779:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:14780:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:14694:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:14695:2: ( rule__XForLoopExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14781:2: ( rule__XForLoopExpression__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:14781:3: rule__XForLoopExpression__Group_0_0__0
+            // InternalPerspectiveDsl.g:14696:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:14696:3: rule__XForLoopExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__0();
@@ -48820,16 +48553,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
-    // InternalPerspectiveDsl.g:14790:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:14705:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
     public final void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14794:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:14795:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
+            // InternalPerspectiveDsl.g:14709:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:14710:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_107);
+            pushFollow(FOLLOW_106);
             rule__XForLoopExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -48858,23 +48591,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:14802:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:14717:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14806:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:14807:1: ( () )
+            // InternalPerspectiveDsl.g:14721:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:14722:1: ( () )
             {
-            // InternalPerspectiveDsl.g:14807:1: ( () )
-            // InternalPerspectiveDsl.g:14808:2: ()
+            // InternalPerspectiveDsl.g:14722:1: ( () )
+            // InternalPerspectiveDsl.g:14723:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:14809:2: ()
-            // InternalPerspectiveDsl.g:14809:3: 
+            // InternalPerspectiveDsl.g:14724:2: ()
+            // InternalPerspectiveDsl.g:14724:3: 
             {
             }
 
@@ -48899,16 +48632,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
-    // InternalPerspectiveDsl.g:14817:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
+    // InternalPerspectiveDsl.g:14732:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
     public final void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14821:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
-            // InternalPerspectiveDsl.g:14822:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
+            // InternalPerspectiveDsl.g:14736:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
+            // InternalPerspectiveDsl.g:14737:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XForLoopExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -48937,22 +48670,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:14829:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
+    // InternalPerspectiveDsl.g:14744:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
     public final void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14833:1: ( ( 'for' ) )
-            // InternalPerspectiveDsl.g:14834:1: ( 'for' )
+            // InternalPerspectiveDsl.g:14748:1: ( ( 'for' ) )
+            // InternalPerspectiveDsl.g:14749:1: ( 'for' )
             {
-            // InternalPerspectiveDsl.g:14834:1: ( 'for' )
-            // InternalPerspectiveDsl.g:14835:2: 'for'
+            // InternalPerspectiveDsl.g:14749:1: ( 'for' )
+            // InternalPerspectiveDsl.g:14750:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
-            match(input,104,FOLLOW_2); if (state.failed) return ;
+            match(input,103,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
@@ -48978,16 +48711,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
-    // InternalPerspectiveDsl.g:14844:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
+    // InternalPerspectiveDsl.g:14759:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
     public final void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14848:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
-            // InternalPerspectiveDsl.g:14849:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
+            // InternalPerspectiveDsl.g:14763:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
+            // InternalPerspectiveDsl.g:14764:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XForLoopExpression__Group_0_0__2__Impl();
 
             state._fsp--;
@@ -49016,22 +48749,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:14856:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:14771:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14860:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:14861:1: ( '(' )
+            // InternalPerspectiveDsl.g:14775:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:14776:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:14861:1: ( '(' )
-            // InternalPerspectiveDsl.g:14862:2: '('
+            // InternalPerspectiveDsl.g:14776:1: ( '(' )
+            // InternalPerspectiveDsl.g:14777:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -49057,16 +48790,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
-    // InternalPerspectiveDsl.g:14871:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
+    // InternalPerspectiveDsl.g:14786:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
     public final void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14875:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
-            // InternalPerspectiveDsl.g:14876:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
+            // InternalPerspectiveDsl.g:14790:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
+            // InternalPerspectiveDsl.g:14791:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
             {
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_104);
             rule__XForLoopExpression__Group_0_0__3__Impl();
 
             state._fsp--;
@@ -49095,23 +48828,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
-    // InternalPerspectiveDsl.g:14883:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:14798:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
     public final void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14887:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
-            // InternalPerspectiveDsl.g:14888:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalPerspectiveDsl.g:14802:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
+            // InternalPerspectiveDsl.g:14803:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:14888:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
-            // InternalPerspectiveDsl.g:14889:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalPerspectiveDsl.g:14803:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalPerspectiveDsl.g:14804:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
             }
-            // InternalPerspectiveDsl.g:14890:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
-            // InternalPerspectiveDsl.g:14890:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+            // InternalPerspectiveDsl.g:14805:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalPerspectiveDsl.g:14805:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();
@@ -49146,14 +48879,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
-    // InternalPerspectiveDsl.g:14898:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
+    // InternalPerspectiveDsl.g:14813:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
     public final void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14902:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
-            // InternalPerspectiveDsl.g:14903:2: rule__XForLoopExpression__Group_0_0__4__Impl
+            // InternalPerspectiveDsl.g:14817:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
+            // InternalPerspectiveDsl.g:14818:2: rule__XForLoopExpression__Group_0_0__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__4__Impl();
@@ -49179,22 +48912,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
-    // InternalPerspectiveDsl.g:14909:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
+    // InternalPerspectiveDsl.g:14824:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
     public final void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14913:1: ( ( ':' ) )
-            // InternalPerspectiveDsl.g:14914:1: ( ':' )
+            // InternalPerspectiveDsl.g:14828:1: ( ( ':' ) )
+            // InternalPerspectiveDsl.g:14829:1: ( ':' )
             {
-            // InternalPerspectiveDsl.g:14914:1: ( ':' )
-            // InternalPerspectiveDsl.g:14915:2: ':'
+            // InternalPerspectiveDsl.g:14829:1: ( ':' )
+            // InternalPerspectiveDsl.g:14830:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
             }
@@ -49220,16 +48953,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
-    // InternalPerspectiveDsl.g:14925:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:14840:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
     public final void rule__XBasicForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14929:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
-            // InternalPerspectiveDsl.g:14930:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
+            // InternalPerspectiveDsl.g:14844:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
+            // InternalPerspectiveDsl.g:14845:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_107);
+            pushFollow(FOLLOW_106);
             rule__XBasicForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -49258,23 +48991,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:14937:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:14852:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14941:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:14942:1: ( () )
+            // InternalPerspectiveDsl.g:14856:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:14857:1: ( () )
             {
-            // InternalPerspectiveDsl.g:14942:1: ( () )
-            // InternalPerspectiveDsl.g:14943:2: ()
+            // InternalPerspectiveDsl.g:14857:1: ( () )
+            // InternalPerspectiveDsl.g:14858:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:14944:2: ()
-            // InternalPerspectiveDsl.g:14944:3: 
+            // InternalPerspectiveDsl.g:14859:2: ()
+            // InternalPerspectiveDsl.g:14859:3: 
             {
             }
 
@@ -49299,16 +49032,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
-    // InternalPerspectiveDsl.g:14952:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:14867:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
     public final void rule__XBasicForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14956:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
-            // InternalPerspectiveDsl.g:14957:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
+            // InternalPerspectiveDsl.g:14871:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
+            // InternalPerspectiveDsl.g:14872:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XBasicForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -49337,22 +49070,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:14964:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
+    // InternalPerspectiveDsl.g:14879:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
     public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14968:1: ( ( 'for' ) )
-            // InternalPerspectiveDsl.g:14969:1: ( 'for' )
+            // InternalPerspectiveDsl.g:14883:1: ( ( 'for' ) )
+            // InternalPerspectiveDsl.g:14884:1: ( 'for' )
             {
-            // InternalPerspectiveDsl.g:14969:1: ( 'for' )
-            // InternalPerspectiveDsl.g:14970:2: 'for'
+            // InternalPerspectiveDsl.g:14884:1: ( 'for' )
+            // InternalPerspectiveDsl.g:14885:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
-            match(input,104,FOLLOW_2); if (state.failed) return ;
+            match(input,103,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
@@ -49378,16 +49111,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
-    // InternalPerspectiveDsl.g:14979:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:14894:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
     public final void rule__XBasicForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14983:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
-            // InternalPerspectiveDsl.g:14984:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
+            // InternalPerspectiveDsl.g:14898:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
+            // InternalPerspectiveDsl.g:14899:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_108);
+            pushFollow(FOLLOW_107);
             rule__XBasicForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -49416,22 +49149,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:14991:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:14906:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:14995:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:14996:1: ( '(' )
+            // InternalPerspectiveDsl.g:14910:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:14911:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:14996:1: ( '(' )
-            // InternalPerspectiveDsl.g:14997:2: '('
+            // InternalPerspectiveDsl.g:14911:1: ( '(' )
+            // InternalPerspectiveDsl.g:14912:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -49457,16 +49190,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
-    // InternalPerspectiveDsl.g:15006:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:14921:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
     public final void rule__XBasicForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15010:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
-            // InternalPerspectiveDsl.g:15011:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
+            // InternalPerspectiveDsl.g:14925:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
+            // InternalPerspectiveDsl.g:14926:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
             {
-            pushFollow(FOLLOW_108);
+            pushFollow(FOLLOW_107);
             rule__XBasicForLoopExpression__Group__3__Impl();
 
             state._fsp--;
@@ -49495,31 +49228,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:15018:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:14933:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15022:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:15023:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:14937:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:14938:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:15023:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:15024:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            // InternalPerspectiveDsl.g:14938:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:14939:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:15025:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            // InternalPerspectiveDsl.g:14940:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
             int alt104=2;
             int LA104_0 = input.LA(1);
 
-            if ( ((LA104_0>=RULE_ID && LA104_0<=RULE_DECIMAL)||LA104_0==27||(LA104_0>=34 && LA104_0<=35)||LA104_0==40||(LA104_0>=44 && LA104_0<=50)||LA104_0==54||LA104_0==90||(LA104_0>=94 && LA104_0<=95)||LA104_0==98||LA104_0==100||(LA104_0>=104 && LA104_0<=112)||LA104_0==114||(LA104_0>=124 && LA104_0<=125)) ) {
+            if ( ((LA104_0>=RULE_ID && LA104_0<=RULE_DECIMAL)||LA104_0==27||(LA104_0>=34 && LA104_0<=35)||LA104_0==40||(LA104_0>=44 && LA104_0<=50)||LA104_0==54||LA104_0==89||(LA104_0>=93 && LA104_0<=94)||LA104_0==97||LA104_0==99||(LA104_0>=103 && LA104_0<=111)||LA104_0==113||(LA104_0>=123 && LA104_0<=124)) ) {
                 alt104=1;
             }
             switch (alt104) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15025:3: rule__XBasicForLoopExpression__Group_3__0
+                    // InternalPerspectiveDsl.g:14940:3: rule__XBasicForLoopExpression__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_3__0();
@@ -49557,16 +49290,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
-    // InternalPerspectiveDsl.g:15033:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:14948:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
     public final void rule__XBasicForLoopExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15037:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
-            // InternalPerspectiveDsl.g:15038:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
+            // InternalPerspectiveDsl.g:14952:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
+            // InternalPerspectiveDsl.g:14953:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
             {
-            pushFollow(FOLLOW_109);
+            pushFollow(FOLLOW_108);
             rule__XBasicForLoopExpression__Group__4__Impl();
 
             state._fsp--;
@@ -49595,22 +49328,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:15045:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
+    // InternalPerspectiveDsl.g:14960:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15049:1: ( ( ';' ) )
-            // InternalPerspectiveDsl.g:15050:1: ( ';' )
+            // InternalPerspectiveDsl.g:14964:1: ( ( ';' ) )
+            // InternalPerspectiveDsl.g:14965:1: ( ';' )
             {
-            // InternalPerspectiveDsl.g:15050:1: ( ';' )
-            // InternalPerspectiveDsl.g:15051:2: ';'
+            // InternalPerspectiveDsl.g:14965:1: ( ';' )
+            // InternalPerspectiveDsl.g:14966:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
-            match(input,88,FOLLOW_2); if (state.failed) return ;
+            match(input,87,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
@@ -49636,16 +49369,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
-    // InternalPerspectiveDsl.g:15060:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:14975:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
     public final void rule__XBasicForLoopExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15064:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
-            // InternalPerspectiveDsl.g:15065:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
+            // InternalPerspectiveDsl.g:14979:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
+            // InternalPerspectiveDsl.g:14980:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
             {
-            pushFollow(FOLLOW_109);
+            pushFollow(FOLLOW_108);
             rule__XBasicForLoopExpression__Group__5__Impl();
 
             state._fsp--;
@@ -49674,31 +49407,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:15072:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
+    // InternalPerspectiveDsl.g:14987:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15076:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
-            // InternalPerspectiveDsl.g:15077:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalPerspectiveDsl.g:14991:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
+            // InternalPerspectiveDsl.g:14992:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
             {
-            // InternalPerspectiveDsl.g:15077:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
-            // InternalPerspectiveDsl.g:15078:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            // InternalPerspectiveDsl.g:14992:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalPerspectiveDsl.g:14993:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:15079:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            // InternalPerspectiveDsl.g:14994:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
             int alt105=2;
             int LA105_0 = input.LA(1);
 
-            if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_DECIMAL)||LA105_0==27||(LA105_0>=34 && LA105_0<=35)||LA105_0==40||(LA105_0>=45 && LA105_0<=50)||LA105_0==54||LA105_0==90||(LA105_0>=94 && LA105_0<=95)||LA105_0==98||LA105_0==100||(LA105_0>=104 && LA105_0<=112)||LA105_0==114||LA105_0==125) ) {
+            if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_DECIMAL)||LA105_0==27||(LA105_0>=34 && LA105_0<=35)||LA105_0==40||(LA105_0>=45 && LA105_0<=50)||LA105_0==54||LA105_0==89||(LA105_0>=93 && LA105_0<=94)||LA105_0==97||LA105_0==99||(LA105_0>=103 && LA105_0<=111)||LA105_0==113||LA105_0==124) ) {
                 alt105=1;
             }
             switch (alt105) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15079:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
+                    // InternalPerspectiveDsl.g:14994:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__ExpressionAssignment_5();
@@ -49736,16 +49469,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
-    // InternalPerspectiveDsl.g:15087:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
+    // InternalPerspectiveDsl.g:15002:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
     public final void rule__XBasicForLoopExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15091:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
-            // InternalPerspectiveDsl.g:15092:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
+            // InternalPerspectiveDsl.g:15006:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
+            // InternalPerspectiveDsl.g:15007:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
             {
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_49);
             rule__XBasicForLoopExpression__Group__6__Impl();
 
             state._fsp--;
@@ -49774,22 +49507,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:15099:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
+    // InternalPerspectiveDsl.g:15014:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15103:1: ( ( ';' ) )
-            // InternalPerspectiveDsl.g:15104:1: ( ';' )
+            // InternalPerspectiveDsl.g:15018:1: ( ( ';' ) )
+            // InternalPerspectiveDsl.g:15019:1: ( ';' )
             {
-            // InternalPerspectiveDsl.g:15104:1: ( ';' )
-            // InternalPerspectiveDsl.g:15105:2: ';'
+            // InternalPerspectiveDsl.g:15019:1: ( ';' )
+            // InternalPerspectiveDsl.g:15020:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
-            match(input,88,FOLLOW_2); if (state.failed) return ;
+            match(input,87,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
@@ -49815,16 +49548,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
-    // InternalPerspectiveDsl.g:15114:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
+    // InternalPerspectiveDsl.g:15029:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
     public final void rule__XBasicForLoopExpression__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15118:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
-            // InternalPerspectiveDsl.g:15119:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
+            // InternalPerspectiveDsl.g:15033:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
+            // InternalPerspectiveDsl.g:15034:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
             {
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_49);
             rule__XBasicForLoopExpression__Group__7__Impl();
 
             state._fsp--;
@@ -49853,31 +49586,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
-    // InternalPerspectiveDsl.g:15126:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
+    // InternalPerspectiveDsl.g:15041:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15130:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
-            // InternalPerspectiveDsl.g:15131:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalPerspectiveDsl.g:15045:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
+            // InternalPerspectiveDsl.g:15046:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
             {
-            // InternalPerspectiveDsl.g:15131:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
-            // InternalPerspectiveDsl.g:15132:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            // InternalPerspectiveDsl.g:15046:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalPerspectiveDsl.g:15047:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
             }
-            // InternalPerspectiveDsl.g:15133:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            // InternalPerspectiveDsl.g:15048:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
             int alt106=2;
             int LA106_0 = input.LA(1);
 
-            if ( ((LA106_0>=RULE_ID && LA106_0<=RULE_DECIMAL)||LA106_0==27||(LA106_0>=34 && LA106_0<=35)||LA106_0==40||(LA106_0>=45 && LA106_0<=50)||LA106_0==54||LA106_0==90||(LA106_0>=94 && LA106_0<=95)||LA106_0==98||LA106_0==100||(LA106_0>=104 && LA106_0<=112)||LA106_0==114||LA106_0==125) ) {
+            if ( ((LA106_0>=RULE_ID && LA106_0<=RULE_DECIMAL)||LA106_0==27||(LA106_0>=34 && LA106_0<=35)||LA106_0==40||(LA106_0>=45 && LA106_0<=50)||LA106_0==54||LA106_0==89||(LA106_0>=93 && LA106_0<=94)||LA106_0==97||LA106_0==99||(LA106_0>=103 && LA106_0<=111)||LA106_0==113||LA106_0==124) ) {
                 alt106=1;
             }
             switch (alt106) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15133:3: rule__XBasicForLoopExpression__Group_7__0
+                    // InternalPerspectiveDsl.g:15048:3: rule__XBasicForLoopExpression__Group_7__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_7__0();
@@ -49915,16 +49648,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
-    // InternalPerspectiveDsl.g:15141:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
+    // InternalPerspectiveDsl.g:15056:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
     public final void rule__XBasicForLoopExpression__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15145:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
-            // InternalPerspectiveDsl.g:15146:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
+            // InternalPerspectiveDsl.g:15060:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
+            // InternalPerspectiveDsl.g:15061:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XBasicForLoopExpression__Group__8__Impl();
 
             state._fsp--;
@@ -49953,22 +49686,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
-    // InternalPerspectiveDsl.g:15153:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:15068:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
     public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15157:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:15158:1: ( ')' )
+            // InternalPerspectiveDsl.g:15072:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:15073:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:15158:1: ( ')' )
-            // InternalPerspectiveDsl.g:15159:2: ')'
+            // InternalPerspectiveDsl.g:15073:1: ( ')' )
+            // InternalPerspectiveDsl.g:15074:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
@@ -49994,14 +49727,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
-    // InternalPerspectiveDsl.g:15168:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
+    // InternalPerspectiveDsl.g:15083:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
     public final void rule__XBasicForLoopExpression__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15172:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
-            // InternalPerspectiveDsl.g:15173:2: rule__XBasicForLoopExpression__Group__9__Impl
+            // InternalPerspectiveDsl.g:15087:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
+            // InternalPerspectiveDsl.g:15088:2: rule__XBasicForLoopExpression__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__9__Impl();
@@ -50027,23 +49760,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
-    // InternalPerspectiveDsl.g:15179:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
+    // InternalPerspectiveDsl.g:15094:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
     public final void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15183:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
-            // InternalPerspectiveDsl.g:15184:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalPerspectiveDsl.g:15098:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
+            // InternalPerspectiveDsl.g:15099:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
             {
-            // InternalPerspectiveDsl.g:15184:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
-            // InternalPerspectiveDsl.g:15185:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalPerspectiveDsl.g:15099:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalPerspectiveDsl.g:15100:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
             }
-            // InternalPerspectiveDsl.g:15186:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
-            // InternalPerspectiveDsl.g:15186:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
+            // InternalPerspectiveDsl.g:15101:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalPerspectiveDsl.g:15101:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__EachExpressionAssignment_9();
@@ -50078,16 +49811,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
-    // InternalPerspectiveDsl.g:15195:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
+    // InternalPerspectiveDsl.g:15110:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
     public final void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15199:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
-            // InternalPerspectiveDsl.g:15200:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
+            // InternalPerspectiveDsl.g:15114:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
+            // InternalPerspectiveDsl.g:15115:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XBasicForLoopExpression__Group_3__0__Impl();
 
             state._fsp--;
@@ -50116,23 +49849,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:15207:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:15122:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15211:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:15212:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:15126:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:15127:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:15212:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:15213:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:15127:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:15128:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:15214:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
-            // InternalPerspectiveDsl.g:15214:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+            // InternalPerspectiveDsl.g:15129:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalPerspectiveDsl.g:15129:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();
@@ -50167,14 +49900,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
-    // InternalPerspectiveDsl.g:15222:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:15137:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15226:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:15227:2: rule__XBasicForLoopExpression__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:15141:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:15142:2: rule__XBasicForLoopExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3__1__Impl();
@@ -50200,37 +49933,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:15233:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:15148:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15237:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
-            // InternalPerspectiveDsl.g:15238:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:15152:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
+            // InternalPerspectiveDsl.g:15153:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:15238:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
-            // InternalPerspectiveDsl.g:15239:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:15153:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalPerspectiveDsl.g:15154:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
             }
-            // InternalPerspectiveDsl.g:15240:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            // InternalPerspectiveDsl.g:15155:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
             loop107:
             do {
                 int alt107=2;
                 int LA107_0 = input.LA(1);
 
-                if ( (LA107_0==92) ) {
+                if ( (LA107_0==91) ) {
                     alt107=1;
                 }
 
 
                 switch (alt107) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:15240:3: rule__XBasicForLoopExpression__Group_3_1__0
+            	    // InternalPerspectiveDsl.g:15155:3: rule__XBasicForLoopExpression__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XBasicForLoopExpression__Group_3_1__0();
 
             	    state._fsp--;
@@ -50269,16 +50002,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
-    // InternalPerspectiveDsl.g:15249:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:15164:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15253:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:15254:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
+            // InternalPerspectiveDsl.g:15168:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:15169:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_110);
+            pushFollow(FOLLOW_109);
             rule__XBasicForLoopExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -50307,22 +50040,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:15261:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:15176:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15265:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:15266:1: ( ',' )
+            // InternalPerspectiveDsl.g:15180:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:15181:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:15266:1: ( ',' )
-            // InternalPerspectiveDsl.g:15267:2: ','
+            // InternalPerspectiveDsl.g:15181:1: ( ',' )
+            // InternalPerspectiveDsl.g:15182:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
@@ -50348,14 +50081,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
-    // InternalPerspectiveDsl.g:15276:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:15191:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15280:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:15281:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:15195:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:15196:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3_1__1__Impl();
@@ -50381,23 +50114,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:15287:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:15202:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15291:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:15292:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:15206:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:15207:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:15292:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:15293:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:15207:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:15208:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:15294:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:15294:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+            // InternalPerspectiveDsl.g:15209:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:15209:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();
@@ -50432,16 +50165,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
-    // InternalPerspectiveDsl.g:15303:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
+    // InternalPerspectiveDsl.g:15218:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
     public final void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15307:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
-            // InternalPerspectiveDsl.g:15308:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
+            // InternalPerspectiveDsl.g:15222:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
+            // InternalPerspectiveDsl.g:15223:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XBasicForLoopExpression__Group_7__0__Impl();
 
             state._fsp--;
@@ -50470,23 +50203,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
-    // InternalPerspectiveDsl.g:15315:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
+    // InternalPerspectiveDsl.g:15230:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15319:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
-            // InternalPerspectiveDsl.g:15320:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalPerspectiveDsl.g:15234:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
+            // InternalPerspectiveDsl.g:15235:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
             {
-            // InternalPerspectiveDsl.g:15320:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
-            // InternalPerspectiveDsl.g:15321:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalPerspectiveDsl.g:15235:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalPerspectiveDsl.g:15236:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
             }
-            // InternalPerspectiveDsl.g:15322:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
-            // InternalPerspectiveDsl.g:15322:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+            // InternalPerspectiveDsl.g:15237:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalPerspectiveDsl.g:15237:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();
@@ -50521,14 +50254,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
-    // InternalPerspectiveDsl.g:15330:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
+    // InternalPerspectiveDsl.g:15245:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15334:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
-            // InternalPerspectiveDsl.g:15335:2: rule__XBasicForLoopExpression__Group_7__1__Impl
+            // InternalPerspectiveDsl.g:15249:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
+            // InternalPerspectiveDsl.g:15250:2: rule__XBasicForLoopExpression__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7__1__Impl();
@@ -50554,37 +50287,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
-    // InternalPerspectiveDsl.g:15341:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:15256:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15345:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
-            // InternalPerspectiveDsl.g:15346:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalPerspectiveDsl.g:15260:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
+            // InternalPerspectiveDsl.g:15261:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:15346:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
-            // InternalPerspectiveDsl.g:15347:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            // InternalPerspectiveDsl.g:15261:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalPerspectiveDsl.g:15262:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
             }
-            // InternalPerspectiveDsl.g:15348:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            // InternalPerspectiveDsl.g:15263:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
             loop108:
             do {
                 int alt108=2;
                 int LA108_0 = input.LA(1);
 
-                if ( (LA108_0==92) ) {
+                if ( (LA108_0==91) ) {
                     alt108=1;
                 }
 
 
                 switch (alt108) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:15348:3: rule__XBasicForLoopExpression__Group_7_1__0
+            	    // InternalPerspectiveDsl.g:15263:3: rule__XBasicForLoopExpression__Group_7_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XBasicForLoopExpression__Group_7_1__0();
 
             	    state._fsp--;
@@ -50623,16 +50356,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
-    // InternalPerspectiveDsl.g:15357:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
+    // InternalPerspectiveDsl.g:15272:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15361:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
-            // InternalPerspectiveDsl.g:15362:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
+            // InternalPerspectiveDsl.g:15276:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
+            // InternalPerspectiveDsl.g:15277:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XBasicForLoopExpression__Group_7_1__0__Impl();
 
             state._fsp--;
@@ -50661,22 +50394,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
-    // InternalPerspectiveDsl.g:15369:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:15284:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15373:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:15374:1: ( ',' )
+            // InternalPerspectiveDsl.g:15288:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:15289:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:15374:1: ( ',' )
-            // InternalPerspectiveDsl.g:15375:2: ','
+            // InternalPerspectiveDsl.g:15289:1: ( ',' )
+            // InternalPerspectiveDsl.g:15290:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
@@ -50702,14 +50435,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
-    // InternalPerspectiveDsl.g:15384:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
+    // InternalPerspectiveDsl.g:15299:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15388:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
-            // InternalPerspectiveDsl.g:15389:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
+            // InternalPerspectiveDsl.g:15303:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
+            // InternalPerspectiveDsl.g:15304:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7_1__1__Impl();
@@ -50735,23 +50468,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
-    // InternalPerspectiveDsl.g:15395:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:15310:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15399:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
-            // InternalPerspectiveDsl.g:15400:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalPerspectiveDsl.g:15314:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
+            // InternalPerspectiveDsl.g:15315:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:15400:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
-            // InternalPerspectiveDsl.g:15401:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalPerspectiveDsl.g:15315:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalPerspectiveDsl.g:15316:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
             }
-            // InternalPerspectiveDsl.g:15402:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
-            // InternalPerspectiveDsl.g:15402:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+            // InternalPerspectiveDsl.g:15317:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalPerspectiveDsl.g:15317:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();
@@ -50786,16 +50519,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0"
-    // InternalPerspectiveDsl.g:15411:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:15326:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
     public final void rule__XWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15415:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
-            // InternalPerspectiveDsl.g:15416:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+            // InternalPerspectiveDsl.g:15330:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+            // InternalPerspectiveDsl.g:15331:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_110);
             rule__XWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -50824,23 +50557,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:15423:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:15338:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15427:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:15428:1: ( () )
+            // InternalPerspectiveDsl.g:15342:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:15343:1: ( () )
             {
-            // InternalPerspectiveDsl.g:15428:1: ( () )
-            // InternalPerspectiveDsl.g:15429:2: ()
+            // InternalPerspectiveDsl.g:15343:1: ( () )
+            // InternalPerspectiveDsl.g:15344:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:15430:2: ()
-            // InternalPerspectiveDsl.g:15430:3: 
+            // InternalPerspectiveDsl.g:15345:2: ()
+            // InternalPerspectiveDsl.g:15345:3: 
             {
             }
 
@@ -50865,16 +50598,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1"
-    // InternalPerspectiveDsl.g:15438:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:15353:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
     public final void rule__XWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15442:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
-            // InternalPerspectiveDsl.g:15443:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+            // InternalPerspectiveDsl.g:15357:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+            // InternalPerspectiveDsl.g:15358:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -50903,22 +50636,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:15450:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+    // InternalPerspectiveDsl.g:15365:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
     public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15454:1: ( ( 'while' ) )
-            // InternalPerspectiveDsl.g:15455:1: ( 'while' )
+            // InternalPerspectiveDsl.g:15369:1: ( ( 'while' ) )
+            // InternalPerspectiveDsl.g:15370:1: ( 'while' )
             {
-            // InternalPerspectiveDsl.g:15455:1: ( 'while' )
-            // InternalPerspectiveDsl.g:15456:2: 'while'
+            // InternalPerspectiveDsl.g:15370:1: ( 'while' )
+            // InternalPerspectiveDsl.g:15371:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
-            match(input,105,FOLLOW_2); if (state.failed) return ;
+            match(input,104,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
@@ -50944,16 +50677,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2"
-    // InternalPerspectiveDsl.g:15465:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:15380:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
     public final void rule__XWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15469:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
-            // InternalPerspectiveDsl.g:15470:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+            // InternalPerspectiveDsl.g:15384:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+            // InternalPerspectiveDsl.g:15385:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -50982,22 +50715,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:15477:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:15392:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15481:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:15482:1: ( '(' )
+            // InternalPerspectiveDsl.g:15396:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:15397:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:15482:1: ( '(' )
-            // InternalPerspectiveDsl.g:15483:2: '('
+            // InternalPerspectiveDsl.g:15397:1: ( '(' )
+            // InternalPerspectiveDsl.g:15398:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -51023,16 +50756,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3"
-    // InternalPerspectiveDsl.g:15492:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:15407:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
     public final void rule__XWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15496:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
-            // InternalPerspectiveDsl.g:15497:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+            // InternalPerspectiveDsl.g:15411:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+            // InternalPerspectiveDsl.g:15412:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -51061,23 +50794,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:15504:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:15419:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
     public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15508:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:15509:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalPerspectiveDsl.g:15423:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:15424:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:15509:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
-            // InternalPerspectiveDsl.g:15510:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalPerspectiveDsl.g:15424:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalPerspectiveDsl.g:15425:2: ( rule__XWhileExpression__PredicateAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:15511:2: ( rule__XWhileExpression__PredicateAssignment_3 )
-            // InternalPerspectiveDsl.g:15511:3: rule__XWhileExpression__PredicateAssignment_3
+            // InternalPerspectiveDsl.g:15426:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalPerspectiveDsl.g:15426:3: rule__XWhileExpression__PredicateAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__PredicateAssignment_3();
@@ -51112,16 +50845,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4"
-    // InternalPerspectiveDsl.g:15519:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:15434:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
     public final void rule__XWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15523:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
-            // InternalPerspectiveDsl.g:15524:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+            // InternalPerspectiveDsl.g:15438:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+            // InternalPerspectiveDsl.g:15439:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -51150,22 +50883,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:15531:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:15446:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15535:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:15536:1: ( ')' )
+            // InternalPerspectiveDsl.g:15450:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:15451:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:15536:1: ( ')' )
-            // InternalPerspectiveDsl.g:15537:2: ')'
+            // InternalPerspectiveDsl.g:15451:1: ( ')' )
+            // InternalPerspectiveDsl.g:15452:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -51191,14 +50924,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5"
-    // InternalPerspectiveDsl.g:15546:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+    // InternalPerspectiveDsl.g:15461:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
     public final void rule__XWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15550:1: ( rule__XWhileExpression__Group__5__Impl )
-            // InternalPerspectiveDsl.g:15551:2: rule__XWhileExpression__Group__5__Impl
+            // InternalPerspectiveDsl.g:15465:1: ( rule__XWhileExpression__Group__5__Impl )
+            // InternalPerspectiveDsl.g:15466:2: rule__XWhileExpression__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__5__Impl();
@@ -51224,23 +50957,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:15557:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:15472:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
     public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15561:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:15562:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalPerspectiveDsl.g:15476:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:15477:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:15562:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
-            // InternalPerspectiveDsl.g:15563:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalPerspectiveDsl.g:15477:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalPerspectiveDsl.g:15478:2: ( rule__XWhileExpression__BodyAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:15564:2: ( rule__XWhileExpression__BodyAssignment_5 )
-            // InternalPerspectiveDsl.g:15564:3: rule__XWhileExpression__BodyAssignment_5
+            // InternalPerspectiveDsl.g:15479:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalPerspectiveDsl.g:15479:3: rule__XWhileExpression__BodyAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__BodyAssignment_5();
@@ -51275,16 +51008,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0"
-    // InternalPerspectiveDsl.g:15573:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:15488:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
     public final void rule__XDoWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15577:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
-            // InternalPerspectiveDsl.g:15578:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+            // InternalPerspectiveDsl.g:15492:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+            // InternalPerspectiveDsl.g:15493:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_112);
+            pushFollow(FOLLOW_111);
             rule__XDoWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -51313,23 +51046,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:15585:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:15500:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15589:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:15590:1: ( () )
+            // InternalPerspectiveDsl.g:15504:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:15505:1: ( () )
             {
-            // InternalPerspectiveDsl.g:15590:1: ( () )
-            // InternalPerspectiveDsl.g:15591:2: ()
+            // InternalPerspectiveDsl.g:15505:1: ( () )
+            // InternalPerspectiveDsl.g:15506:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:15592:2: ()
-            // InternalPerspectiveDsl.g:15592:3: 
+            // InternalPerspectiveDsl.g:15507:2: ()
+            // InternalPerspectiveDsl.g:15507:3: 
             {
             }
 
@@ -51354,16 +51087,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1"
-    // InternalPerspectiveDsl.g:15600:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:15515:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
     public final void rule__XDoWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15604:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
-            // InternalPerspectiveDsl.g:15605:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+            // InternalPerspectiveDsl.g:15519:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+            // InternalPerspectiveDsl.g:15520:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XDoWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -51392,22 +51125,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:15612:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+    // InternalPerspectiveDsl.g:15527:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
     public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15616:1: ( ( 'do' ) )
-            // InternalPerspectiveDsl.g:15617:1: ( 'do' )
+            // InternalPerspectiveDsl.g:15531:1: ( ( 'do' ) )
+            // InternalPerspectiveDsl.g:15532:1: ( 'do' )
             {
-            // InternalPerspectiveDsl.g:15617:1: ( 'do' )
-            // InternalPerspectiveDsl.g:15618:2: 'do'
+            // InternalPerspectiveDsl.g:15532:1: ( 'do' )
+            // InternalPerspectiveDsl.g:15533:2: 'do'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
-            match(input,106,FOLLOW_2); if (state.failed) return ;
+            match(input,105,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
@@ -51433,16 +51166,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2"
-    // InternalPerspectiveDsl.g:15627:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:15542:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
     public final void rule__XDoWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15631:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
-            // InternalPerspectiveDsl.g:15632:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+            // InternalPerspectiveDsl.g:15546:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+            // InternalPerspectiveDsl.g:15547:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_110);
             rule__XDoWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -51471,23 +51204,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:15639:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:15554:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
     public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15643:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:15644:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalPerspectiveDsl.g:15558:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:15559:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:15644:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
-            // InternalPerspectiveDsl.g:15645:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalPerspectiveDsl.g:15559:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalPerspectiveDsl.g:15560:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:15646:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
-            // InternalPerspectiveDsl.g:15646:3: rule__XDoWhileExpression__BodyAssignment_2
+            // InternalPerspectiveDsl.g:15561:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalPerspectiveDsl.g:15561:3: rule__XDoWhileExpression__BodyAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__BodyAssignment_2();
@@ -51522,16 +51255,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3"
-    // InternalPerspectiveDsl.g:15654:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+    // InternalPerspectiveDsl.g:15569:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
     public final void rule__XDoWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15658:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
-            // InternalPerspectiveDsl.g:15659:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+            // InternalPerspectiveDsl.g:15573:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+            // InternalPerspectiveDsl.g:15574:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XDoWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -51560,22 +51293,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:15666:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+    // InternalPerspectiveDsl.g:15581:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
     public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15670:1: ( ( 'while' ) )
-            // InternalPerspectiveDsl.g:15671:1: ( 'while' )
+            // InternalPerspectiveDsl.g:15585:1: ( ( 'while' ) )
+            // InternalPerspectiveDsl.g:15586:1: ( 'while' )
             {
-            // InternalPerspectiveDsl.g:15671:1: ( 'while' )
-            // InternalPerspectiveDsl.g:15672:2: 'while'
+            // InternalPerspectiveDsl.g:15586:1: ( 'while' )
+            // InternalPerspectiveDsl.g:15587:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
-            match(input,105,FOLLOW_2); if (state.failed) return ;
+            match(input,104,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
@@ -51601,16 +51334,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4"
-    // InternalPerspectiveDsl.g:15681:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+    // InternalPerspectiveDsl.g:15596:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
     public final void rule__XDoWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15685:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
-            // InternalPerspectiveDsl.g:15686:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+            // InternalPerspectiveDsl.g:15600:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+            // InternalPerspectiveDsl.g:15601:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XDoWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -51639,22 +51372,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
-    // InternalPerspectiveDsl.g:15693:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:15608:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
     public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15697:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:15698:1: ( '(' )
+            // InternalPerspectiveDsl.g:15612:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:15613:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:15698:1: ( '(' )
-            // InternalPerspectiveDsl.g:15699:2: '('
+            // InternalPerspectiveDsl.g:15613:1: ( '(' )
+            // InternalPerspectiveDsl.g:15614:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
@@ -51680,16 +51413,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5"
-    // InternalPerspectiveDsl.g:15708:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+    // InternalPerspectiveDsl.g:15623:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
     public final void rule__XDoWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15712:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
-            // InternalPerspectiveDsl.g:15713:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+            // InternalPerspectiveDsl.g:15627:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+            // InternalPerspectiveDsl.g:15628:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XDoWhileExpression__Group__5__Impl();
 
             state._fsp--;
@@ -51718,23 +51451,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
-    // InternalPerspectiveDsl.g:15720:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:15635:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
     public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15724:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:15725:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalPerspectiveDsl.g:15639:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:15640:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:15725:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
-            // InternalPerspectiveDsl.g:15726:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalPerspectiveDsl.g:15640:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalPerspectiveDsl.g:15641:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:15727:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
-            // InternalPerspectiveDsl.g:15727:3: rule__XDoWhileExpression__PredicateAssignment_5
+            // InternalPerspectiveDsl.g:15642:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalPerspectiveDsl.g:15642:3: rule__XDoWhileExpression__PredicateAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__PredicateAssignment_5();
@@ -51769,14 +51502,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6"
-    // InternalPerspectiveDsl.g:15735:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:15650:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
     public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15739:1: ( rule__XDoWhileExpression__Group__6__Impl )
-            // InternalPerspectiveDsl.g:15740:2: rule__XDoWhileExpression__Group__6__Impl
+            // InternalPerspectiveDsl.g:15654:1: ( rule__XDoWhileExpression__Group__6__Impl )
+            // InternalPerspectiveDsl.g:15655:2: rule__XDoWhileExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__6__Impl();
@@ -51802,22 +51535,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
-    // InternalPerspectiveDsl.g:15746:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:15661:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
     public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15750:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:15751:1: ( ')' )
+            // InternalPerspectiveDsl.g:15665:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:15666:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:15751:1: ( ')' )
-            // InternalPerspectiveDsl.g:15752:2: ')'
+            // InternalPerspectiveDsl.g:15666:1: ( ')' )
+            // InternalPerspectiveDsl.g:15667:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
@@ -51843,14 +51576,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0"
-    // InternalPerspectiveDsl.g:15762:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:15677:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
     public final void rule__XBlockExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15766:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
-            // InternalPerspectiveDsl.g:15767:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+            // InternalPerspectiveDsl.g:15681:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+            // InternalPerspectiveDsl.g:15682:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
             {
             pushFollow(FOLLOW_8);
             rule__XBlockExpression__Group__0__Impl();
@@ -51881,23 +51614,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:15774:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:15689:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15778:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:15779:1: ( () )
+            // InternalPerspectiveDsl.g:15693:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:15694:1: ( () )
             {
-            // InternalPerspectiveDsl.g:15779:1: ( () )
-            // InternalPerspectiveDsl.g:15780:2: ()
+            // InternalPerspectiveDsl.g:15694:1: ( () )
+            // InternalPerspectiveDsl.g:15695:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:15781:2: ()
-            // InternalPerspectiveDsl.g:15781:3: 
+            // InternalPerspectiveDsl.g:15696:2: ()
+            // InternalPerspectiveDsl.g:15696:3: 
             {
             }
 
@@ -51922,16 +51655,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1"
-    // InternalPerspectiveDsl.g:15789:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:15704:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
     public final void rule__XBlockExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15793:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
-            // InternalPerspectiveDsl.g:15794:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+            // InternalPerspectiveDsl.g:15708:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+            // InternalPerspectiveDsl.g:15709:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_112);
             rule__XBlockExpression__Group__1__Impl();
 
             state._fsp--;
@@ -51960,17 +51693,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:15801:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:15716:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
     public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15805:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:15806:1: ( '{' )
+            // InternalPerspectiveDsl.g:15720:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:15721:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:15806:1: ( '{' )
-            // InternalPerspectiveDsl.g:15807:2: '{'
+            // InternalPerspectiveDsl.g:15721:1: ( '{' )
+            // InternalPerspectiveDsl.g:15722:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
@@ -52001,16 +51734,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2"
-    // InternalPerspectiveDsl.g:15816:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:15731:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
     public final void rule__XBlockExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15820:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
-            // InternalPerspectiveDsl.g:15821:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+            // InternalPerspectiveDsl.g:15735:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+            // InternalPerspectiveDsl.g:15736:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_112);
             rule__XBlockExpression__Group__2__Impl();
 
             state._fsp--;
@@ -52039,37 +51772,37 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:15828:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:15743:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
     public final void rule__XBlockExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15832:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
-            // InternalPerspectiveDsl.g:15833:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalPerspectiveDsl.g:15747:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+            // InternalPerspectiveDsl.g:15748:1: ( ( rule__XBlockExpression__Group_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:15833:1: ( ( rule__XBlockExpression__Group_2__0 )* )
-            // InternalPerspectiveDsl.g:15834:2: ( rule__XBlockExpression__Group_2__0 )*
+            // InternalPerspectiveDsl.g:15748:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalPerspectiveDsl.g:15749:2: ( rule__XBlockExpression__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
             }
-            // InternalPerspectiveDsl.g:15835:2: ( rule__XBlockExpression__Group_2__0 )*
+            // InternalPerspectiveDsl.g:15750:2: ( rule__XBlockExpression__Group_2__0 )*
             loop109:
             do {
                 int alt109=2;
                 int LA109_0 = input.LA(1);
 
-                if ( ((LA109_0>=RULE_ID && LA109_0<=RULE_DECIMAL)||LA109_0==27||(LA109_0>=34 && LA109_0<=35)||LA109_0==40||(LA109_0>=44 && LA109_0<=50)||LA109_0==54||LA109_0==90||(LA109_0>=94 && LA109_0<=95)||LA109_0==98||LA109_0==100||(LA109_0>=104 && LA109_0<=112)||LA109_0==114||(LA109_0>=124 && LA109_0<=125)) ) {
+                if ( ((LA109_0>=RULE_ID && LA109_0<=RULE_DECIMAL)||LA109_0==27||(LA109_0>=34 && LA109_0<=35)||LA109_0==40||(LA109_0>=44 && LA109_0<=50)||LA109_0==54||LA109_0==89||(LA109_0>=93 && LA109_0<=94)||LA109_0==97||LA109_0==99||(LA109_0>=103 && LA109_0<=111)||LA109_0==113||(LA109_0>=123 && LA109_0<=124)) ) {
                     alt109=1;
                 }
 
 
                 switch (alt109) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:15835:3: rule__XBlockExpression__Group_2__0
+            	    // InternalPerspectiveDsl.g:15750:3: rule__XBlockExpression__Group_2__0
             	    {
-            	    pushFollow(FOLLOW_97);
+            	    pushFollow(FOLLOW_96);
             	    rule__XBlockExpression__Group_2__0();
 
             	    state._fsp--;
@@ -52108,14 +51841,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3"
-    // InternalPerspectiveDsl.g:15843:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:15758:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
     public final void rule__XBlockExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15847:1: ( rule__XBlockExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:15848:2: rule__XBlockExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:15762:1: ( rule__XBlockExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:15763:2: rule__XBlockExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__3__Impl();
@@ -52141,17 +51874,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:15854:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:15769:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
     public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15858:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:15859:1: ( '}' )
+            // InternalPerspectiveDsl.g:15773:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:15774:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:15859:1: ( '}' )
-            // InternalPerspectiveDsl.g:15860:2: '}'
+            // InternalPerspectiveDsl.g:15774:1: ( '}' )
+            // InternalPerspectiveDsl.g:15775:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
@@ -52182,16 +51915,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0"
-    // InternalPerspectiveDsl.g:15870:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+    // InternalPerspectiveDsl.g:15785:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
     public final void rule__XBlockExpression__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15874:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
-            // InternalPerspectiveDsl.g:15875:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+            // InternalPerspectiveDsl.g:15789:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+            // InternalPerspectiveDsl.g:15790:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             rule__XBlockExpression__Group_2__0__Impl();
 
             state._fsp--;
@@ -52220,23 +51953,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
-    // InternalPerspectiveDsl.g:15882:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+    // InternalPerspectiveDsl.g:15797:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
     public final void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15886:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
-            // InternalPerspectiveDsl.g:15887:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalPerspectiveDsl.g:15801:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+            // InternalPerspectiveDsl.g:15802:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
             {
-            // InternalPerspectiveDsl.g:15887:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
-            // InternalPerspectiveDsl.g:15888:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalPerspectiveDsl.g:15802:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalPerspectiveDsl.g:15803:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
             }
-            // InternalPerspectiveDsl.g:15889:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
-            // InternalPerspectiveDsl.g:15889:3: rule__XBlockExpression__ExpressionsAssignment_2_0
+            // InternalPerspectiveDsl.g:15804:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalPerspectiveDsl.g:15804:3: rule__XBlockExpression__ExpressionsAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__ExpressionsAssignment_2_0();
@@ -52271,14 +52004,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1"
-    // InternalPerspectiveDsl.g:15897:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+    // InternalPerspectiveDsl.g:15812:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
     public final void rule__XBlockExpression__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15901:1: ( rule__XBlockExpression__Group_2__1__Impl )
-            // InternalPerspectiveDsl.g:15902:2: rule__XBlockExpression__Group_2__1__Impl
+            // InternalPerspectiveDsl.g:15816:1: ( rule__XBlockExpression__Group_2__1__Impl )
+            // InternalPerspectiveDsl.g:15817:2: rule__XBlockExpression__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group_2__1__Impl();
@@ -52304,33 +52037,33 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
-    // InternalPerspectiveDsl.g:15908:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+    // InternalPerspectiveDsl.g:15823:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
     public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15912:1: ( ( ( ';' )? ) )
-            // InternalPerspectiveDsl.g:15913:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:15827:1: ( ( ( ';' )? ) )
+            // InternalPerspectiveDsl.g:15828:1: ( ( ';' )? )
             {
-            // InternalPerspectiveDsl.g:15913:1: ( ( ';' )? )
-            // InternalPerspectiveDsl.g:15914:2: ( ';' )?
+            // InternalPerspectiveDsl.g:15828:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:15829:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
             }
-            // InternalPerspectiveDsl.g:15915:2: ( ';' )?
+            // InternalPerspectiveDsl.g:15830:2: ( ';' )?
             int alt110=2;
             int LA110_0 = input.LA(1);
 
-            if ( (LA110_0==88) ) {
+            if ( (LA110_0==87) ) {
                 alt110=1;
             }
             switch (alt110) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:15915:3: ';'
+                    // InternalPerspectiveDsl.g:15830:3: ';'
                     {
-                    match(input,88,FOLLOW_2); if (state.failed) return ;
+                    match(input,87,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -52362,16 +52095,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0"
-    // InternalPerspectiveDsl.g:15924:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+    // InternalPerspectiveDsl.g:15839:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
     public final void rule__XVariableDeclaration__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15928:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
-            // InternalPerspectiveDsl.g:15929:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+            // InternalPerspectiveDsl.g:15843:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+            // InternalPerspectiveDsl.g:15844:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_113);
             rule__XVariableDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -52400,23 +52133,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
-    // InternalPerspectiveDsl.g:15936:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:15851:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15940:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:15941:1: ( () )
+            // InternalPerspectiveDsl.g:15855:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:15856:1: ( () )
             {
-            // InternalPerspectiveDsl.g:15941:1: ( () )
-            // InternalPerspectiveDsl.g:15942:2: ()
+            // InternalPerspectiveDsl.g:15856:1: ( () )
+            // InternalPerspectiveDsl.g:15857:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:15943:2: ()
-            // InternalPerspectiveDsl.g:15943:3: 
+            // InternalPerspectiveDsl.g:15858:2: ()
+            // InternalPerspectiveDsl.g:15858:3: 
             {
             }
 
@@ -52441,16 +52174,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1"
-    // InternalPerspectiveDsl.g:15951:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+    // InternalPerspectiveDsl.g:15866:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
     public final void rule__XVariableDeclaration__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15955:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
-            // InternalPerspectiveDsl.g:15956:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+            // InternalPerspectiveDsl.g:15870:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+            // InternalPerspectiveDsl.g:15871:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XVariableDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -52479,23 +52212,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
-    // InternalPerspectiveDsl.g:15963:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+    // InternalPerspectiveDsl.g:15878:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
     public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15967:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
-            // InternalPerspectiveDsl.g:15968:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:15882:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+            // InternalPerspectiveDsl.g:15883:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
             {
-            // InternalPerspectiveDsl.g:15968:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
-            // InternalPerspectiveDsl.g:15969:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalPerspectiveDsl.g:15883:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:15884:2: ( rule__XVariableDeclaration__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:15970:2: ( rule__XVariableDeclaration__Alternatives_1 )
-            // InternalPerspectiveDsl.g:15970:3: rule__XVariableDeclaration__Alternatives_1
+            // InternalPerspectiveDsl.g:15885:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalPerspectiveDsl.g:15885:3: rule__XVariableDeclaration__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_1();
@@ -52530,16 +52263,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2"
-    // InternalPerspectiveDsl.g:15978:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+    // InternalPerspectiveDsl.g:15893:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
     public final void rule__XVariableDeclaration__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15982:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
-            // InternalPerspectiveDsl.g:15983:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+            // InternalPerspectiveDsl.g:15897:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+            // InternalPerspectiveDsl.g:15898:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_53);
             rule__XVariableDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -52568,23 +52301,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
-    // InternalPerspectiveDsl.g:15990:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+    // InternalPerspectiveDsl.g:15905:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
     public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:15994:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
-            // InternalPerspectiveDsl.g:15995:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:15909:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:15910:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:15995:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
-            // InternalPerspectiveDsl.g:15996:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:15910:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:15911:2: ( rule__XVariableDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:15997:2: ( rule__XVariableDeclaration__Alternatives_2 )
-            // InternalPerspectiveDsl.g:15997:3: rule__XVariableDeclaration__Alternatives_2
+            // InternalPerspectiveDsl.g:15912:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:15912:3: rule__XVariableDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_2();
@@ -52619,14 +52352,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3"
-    // InternalPerspectiveDsl.g:16005:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:15920:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
     public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16009:1: ( rule__XVariableDeclaration__Group__3__Impl )
-            // InternalPerspectiveDsl.g:16010:2: rule__XVariableDeclaration__Group__3__Impl
+            // InternalPerspectiveDsl.g:15924:1: ( rule__XVariableDeclaration__Group__3__Impl )
+            // InternalPerspectiveDsl.g:15925:2: rule__XVariableDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__3__Impl();
@@ -52652,22 +52385,22 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
-    // InternalPerspectiveDsl.g:16016:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:15931:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
     public final void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16020:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:16021:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:15935:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:15936:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:16021:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:16022:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            // InternalPerspectiveDsl.g:15936:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:15937:2: ( rule__XVariableDeclaration__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:16023:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            // InternalPerspectiveDsl.g:15938:2: ( rule__XVariableDeclaration__Group_3__0 )?
             int alt111=2;
             int LA111_0 = input.LA(1);
 
@@ -52676,7 +52409,7 @@
             }
             switch (alt111) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16023:3: rule__XVariableDeclaration__Group_3__0
+                    // InternalPerspectiveDsl.g:15938:3: rule__XVariableDeclaration__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_3__0();
@@ -52714,14 +52447,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
-    // InternalPerspectiveDsl.g:16032:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+    // InternalPerspectiveDsl.g:15947:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16036:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
-            // InternalPerspectiveDsl.g:16037:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+            // InternalPerspectiveDsl.g:15951:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+            // InternalPerspectiveDsl.g:15952:2: rule__XVariableDeclaration__Group_2_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0__0__Impl();
@@ -52747,23 +52480,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:16043:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:15958:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16047:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:16048:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:15962:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:15963:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:16048:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
-            // InternalPerspectiveDsl.g:16049:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:15963:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalPerspectiveDsl.g:15964:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:16050:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
-            // InternalPerspectiveDsl.g:16050:3: rule__XVariableDeclaration__Group_2_0_0__0
+            // InternalPerspectiveDsl.g:15965:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalPerspectiveDsl.g:15965:3: rule__XVariableDeclaration__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__0();
@@ -52798,14 +52531,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
-    // InternalPerspectiveDsl.g:16059:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
+    // InternalPerspectiveDsl.g:15974:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16063:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
-            // InternalPerspectiveDsl.g:16064:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+            // InternalPerspectiveDsl.g:15978:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+            // InternalPerspectiveDsl.g:15979:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
             {
             pushFollow(FOLLOW_7);
             rule__XVariableDeclaration__Group_2_0_0__0__Impl();
@@ -52836,23 +52569,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:16071:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:15986:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16075:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:16076:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalPerspectiveDsl.g:15990:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:15991:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:16076:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
-            // InternalPerspectiveDsl.g:16077:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalPerspectiveDsl.g:15991:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalPerspectiveDsl.g:15992:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:16078:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
-            // InternalPerspectiveDsl.g:16078:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+            // InternalPerspectiveDsl.g:15993:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalPerspectiveDsl.g:15993:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
@@ -52887,14 +52620,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
-    // InternalPerspectiveDsl.g:16086:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:16001:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16090:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:16091:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+            // InternalPerspectiveDsl.g:16005:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:16006:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__1__Impl();
@@ -52920,23 +52653,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:16097:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:16012:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16101:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:16102:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalPerspectiveDsl.g:16016:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:16017:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:16102:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
-            // InternalPerspectiveDsl.g:16103:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalPerspectiveDsl.g:16017:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalPerspectiveDsl.g:16018:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:16104:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
-            // InternalPerspectiveDsl.g:16104:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+            // InternalPerspectiveDsl.g:16019:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalPerspectiveDsl.g:16019:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__NameAssignment_2_0_0_1();
@@ -52971,16 +52704,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
-    // InternalPerspectiveDsl.g:16113:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+    // InternalPerspectiveDsl.g:16028:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
     public final void rule__XVariableDeclaration__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16117:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
-            // InternalPerspectiveDsl.g:16118:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+            // InternalPerspectiveDsl.g:16032:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+            // InternalPerspectiveDsl.g:16033:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XVariableDeclaration__Group_3__0__Impl();
 
             state._fsp--;
@@ -53009,17 +52742,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:16125:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:16040:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
     public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16129:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:16130:1: ( '=' )
+            // InternalPerspectiveDsl.g:16044:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:16045:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:16130:1: ( '=' )
-            // InternalPerspectiveDsl.g:16131:2: '='
+            // InternalPerspectiveDsl.g:16045:1: ( '=' )
+            // InternalPerspectiveDsl.g:16046:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
@@ -53050,14 +52783,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
-    // InternalPerspectiveDsl.g:16140:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+    // InternalPerspectiveDsl.g:16055:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
     public final void rule__XVariableDeclaration__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16144:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
-            // InternalPerspectiveDsl.g:16145:2: rule__XVariableDeclaration__Group_3__1__Impl
+            // InternalPerspectiveDsl.g:16059:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+            // InternalPerspectiveDsl.g:16060:2: rule__XVariableDeclaration__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_3__1__Impl();
@@ -53083,23 +52816,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:16151:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:16066:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16155:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
-            // InternalPerspectiveDsl.g:16156:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:16070:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+            // InternalPerspectiveDsl.g:16071:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:16156:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
-            // InternalPerspectiveDsl.g:16157:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalPerspectiveDsl.g:16071:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:16072:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:16158:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
-            // InternalPerspectiveDsl.g:16158:3: rule__XVariableDeclaration__RightAssignment_3_1
+            // InternalPerspectiveDsl.g:16073:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalPerspectiveDsl.g:16073:3: rule__XVariableDeclaration__RightAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__RightAssignment_3_1();
@@ -53134,16 +52867,16 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0"
-    // InternalPerspectiveDsl.g:16167:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+    // InternalPerspectiveDsl.g:16082:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
     public final void rule__JvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16171:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
-            // InternalPerspectiveDsl.g:16172:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+            // InternalPerspectiveDsl.g:16086:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+            // InternalPerspectiveDsl.g:16087:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__JvmFormalParameter__Group__0__Impl();
 
             state._fsp--;
@@ -53172,38 +52905,38 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16179:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+    // InternalPerspectiveDsl.g:16094:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
     public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16183:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
-            // InternalPerspectiveDsl.g:16184:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalPerspectiveDsl.g:16098:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+            // InternalPerspectiveDsl.g:16099:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
             {
-            // InternalPerspectiveDsl.g:16184:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
-            // InternalPerspectiveDsl.g:16185:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            // InternalPerspectiveDsl.g:16099:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalPerspectiveDsl.g:16100:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:16186:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            // InternalPerspectiveDsl.g:16101:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
             int alt112=2;
             int LA112_0 = input.LA(1);
 
             if ( (LA112_0==RULE_ID) ) {
                 int LA112_1 = input.LA(2);
 
-                if ( (LA112_1==RULE_ID||LA112_1==27||LA112_1==43||LA112_1==95) ) {
+                if ( (LA112_1==RULE_ID||LA112_1==27||LA112_1==43||LA112_1==94) ) {
                     alt112=1;
                 }
             }
-            else if ( (LA112_0==31||LA112_0==90) ) {
+            else if ( (LA112_0==31||LA112_0==89) ) {
                 alt112=1;
             }
             switch (alt112) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16186:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
+                    // InternalPerspectiveDsl.g:16101:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmFormalParameter__ParameterTypeAssignment_0();
@@ -53241,14 +52974,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1"
-    // InternalPerspectiveDsl.g:16194:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:16109:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
     public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16198:1: ( rule__JvmFormalParameter__Group__1__Impl )
-            // InternalPerspectiveDsl.g:16199:2: rule__JvmFormalParameter__Group__1__Impl
+            // InternalPerspectiveDsl.g:16113:1: ( rule__JvmFormalParameter__Group__1__Impl )
+            // InternalPerspectiveDsl.g:16114:2: rule__JvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__1__Impl();
@@ -53274,23 +53007,23 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16205:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:16120:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16209:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:16210:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:16124:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:16125:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:16210:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
-            // InternalPerspectiveDsl.g:16211:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:16125:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:16126:2: ( rule__JvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:16212:2: ( rule__JvmFormalParameter__NameAssignment_1 )
-            // InternalPerspectiveDsl.g:16212:3: rule__JvmFormalParameter__NameAssignment_1
+            // InternalPerspectiveDsl.g:16127:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:16127:3: rule__JvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__NameAssignment_1();
@@ -53325,14 +53058,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
-    // InternalPerspectiveDsl.g:16221:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+    // InternalPerspectiveDsl.g:16136:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
     public final void rule__FullJvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16225:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
-            // InternalPerspectiveDsl.g:16226:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+            // InternalPerspectiveDsl.g:16140:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+            // InternalPerspectiveDsl.g:16141:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__FullJvmFormalParameter__Group__0__Impl();
@@ -53363,23 +53096,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16233:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+    // InternalPerspectiveDsl.g:16148:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16237:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
-            // InternalPerspectiveDsl.g:16238:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:16152:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+            // InternalPerspectiveDsl.g:16153:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
             {
-            // InternalPerspectiveDsl.g:16238:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
-            // InternalPerspectiveDsl.g:16239:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalPerspectiveDsl.g:16153:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:16154:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:16240:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
-            // InternalPerspectiveDsl.g:16240:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+            // InternalPerspectiveDsl.g:16155:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalPerspectiveDsl.g:16155:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
@@ -53414,14 +53147,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
-    // InternalPerspectiveDsl.g:16248:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:16163:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
     public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16252:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
-            // InternalPerspectiveDsl.g:16253:2: rule__FullJvmFormalParameter__Group__1__Impl
+            // InternalPerspectiveDsl.g:16167:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+            // InternalPerspectiveDsl.g:16168:2: rule__FullJvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__1__Impl();
@@ -53447,23 +53180,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16259:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:16174:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16263:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:16264:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:16178:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:16179:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:16264:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
-            // InternalPerspectiveDsl.g:16265:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:16179:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:16180:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:16266:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
-            // InternalPerspectiveDsl.g:16266:3: rule__FullJvmFormalParameter__NameAssignment_1
+            // InternalPerspectiveDsl.g:16181:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:16181:3: rule__FullJvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__NameAssignment_1();
@@ -53498,16 +53231,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0"
-    // InternalPerspectiveDsl.g:16275:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+    // InternalPerspectiveDsl.g:16190:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
     public final void rule__XFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16279:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
-            // InternalPerspectiveDsl.g:16280:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+            // InternalPerspectiveDsl.g:16194:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+            // InternalPerspectiveDsl.g:16195:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_87);
             rule__XFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -53536,23 +53269,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16287:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:16202:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
     public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16291:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:16292:1: ( () )
+            // InternalPerspectiveDsl.g:16206:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:16207:1: ( () )
             {
-            // InternalPerspectiveDsl.g:16292:1: ( () )
-            // InternalPerspectiveDsl.g:16293:2: ()
+            // InternalPerspectiveDsl.g:16207:1: ( () )
+            // InternalPerspectiveDsl.g:16208:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
             }
-            // InternalPerspectiveDsl.g:16294:2: ()
-            // InternalPerspectiveDsl.g:16294:3: 
+            // InternalPerspectiveDsl.g:16209:2: ()
+            // InternalPerspectiveDsl.g:16209:3: 
             {
             }
 
@@ -53577,16 +53310,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1"
-    // InternalPerspectiveDsl.g:16302:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+    // InternalPerspectiveDsl.g:16217:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
     public final void rule__XFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16306:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
-            // InternalPerspectiveDsl.g:16307:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+            // InternalPerspectiveDsl.g:16221:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+            // InternalPerspectiveDsl.g:16222:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_87);
             rule__XFeatureCall__Group__1__Impl();
 
             state._fsp--;
@@ -53615,22 +53348,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16314:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:16229:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
     public final void rule__XFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16318:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:16319:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:16233:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:16234:1: ( ( rule__XFeatureCall__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:16319:1: ( ( rule__XFeatureCall__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:16320:2: ( rule__XFeatureCall__Group_1__0 )?
+            // InternalPerspectiveDsl.g:16234:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:16235:2: ( rule__XFeatureCall__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:16321:2: ( rule__XFeatureCall__Group_1__0 )?
+            // InternalPerspectiveDsl.g:16236:2: ( rule__XFeatureCall__Group_1__0 )?
             int alt113=2;
             int LA113_0 = input.LA(1);
 
@@ -53639,7 +53372,7 @@
             }
             switch (alt113) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16321:3: rule__XFeatureCall__Group_1__0
+                    // InternalPerspectiveDsl.g:16236:3: rule__XFeatureCall__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_1__0();
@@ -53677,16 +53410,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2"
-    // InternalPerspectiveDsl.g:16329:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+    // InternalPerspectiveDsl.g:16244:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
     public final void rule__XFeatureCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16333:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
-            // InternalPerspectiveDsl.g:16334:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+            // InternalPerspectiveDsl.g:16248:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+            // InternalPerspectiveDsl.g:16249:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
             {
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_88);
             rule__XFeatureCall__Group__2__Impl();
 
             state._fsp--;
@@ -53715,23 +53448,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
-    // InternalPerspectiveDsl.g:16341:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:16256:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
     public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16345:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:16346:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalPerspectiveDsl.g:16260:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:16261:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:16346:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
-            // InternalPerspectiveDsl.g:16347:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalPerspectiveDsl.g:16261:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalPerspectiveDsl.g:16262:2: ( rule__XFeatureCall__FeatureAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:16348:2: ( rule__XFeatureCall__FeatureAssignment_2 )
-            // InternalPerspectiveDsl.g:16348:3: rule__XFeatureCall__FeatureAssignment_2
+            // InternalPerspectiveDsl.g:16263:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalPerspectiveDsl.g:16263:3: rule__XFeatureCall__FeatureAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureAssignment_2();
@@ -53766,16 +53499,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3"
-    // InternalPerspectiveDsl.g:16356:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+    // InternalPerspectiveDsl.g:16271:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
     public final void rule__XFeatureCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16360:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
-            // InternalPerspectiveDsl.g:16361:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+            // InternalPerspectiveDsl.g:16275:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+            // InternalPerspectiveDsl.g:16276:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
             {
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_88);
             rule__XFeatureCall__Group__3__Impl();
 
             state._fsp--;
@@ -53804,27 +53537,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
-    // InternalPerspectiveDsl.g:16368:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:16283:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
     public final void rule__XFeatureCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16372:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:16373:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:16287:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:16288:1: ( ( rule__XFeatureCall__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:16373:1: ( ( rule__XFeatureCall__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:16374:2: ( rule__XFeatureCall__Group_3__0 )?
+            // InternalPerspectiveDsl.g:16288:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:16289:2: ( rule__XFeatureCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:16375:2: ( rule__XFeatureCall__Group_3__0 )?
+            // InternalPerspectiveDsl.g:16290:2: ( rule__XFeatureCall__Group_3__0 )?
             int alt114=2;
             alt114 = dfa114.predict(input);
             switch (alt114) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16375:3: rule__XFeatureCall__Group_3__0
+                    // InternalPerspectiveDsl.g:16290:3: rule__XFeatureCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3__0();
@@ -53862,14 +53595,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4"
-    // InternalPerspectiveDsl.g:16383:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:16298:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
     public final void rule__XFeatureCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16387:1: ( rule__XFeatureCall__Group__4__Impl )
-            // InternalPerspectiveDsl.g:16388:2: rule__XFeatureCall__Group__4__Impl
+            // InternalPerspectiveDsl.g:16302:1: ( rule__XFeatureCall__Group__4__Impl )
+            // InternalPerspectiveDsl.g:16303:2: rule__XFeatureCall__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__4__Impl();
@@ -53895,27 +53628,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
-    // InternalPerspectiveDsl.g:16394:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+    // InternalPerspectiveDsl.g:16309:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
     public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16398:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
-            // InternalPerspectiveDsl.g:16399:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalPerspectiveDsl.g:16313:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+            // InternalPerspectiveDsl.g:16314:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
             {
-            // InternalPerspectiveDsl.g:16399:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
-            // InternalPerspectiveDsl.g:16400:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            // InternalPerspectiveDsl.g:16314:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalPerspectiveDsl.g:16315:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:16401:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            // InternalPerspectiveDsl.g:16316:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
             int alt115=2;
             alt115 = dfa115.predict(input);
             switch (alt115) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16401:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+                    // InternalPerspectiveDsl.g:16316:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -53953,16 +53686,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0"
-    // InternalPerspectiveDsl.g:16410:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+    // InternalPerspectiveDsl.g:16325:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
     public final void rule__XFeatureCall__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16414:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
-            // InternalPerspectiveDsl.g:16415:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+            // InternalPerspectiveDsl.g:16329:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+            // InternalPerspectiveDsl.g:16330:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XFeatureCall__Group_1__0__Impl();
 
             state._fsp--;
@@ -53991,17 +53724,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:16422:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:16337:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
     public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16426:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:16427:1: ( '<' )
+            // InternalPerspectiveDsl.g:16341:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:16342:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:16427:1: ( '<' )
-            // InternalPerspectiveDsl.g:16428:2: '<'
+            // InternalPerspectiveDsl.g:16342:1: ( '<' )
+            // InternalPerspectiveDsl.g:16343:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
@@ -54032,16 +53765,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1"
-    // InternalPerspectiveDsl.g:16437:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+    // InternalPerspectiveDsl.g:16352:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
     public final void rule__XFeatureCall__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16441:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
-            // InternalPerspectiveDsl.g:16442:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+            // InternalPerspectiveDsl.g:16356:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+            // InternalPerspectiveDsl.g:16357:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XFeatureCall__Group_1__1__Impl();
 
             state._fsp--;
@@ -54070,23 +53803,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:16449:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:16364:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16453:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:16454:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:16368:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:16369:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:16454:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:16455:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:16369:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:16370:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:16456:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
-            // InternalPerspectiveDsl.g:16456:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+            // InternalPerspectiveDsl.g:16371:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:16371:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_1();
@@ -54121,16 +53854,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2"
-    // InternalPerspectiveDsl.g:16464:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+    // InternalPerspectiveDsl.g:16379:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
     public final void rule__XFeatureCall__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16468:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
-            // InternalPerspectiveDsl.g:16469:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+            // InternalPerspectiveDsl.g:16383:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+            // InternalPerspectiveDsl.g:16384:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XFeatureCall__Group_1__2__Impl();
 
             state._fsp--;
@@ -54159,37 +53892,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
-    // InternalPerspectiveDsl.g:16476:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:16391:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
     public final void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16480:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
-            // InternalPerspectiveDsl.g:16481:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:16395:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+            // InternalPerspectiveDsl.g:16396:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:16481:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
-            // InternalPerspectiveDsl.g:16482:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            // InternalPerspectiveDsl.g:16396:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:16397:2: ( rule__XFeatureCall__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
             }
-            // InternalPerspectiveDsl.g:16483:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            // InternalPerspectiveDsl.g:16398:2: ( rule__XFeatureCall__Group_1_2__0 )*
             loop116:
             do {
                 int alt116=2;
                 int LA116_0 = input.LA(1);
 
-                if ( (LA116_0==92) ) {
+                if ( (LA116_0==91) ) {
                     alt116=1;
                 }
 
 
                 switch (alt116) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:16483:3: rule__XFeatureCall__Group_1_2__0
+            	    // InternalPerspectiveDsl.g:16398:3: rule__XFeatureCall__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XFeatureCall__Group_1_2__0();
 
             	    state._fsp--;
@@ -54228,14 +53961,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3"
-    // InternalPerspectiveDsl.g:16491:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+    // InternalPerspectiveDsl.g:16406:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
     public final void rule__XFeatureCall__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16495:1: ( rule__XFeatureCall__Group_1__3__Impl )
-            // InternalPerspectiveDsl.g:16496:2: rule__XFeatureCall__Group_1__3__Impl
+            // InternalPerspectiveDsl.g:16410:1: ( rule__XFeatureCall__Group_1__3__Impl )
+            // InternalPerspectiveDsl.g:16411:2: rule__XFeatureCall__Group_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1__3__Impl();
@@ -54261,17 +53994,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
-    // InternalPerspectiveDsl.g:16502:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:16417:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
     public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16506:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:16507:1: ( '>' )
+            // InternalPerspectiveDsl.g:16421:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:16422:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:16507:1: ( '>' )
-            // InternalPerspectiveDsl.g:16508:2: '>'
+            // InternalPerspectiveDsl.g:16422:1: ( '>' )
+            // InternalPerspectiveDsl.g:16423:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
@@ -54302,16 +54035,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
-    // InternalPerspectiveDsl.g:16518:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+    // InternalPerspectiveDsl.g:16433:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
     public final void rule__XFeatureCall__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16522:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
-            // InternalPerspectiveDsl.g:16523:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+            // InternalPerspectiveDsl.g:16437:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+            // InternalPerspectiveDsl.g:16438:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XFeatureCall__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -54340,22 +54073,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
-    // InternalPerspectiveDsl.g:16530:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:16445:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16534:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:16535:1: ( ',' )
+            // InternalPerspectiveDsl.g:16449:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:16450:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:16535:1: ( ',' )
-            // InternalPerspectiveDsl.g:16536:2: ','
+            // InternalPerspectiveDsl.g:16450:1: ( ',' )
+            // InternalPerspectiveDsl.g:16451:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
@@ -54381,14 +54114,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
-    // InternalPerspectiveDsl.g:16545:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+    // InternalPerspectiveDsl.g:16460:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
     public final void rule__XFeatureCall__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16549:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
-            // InternalPerspectiveDsl.g:16550:2: rule__XFeatureCall__Group_1_2__1__Impl
+            // InternalPerspectiveDsl.g:16464:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+            // InternalPerspectiveDsl.g:16465:2: rule__XFeatureCall__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1_2__1__Impl();
@@ -54414,23 +54147,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
-    // InternalPerspectiveDsl.g:16556:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:16471:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16560:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
-            // InternalPerspectiveDsl.g:16561:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:16475:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+            // InternalPerspectiveDsl.g:16476:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:16561:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
-            // InternalPerspectiveDsl.g:16562:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:16476:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:16477:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
             }
-            // InternalPerspectiveDsl.g:16563:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
-            // InternalPerspectiveDsl.g:16563:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+            // InternalPerspectiveDsl.g:16478:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:16478:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
@@ -54465,16 +54198,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0"
-    // InternalPerspectiveDsl.g:16572:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+    // InternalPerspectiveDsl.g:16487:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
     public final void rule__XFeatureCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16576:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
-            // InternalPerspectiveDsl.g:16577:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+            // InternalPerspectiveDsl.g:16491:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+            // InternalPerspectiveDsl.g:16492:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XFeatureCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -54503,23 +54236,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:16584:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:16499:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
     public final void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16588:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
-            // InternalPerspectiveDsl.g:16589:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:16503:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+            // InternalPerspectiveDsl.g:16504:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:16589:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
-            // InternalPerspectiveDsl.g:16590:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalPerspectiveDsl.g:16504:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalPerspectiveDsl.g:16505:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
             }
-            // InternalPerspectiveDsl.g:16591:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
-            // InternalPerspectiveDsl.g:16591:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+            // InternalPerspectiveDsl.g:16506:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalPerspectiveDsl.g:16506:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
@@ -54554,16 +54287,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1"
-    // InternalPerspectiveDsl.g:16599:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+    // InternalPerspectiveDsl.g:16514:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
     public final void rule__XFeatureCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16603:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
-            // InternalPerspectiveDsl.g:16604:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+            // InternalPerspectiveDsl.g:16518:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+            // InternalPerspectiveDsl.g:16519:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XFeatureCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -54592,31 +54325,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:16611:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+    // InternalPerspectiveDsl.g:16526:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
     public final void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16615:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
-            // InternalPerspectiveDsl.g:16616:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:16530:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+            // InternalPerspectiveDsl.g:16531:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
             {
-            // InternalPerspectiveDsl.g:16616:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
-            // InternalPerspectiveDsl.g:16617:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:16531:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:16532:2: ( rule__XFeatureCall__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
             }
-            // InternalPerspectiveDsl.g:16618:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:16533:2: ( rule__XFeatureCall__Alternatives_3_1 )?
             int alt117=2;
             int LA117_0 = input.LA(1);
 
-            if ( ((LA117_0>=RULE_ID && LA117_0<=RULE_DECIMAL)||LA117_0==27||LA117_0==31||(LA117_0>=34 && LA117_0<=35)||LA117_0==40||(LA117_0>=45 && LA117_0<=50)||LA117_0==54||LA117_0==90||(LA117_0>=94 && LA117_0<=95)||LA117_0==98||LA117_0==100||(LA117_0>=104 && LA117_0<=112)||LA117_0==114||LA117_0==123||LA117_0==125) ) {
+            if ( ((LA117_0>=RULE_ID && LA117_0<=RULE_DECIMAL)||LA117_0==27||LA117_0==31||(LA117_0>=34 && LA117_0<=35)||LA117_0==40||(LA117_0>=45 && LA117_0<=50)||LA117_0==54||LA117_0==89||(LA117_0>=93 && LA117_0<=94)||LA117_0==97||LA117_0==99||(LA117_0>=103 && LA117_0<=111)||LA117_0==113||LA117_0==122||LA117_0==124) ) {
                 alt117=1;
             }
             switch (alt117) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16618:3: rule__XFeatureCall__Alternatives_3_1
+                    // InternalPerspectiveDsl.g:16533:3: rule__XFeatureCall__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Alternatives_3_1();
@@ -54654,14 +54387,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2"
-    // InternalPerspectiveDsl.g:16626:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+    // InternalPerspectiveDsl.g:16541:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
     public final void rule__XFeatureCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16630:1: ( rule__XFeatureCall__Group_3__2__Impl )
-            // InternalPerspectiveDsl.g:16631:2: rule__XFeatureCall__Group_3__2__Impl
+            // InternalPerspectiveDsl.g:16545:1: ( rule__XFeatureCall__Group_3__2__Impl )
+            // InternalPerspectiveDsl.g:16546:2: rule__XFeatureCall__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3__2__Impl();
@@ -54687,22 +54420,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:16637:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:16552:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16641:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:16642:1: ( ')' )
+            // InternalPerspectiveDsl.g:16556:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:16557:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:16642:1: ( ')' )
-            // InternalPerspectiveDsl.g:16643:2: ')'
+            // InternalPerspectiveDsl.g:16557:1: ( ')' )
+            // InternalPerspectiveDsl.g:16558:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -54728,16 +54461,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
-    // InternalPerspectiveDsl.g:16653:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
+    // InternalPerspectiveDsl.g:16568:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16657:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
-            // InternalPerspectiveDsl.g:16658:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+            // InternalPerspectiveDsl.g:16572:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+            // InternalPerspectiveDsl.g:16573:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XFeatureCall__Group_3_1_1__0__Impl();
 
             state._fsp--;
@@ -54766,23 +54499,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:16665:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:16580:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16669:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
-            // InternalPerspectiveDsl.g:16670:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:16584:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+            // InternalPerspectiveDsl.g:16585:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:16670:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
-            // InternalPerspectiveDsl.g:16671:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalPerspectiveDsl.g:16585:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalPerspectiveDsl.g:16586:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:16672:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
-            // InternalPerspectiveDsl.g:16672:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+            // InternalPerspectiveDsl.g:16587:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalPerspectiveDsl.g:16587:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
@@ -54817,14 +54550,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
-    // InternalPerspectiveDsl.g:16680:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:16595:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16684:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:16685:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+            // InternalPerspectiveDsl.g:16599:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:16600:2: rule__XFeatureCall__Group_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1__1__Impl();
@@ -54850,37 +54583,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:16691:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:16606:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
     public final void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16695:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:16696:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:16610:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:16611:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:16696:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:16697:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:16611:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:16612:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:16698:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:16613:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
             loop118:
             do {
                 int alt118=2;
                 int LA118_0 = input.LA(1);
 
-                if ( (LA118_0==92) ) {
+                if ( (LA118_0==91) ) {
                     alt118=1;
                 }
 
 
                 switch (alt118) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:16698:3: rule__XFeatureCall__Group_3_1_1_1__0
+            	    // InternalPerspectiveDsl.g:16613:3: rule__XFeatureCall__Group_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XFeatureCall__Group_3_1_1_1__0();
 
             	    state._fsp--;
@@ -54919,16 +54652,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
-    // InternalPerspectiveDsl.g:16707:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
+    // InternalPerspectiveDsl.g:16622:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16711:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
-            // InternalPerspectiveDsl.g:16712:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+            // InternalPerspectiveDsl.g:16626:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+            // InternalPerspectiveDsl.g:16627:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XFeatureCall__Group_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -54957,22 +54690,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:16719:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:16634:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16723:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:16724:1: ( ',' )
+            // InternalPerspectiveDsl.g:16638:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:16639:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:16724:1: ( ',' )
-            // InternalPerspectiveDsl.g:16725:2: ','
+            // InternalPerspectiveDsl.g:16639:1: ( ',' )
+            // InternalPerspectiveDsl.g:16640:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
@@ -54998,14 +54731,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
-    // InternalPerspectiveDsl.g:16734:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:16649:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16738:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:16739:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:16653:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:16654:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1_1__1__Impl();
@@ -55031,23 +54764,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:16745:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:16660:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16749:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:16750:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:16664:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:16665:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:16750:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:16751:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:16665:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:16666:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:16752:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
-            // InternalPerspectiveDsl.g:16752:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+            // InternalPerspectiveDsl.g:16667:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalPerspectiveDsl.g:16667:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
@@ -55082,16 +54815,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0"
-    // InternalPerspectiveDsl.g:16761:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+    // InternalPerspectiveDsl.g:16676:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
     public final void rule__XConstructorCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16765:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
-            // InternalPerspectiveDsl.g:16766:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+            // InternalPerspectiveDsl.g:16680:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+            // InternalPerspectiveDsl.g:16681:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
             {
-            pushFollow(FOLLOW_115);
+            pushFollow(FOLLOW_114);
             rule__XConstructorCall__Group__0__Impl();
 
             state._fsp--;
@@ -55120,23 +54853,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
-    // InternalPerspectiveDsl.g:16773:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:16688:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
     public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16777:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:16778:1: ( () )
+            // InternalPerspectiveDsl.g:16692:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:16693:1: ( () )
             {
-            // InternalPerspectiveDsl.g:16778:1: ( () )
-            // InternalPerspectiveDsl.g:16779:2: ()
+            // InternalPerspectiveDsl.g:16693:1: ( () )
+            // InternalPerspectiveDsl.g:16694:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
             }
-            // InternalPerspectiveDsl.g:16780:2: ()
-            // InternalPerspectiveDsl.g:16780:3: 
+            // InternalPerspectiveDsl.g:16695:2: ()
+            // InternalPerspectiveDsl.g:16695:3: 
             {
             }
 
@@ -55161,14 +54894,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1"
-    // InternalPerspectiveDsl.g:16788:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+    // InternalPerspectiveDsl.g:16703:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
     public final void rule__XConstructorCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16792:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
-            // InternalPerspectiveDsl.g:16793:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+            // InternalPerspectiveDsl.g:16707:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+            // InternalPerspectiveDsl.g:16708:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XConstructorCall__Group__1__Impl();
@@ -55199,22 +54932,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
-    // InternalPerspectiveDsl.g:16800:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+    // InternalPerspectiveDsl.g:16715:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
     public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16804:1: ( ( 'new' ) )
-            // InternalPerspectiveDsl.g:16805:1: ( 'new' )
+            // InternalPerspectiveDsl.g:16719:1: ( ( 'new' ) )
+            // InternalPerspectiveDsl.g:16720:1: ( 'new' )
             {
-            // InternalPerspectiveDsl.g:16805:1: ( 'new' )
-            // InternalPerspectiveDsl.g:16806:2: 'new'
+            // InternalPerspectiveDsl.g:16720:1: ( 'new' )
+            // InternalPerspectiveDsl.g:16721:2: 'new'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,106,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
@@ -55240,16 +54973,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2"
-    // InternalPerspectiveDsl.g:16815:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+    // InternalPerspectiveDsl.g:16730:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
     public final void rule__XConstructorCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16819:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
-            // InternalPerspectiveDsl.g:16820:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+            // InternalPerspectiveDsl.g:16734:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+            // InternalPerspectiveDsl.g:16735:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
             {
-            pushFollow(FOLLOW_116);
+            pushFollow(FOLLOW_115);
             rule__XConstructorCall__Group__2__Impl();
 
             state._fsp--;
@@ -55278,23 +55011,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
-    // InternalPerspectiveDsl.g:16827:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:16742:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
     public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16831:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:16832:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalPerspectiveDsl.g:16746:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:16747:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:16832:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
-            // InternalPerspectiveDsl.g:16833:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalPerspectiveDsl.g:16747:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalPerspectiveDsl.g:16748:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:16834:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
-            // InternalPerspectiveDsl.g:16834:3: rule__XConstructorCall__ConstructorAssignment_2
+            // InternalPerspectiveDsl.g:16749:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalPerspectiveDsl.g:16749:3: rule__XConstructorCall__ConstructorAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ConstructorAssignment_2();
@@ -55329,16 +55062,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3"
-    // InternalPerspectiveDsl.g:16842:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+    // InternalPerspectiveDsl.g:16757:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
     public final void rule__XConstructorCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16846:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
-            // InternalPerspectiveDsl.g:16847:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+            // InternalPerspectiveDsl.g:16761:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+            // InternalPerspectiveDsl.g:16762:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
             {
-            pushFollow(FOLLOW_116);
+            pushFollow(FOLLOW_115);
             rule__XConstructorCall__Group__3__Impl();
 
             state._fsp--;
@@ -55367,27 +55100,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
-    // InternalPerspectiveDsl.g:16854:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:16769:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
     public final void rule__XConstructorCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16858:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:16859:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:16773:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:16774:1: ( ( rule__XConstructorCall__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:16859:1: ( ( rule__XConstructorCall__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:16860:2: ( rule__XConstructorCall__Group_3__0 )?
+            // InternalPerspectiveDsl.g:16774:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:16775:2: ( rule__XConstructorCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:16861:2: ( rule__XConstructorCall__Group_3__0 )?
+            // InternalPerspectiveDsl.g:16776:2: ( rule__XConstructorCall__Group_3__0 )?
             int alt119=2;
             alt119 = dfa119.predict(input);
             switch (alt119) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16861:3: rule__XConstructorCall__Group_3__0
+                    // InternalPerspectiveDsl.g:16776:3: rule__XConstructorCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_3__0();
@@ -55425,16 +55158,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4"
-    // InternalPerspectiveDsl.g:16869:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+    // InternalPerspectiveDsl.g:16784:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
     public final void rule__XConstructorCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16873:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
-            // InternalPerspectiveDsl.g:16874:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+            // InternalPerspectiveDsl.g:16788:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+            // InternalPerspectiveDsl.g:16789:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
             {
-            pushFollow(FOLLOW_116);
+            pushFollow(FOLLOW_115);
             rule__XConstructorCall__Group__4__Impl();
 
             state._fsp--;
@@ -55463,27 +55196,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
-    // InternalPerspectiveDsl.g:16881:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+    // InternalPerspectiveDsl.g:16796:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
     public final void rule__XConstructorCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16885:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
-            // InternalPerspectiveDsl.g:16886:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:16800:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+            // InternalPerspectiveDsl.g:16801:1: ( ( rule__XConstructorCall__Group_4__0 )? )
             {
-            // InternalPerspectiveDsl.g:16886:1: ( ( rule__XConstructorCall__Group_4__0 )? )
-            // InternalPerspectiveDsl.g:16887:2: ( rule__XConstructorCall__Group_4__0 )?
+            // InternalPerspectiveDsl.g:16801:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalPerspectiveDsl.g:16802:2: ( rule__XConstructorCall__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
             }
-            // InternalPerspectiveDsl.g:16888:2: ( rule__XConstructorCall__Group_4__0 )?
+            // InternalPerspectiveDsl.g:16803:2: ( rule__XConstructorCall__Group_4__0 )?
             int alt120=2;
             alt120 = dfa120.predict(input);
             switch (alt120) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16888:3: rule__XConstructorCall__Group_4__0
+                    // InternalPerspectiveDsl.g:16803:3: rule__XConstructorCall__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4__0();
@@ -55521,14 +55254,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5"
-    // InternalPerspectiveDsl.g:16896:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+    // InternalPerspectiveDsl.g:16811:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
     public final void rule__XConstructorCall__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16900:1: ( rule__XConstructorCall__Group__5__Impl )
-            // InternalPerspectiveDsl.g:16901:2: rule__XConstructorCall__Group__5__Impl
+            // InternalPerspectiveDsl.g:16815:1: ( rule__XConstructorCall__Group__5__Impl )
+            // InternalPerspectiveDsl.g:16816:2: rule__XConstructorCall__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__5__Impl();
@@ -55554,27 +55287,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
-    // InternalPerspectiveDsl.g:16907:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+    // InternalPerspectiveDsl.g:16822:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
     public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16911:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
-            // InternalPerspectiveDsl.g:16912:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalPerspectiveDsl.g:16826:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+            // InternalPerspectiveDsl.g:16827:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
             {
-            // InternalPerspectiveDsl.g:16912:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
-            // InternalPerspectiveDsl.g:16913:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            // InternalPerspectiveDsl.g:16827:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalPerspectiveDsl.g:16828:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:16914:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            // InternalPerspectiveDsl.g:16829:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
             int alt121=2;
             alt121 = dfa121.predict(input);
             switch (alt121) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:16914:3: rule__XConstructorCall__ArgumentsAssignment_5
+                    // InternalPerspectiveDsl.g:16829:3: rule__XConstructorCall__ArgumentsAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_5();
@@ -55612,16 +55345,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0"
-    // InternalPerspectiveDsl.g:16923:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+    // InternalPerspectiveDsl.g:16838:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
     public final void rule__XConstructorCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16927:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
-            // InternalPerspectiveDsl.g:16928:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+            // InternalPerspectiveDsl.g:16842:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+            // InternalPerspectiveDsl.g:16843:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XConstructorCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -55650,23 +55383,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:16935:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+    // InternalPerspectiveDsl.g:16850:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
     public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16939:1: ( ( ( '<' ) ) )
-            // InternalPerspectiveDsl.g:16940:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:16854:1: ( ( ( '<' ) ) )
+            // InternalPerspectiveDsl.g:16855:1: ( ( '<' ) )
             {
-            // InternalPerspectiveDsl.g:16940:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:16941:2: ( '<' )
+            // InternalPerspectiveDsl.g:16855:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:16856:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
             }
-            // InternalPerspectiveDsl.g:16942:2: ( '<' )
-            // InternalPerspectiveDsl.g:16942:3: '<'
+            // InternalPerspectiveDsl.g:16857:2: ( '<' )
+            // InternalPerspectiveDsl.g:16857:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -55697,16 +55430,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1"
-    // InternalPerspectiveDsl.g:16950:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+    // InternalPerspectiveDsl.g:16865:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
     public final void rule__XConstructorCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16954:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
-            // InternalPerspectiveDsl.g:16955:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+            // InternalPerspectiveDsl.g:16869:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+            // InternalPerspectiveDsl.g:16870:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XConstructorCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -55735,23 +55468,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:16962:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:16877:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
     public final void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16966:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
-            // InternalPerspectiveDsl.g:16967:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:16881:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+            // InternalPerspectiveDsl.g:16882:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:16967:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
-            // InternalPerspectiveDsl.g:16968:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalPerspectiveDsl.g:16882:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalPerspectiveDsl.g:16883:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
             }
-            // InternalPerspectiveDsl.g:16969:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
-            // InternalPerspectiveDsl.g:16969:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+            // InternalPerspectiveDsl.g:16884:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalPerspectiveDsl.g:16884:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_1();
@@ -55786,16 +55519,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2"
-    // InternalPerspectiveDsl.g:16977:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+    // InternalPerspectiveDsl.g:16892:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
     public final void rule__XConstructorCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16981:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
-            // InternalPerspectiveDsl.g:16982:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+            // InternalPerspectiveDsl.g:16896:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+            // InternalPerspectiveDsl.g:16897:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XConstructorCall__Group_3__2__Impl();
 
             state._fsp--;
@@ -55824,37 +55557,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:16989:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:16904:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
     public final void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:16993:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
-            // InternalPerspectiveDsl.g:16994:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalPerspectiveDsl.g:16908:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+            // InternalPerspectiveDsl.g:16909:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:16994:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
-            // InternalPerspectiveDsl.g:16995:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            // InternalPerspectiveDsl.g:16909:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalPerspectiveDsl.g:16910:2: ( rule__XConstructorCall__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
             }
-            // InternalPerspectiveDsl.g:16996:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            // InternalPerspectiveDsl.g:16911:2: ( rule__XConstructorCall__Group_3_2__0 )*
             loop122:
             do {
                 int alt122=2;
                 int LA122_0 = input.LA(1);
 
-                if ( (LA122_0==92) ) {
+                if ( (LA122_0==91) ) {
                     alt122=1;
                 }
 
 
                 switch (alt122) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:16996:3: rule__XConstructorCall__Group_3_2__0
+            	    // InternalPerspectiveDsl.g:16911:3: rule__XConstructorCall__Group_3_2__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XConstructorCall__Group_3_2__0();
 
             	    state._fsp--;
@@ -55893,14 +55626,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3"
-    // InternalPerspectiveDsl.g:17004:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+    // InternalPerspectiveDsl.g:16919:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
     public final void rule__XConstructorCall__Group_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17008:1: ( rule__XConstructorCall__Group_3__3__Impl )
-            // InternalPerspectiveDsl.g:17009:2: rule__XConstructorCall__Group_3__3__Impl
+            // InternalPerspectiveDsl.g:16923:1: ( rule__XConstructorCall__Group_3__3__Impl )
+            // InternalPerspectiveDsl.g:16924:2: rule__XConstructorCall__Group_3__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3__3__Impl();
@@ -55926,17 +55659,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
-    // InternalPerspectiveDsl.g:17015:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:16930:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
     public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17019:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:17020:1: ( '>' )
+            // InternalPerspectiveDsl.g:16934:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:16935:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:17020:1: ( '>' )
-            // InternalPerspectiveDsl.g:17021:2: '>'
+            // InternalPerspectiveDsl.g:16935:1: ( '>' )
+            // InternalPerspectiveDsl.g:16936:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
@@ -55967,16 +55700,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
-    // InternalPerspectiveDsl.g:17031:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:16946:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
     public final void rule__XConstructorCall__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17035:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:17036:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+            // InternalPerspectiveDsl.g:16950:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:16951:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XConstructorCall__Group_3_2__0__Impl();
 
             state._fsp--;
@@ -56005,22 +55738,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:17043:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:16958:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17047:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:17048:1: ( ',' )
+            // InternalPerspectiveDsl.g:16962:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:16963:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:17048:1: ( ',' )
-            // InternalPerspectiveDsl.g:17049:2: ','
+            // InternalPerspectiveDsl.g:16963:1: ( ',' )
+            // InternalPerspectiveDsl.g:16964:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
@@ -56046,14 +55779,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
-    // InternalPerspectiveDsl.g:17058:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:16973:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
     public final void rule__XConstructorCall__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17062:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:17063:2: rule__XConstructorCall__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:16977:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:16978:2: rule__XConstructorCall__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3_2__1__Impl();
@@ -56079,23 +55812,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:17069:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:16984:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
     public final void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17073:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:17074:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:16988:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:16989:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:17074:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:17075:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:16989:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:16990:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:17076:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:17076:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+            // InternalPerspectiveDsl.g:16991:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:16991:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
@@ -56130,16 +55863,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0"
-    // InternalPerspectiveDsl.g:17085:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+    // InternalPerspectiveDsl.g:17000:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
     public final void rule__XConstructorCall__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17089:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
-            // InternalPerspectiveDsl.g:17090:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+            // InternalPerspectiveDsl.g:17004:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+            // InternalPerspectiveDsl.g:17005:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XConstructorCall__Group_4__0__Impl();
 
             state._fsp--;
@@ -56168,23 +55901,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
-    // InternalPerspectiveDsl.g:17097:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
+    // InternalPerspectiveDsl.g:17012:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
     public final void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17101:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
-            // InternalPerspectiveDsl.g:17102:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalPerspectiveDsl.g:17016:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
+            // InternalPerspectiveDsl.g:17017:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
             {
-            // InternalPerspectiveDsl.g:17102:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
-            // InternalPerspectiveDsl.g:17103:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalPerspectiveDsl.g:17017:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalPerspectiveDsl.g:17018:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
             }
-            // InternalPerspectiveDsl.g:17104:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
-            // InternalPerspectiveDsl.g:17104:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+            // InternalPerspectiveDsl.g:17019:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalPerspectiveDsl.g:17019:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();
@@ -56219,16 +55952,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1"
-    // InternalPerspectiveDsl.g:17112:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+    // InternalPerspectiveDsl.g:17027:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
     public final void rule__XConstructorCall__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17116:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
-            // InternalPerspectiveDsl.g:17117:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+            // InternalPerspectiveDsl.g:17031:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+            // InternalPerspectiveDsl.g:17032:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XConstructorCall__Group_4__1__Impl();
 
             state._fsp--;
@@ -56257,31 +55990,31 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
-    // InternalPerspectiveDsl.g:17124:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+    // InternalPerspectiveDsl.g:17039:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
     public final void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17128:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
-            // InternalPerspectiveDsl.g:17129:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalPerspectiveDsl.g:17043:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+            // InternalPerspectiveDsl.g:17044:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
             {
-            // InternalPerspectiveDsl.g:17129:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
-            // InternalPerspectiveDsl.g:17130:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            // InternalPerspectiveDsl.g:17044:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalPerspectiveDsl.g:17045:2: ( rule__XConstructorCall__Alternatives_4_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
             }
-            // InternalPerspectiveDsl.g:17131:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            // InternalPerspectiveDsl.g:17046:2: ( rule__XConstructorCall__Alternatives_4_1 )?
             int alt123=2;
             int LA123_0 = input.LA(1);
 
-            if ( ((LA123_0>=RULE_ID && LA123_0<=RULE_DECIMAL)||LA123_0==27||LA123_0==31||(LA123_0>=34 && LA123_0<=35)||LA123_0==40||(LA123_0>=45 && LA123_0<=50)||LA123_0==54||LA123_0==90||(LA123_0>=94 && LA123_0<=95)||LA123_0==98||LA123_0==100||(LA123_0>=104 && LA123_0<=112)||LA123_0==114||LA123_0==123||LA123_0==125) ) {
+            if ( ((LA123_0>=RULE_ID && LA123_0<=RULE_DECIMAL)||LA123_0==27||LA123_0==31||(LA123_0>=34 && LA123_0<=35)||LA123_0==40||(LA123_0>=45 && LA123_0<=50)||LA123_0==54||LA123_0==89||(LA123_0>=93 && LA123_0<=94)||LA123_0==97||LA123_0==99||(LA123_0>=103 && LA123_0<=111)||LA123_0==113||LA123_0==122||LA123_0==124) ) {
                 alt123=1;
             }
             switch (alt123) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17131:3: rule__XConstructorCall__Alternatives_4_1
+                    // InternalPerspectiveDsl.g:17046:3: rule__XConstructorCall__Alternatives_4_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Alternatives_4_1();
@@ -56319,14 +56052,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2"
-    // InternalPerspectiveDsl.g:17139:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+    // InternalPerspectiveDsl.g:17054:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
     public final void rule__XConstructorCall__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17143:1: ( rule__XConstructorCall__Group_4__2__Impl )
-            // InternalPerspectiveDsl.g:17144:2: rule__XConstructorCall__Group_4__2__Impl
+            // InternalPerspectiveDsl.g:17058:1: ( rule__XConstructorCall__Group_4__2__Impl )
+            // InternalPerspectiveDsl.g:17059:2: rule__XConstructorCall__Group_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4__2__Impl();
@@ -56352,22 +56085,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
-    // InternalPerspectiveDsl.g:17150:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:17065:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
     public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17154:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:17155:1: ( ')' )
+            // InternalPerspectiveDsl.g:17069:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:17070:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:17155:1: ( ')' )
-            // InternalPerspectiveDsl.g:17156:2: ')'
+            // InternalPerspectiveDsl.g:17070:1: ( ')' )
+            // InternalPerspectiveDsl.g:17071:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
@@ -56393,16 +56126,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
-    // InternalPerspectiveDsl.g:17166:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
+    // InternalPerspectiveDsl.g:17081:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17170:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
-            // InternalPerspectiveDsl.g:17171:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+            // InternalPerspectiveDsl.g:17085:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+            // InternalPerspectiveDsl.g:17086:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XConstructorCall__Group_4_1_1__0__Impl();
 
             state._fsp--;
@@ -56431,23 +56164,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:17178:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:17093:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17182:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
-            // InternalPerspectiveDsl.g:17183:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalPerspectiveDsl.g:17097:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+            // InternalPerspectiveDsl.g:17098:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:17183:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
-            // InternalPerspectiveDsl.g:17184:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalPerspectiveDsl.g:17098:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalPerspectiveDsl.g:17099:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:17185:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
-            // InternalPerspectiveDsl.g:17185:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+            // InternalPerspectiveDsl.g:17100:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalPerspectiveDsl.g:17100:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
@@ -56482,14 +56215,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
-    // InternalPerspectiveDsl.g:17193:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:17108:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17197:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:17198:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+            // InternalPerspectiveDsl.g:17112:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:17113:2: rule__XConstructorCall__Group_4_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1__1__Impl();
@@ -56515,37 +56248,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:17204:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:17119:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
     public final void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17208:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:17209:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:17123:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:17124:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:17209:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:17210:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:17124:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:17125:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:17211:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:17126:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
             loop124:
             do {
                 int alt124=2;
                 int LA124_0 = input.LA(1);
 
-                if ( (LA124_0==92) ) {
+                if ( (LA124_0==91) ) {
                     alt124=1;
                 }
 
 
                 switch (alt124) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:17211:3: rule__XConstructorCall__Group_4_1_1_1__0
+            	    // InternalPerspectiveDsl.g:17126:3: rule__XConstructorCall__Group_4_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XConstructorCall__Group_4_1_1_1__0();
 
             	    state._fsp--;
@@ -56584,16 +56317,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
-    // InternalPerspectiveDsl.g:17220:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
+    // InternalPerspectiveDsl.g:17135:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17224:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
-            // InternalPerspectiveDsl.g:17225:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+            // InternalPerspectiveDsl.g:17139:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+            // InternalPerspectiveDsl.g:17140:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XConstructorCall__Group_4_1_1_1__0__Impl();
 
             state._fsp--;
@@ -56622,22 +56355,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:17232:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:17147:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17236:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:17237:1: ( ',' )
+            // InternalPerspectiveDsl.g:17151:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:17152:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:17237:1: ( ',' )
-            // InternalPerspectiveDsl.g:17238:2: ','
+            // InternalPerspectiveDsl.g:17152:1: ( ',' )
+            // InternalPerspectiveDsl.g:17153:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
@@ -56663,14 +56396,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
-    // InternalPerspectiveDsl.g:17247:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:17162:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17251:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:17252:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:17166:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:17167:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1_1__1__Impl();
@@ -56696,23 +56429,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:17258:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:17173:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17262:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:17263:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:17177:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:17178:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:17263:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:17264:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalPerspectiveDsl.g:17178:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:17179:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:17265:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
-            // InternalPerspectiveDsl.g:17265:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+            // InternalPerspectiveDsl.g:17180:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalPerspectiveDsl.g:17180:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
@@ -56747,16 +56480,16 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0"
-    // InternalPerspectiveDsl.g:17274:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:17189:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
     public final void rule__XBooleanLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17278:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:17279:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+            // InternalPerspectiveDsl.g:17193:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:17194:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
             {
-            pushFollow(FOLLOW_117);
+            pushFollow(FOLLOW_116);
             rule__XBooleanLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -56785,23 +56518,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17286:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17201:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17290:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17291:1: ( () )
+            // InternalPerspectiveDsl.g:17205:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17206:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17291:1: ( () )
-            // InternalPerspectiveDsl.g:17292:2: ()
+            // InternalPerspectiveDsl.g:17206:1: ( () )
+            // InternalPerspectiveDsl.g:17207:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17293:2: ()
-            // InternalPerspectiveDsl.g:17293:3: 
+            // InternalPerspectiveDsl.g:17208:2: ()
+            // InternalPerspectiveDsl.g:17208:3: 
             {
             }
 
@@ -56826,14 +56559,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1"
-    // InternalPerspectiveDsl.g:17301:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:17216:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
     public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17305:1: ( rule__XBooleanLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:17306:2: rule__XBooleanLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:17220:1: ( rule__XBooleanLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:17221:2: rule__XBooleanLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__1__Impl();
@@ -56859,23 +56592,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17312:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+    // InternalPerspectiveDsl.g:17227:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
     public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17316:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
-            // InternalPerspectiveDsl.g:17317:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:17231:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+            // InternalPerspectiveDsl.g:17232:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
             {
-            // InternalPerspectiveDsl.g:17317:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
-            // InternalPerspectiveDsl.g:17318:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalPerspectiveDsl.g:17232:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalPerspectiveDsl.g:17233:2: ( rule__XBooleanLiteral__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
             }
-            // InternalPerspectiveDsl.g:17319:2: ( rule__XBooleanLiteral__Alternatives_1 )
-            // InternalPerspectiveDsl.g:17319:3: rule__XBooleanLiteral__Alternatives_1
+            // InternalPerspectiveDsl.g:17234:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalPerspectiveDsl.g:17234:3: rule__XBooleanLiteral__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Alternatives_1();
@@ -56910,16 +56643,16 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0"
-    // InternalPerspectiveDsl.g:17328:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:17243:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
     public final void rule__XNullLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17332:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:17333:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+            // InternalPerspectiveDsl.g:17247:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:17248:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
             {
-            pushFollow(FOLLOW_118);
+            pushFollow(FOLLOW_117);
             rule__XNullLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -56948,23 +56681,23 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17340:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17255:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17344:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17345:1: ( () )
+            // InternalPerspectiveDsl.g:17259:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17260:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17345:1: ( () )
-            // InternalPerspectiveDsl.g:17346:2: ()
+            // InternalPerspectiveDsl.g:17260:1: ( () )
+            // InternalPerspectiveDsl.g:17261:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17347:2: ()
-            // InternalPerspectiveDsl.g:17347:3: 
+            // InternalPerspectiveDsl.g:17262:2: ()
+            // InternalPerspectiveDsl.g:17262:3: 
             {
             }
 
@@ -56989,14 +56722,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1"
-    // InternalPerspectiveDsl.g:17355:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:17270:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
     public final void rule__XNullLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17359:1: ( rule__XNullLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:17360:2: rule__XNullLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:17274:1: ( rule__XNullLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:17275:2: rule__XNullLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__1__Impl();
@@ -57022,22 +56755,22 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17366:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+    // InternalPerspectiveDsl.g:17281:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
     public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17370:1: ( ( 'null' ) )
-            // InternalPerspectiveDsl.g:17371:1: ( 'null' )
+            // InternalPerspectiveDsl.g:17285:1: ( ( 'null' ) )
+            // InternalPerspectiveDsl.g:17286:1: ( 'null' )
             {
-            // InternalPerspectiveDsl.g:17371:1: ( 'null' )
-            // InternalPerspectiveDsl.g:17372:2: 'null'
+            // InternalPerspectiveDsl.g:17286:1: ( 'null' )
+            // InternalPerspectiveDsl.g:17287:2: 'null'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
-            match(input,108,FOLLOW_2); if (state.failed) return ;
+            match(input,107,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
@@ -57063,16 +56796,16 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0"
-    // InternalPerspectiveDsl.g:17382:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:17297:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
     public final void rule__XNumberLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17386:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:17387:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+            // InternalPerspectiveDsl.g:17301:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:17302:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
             {
-            pushFollow(FOLLOW_119);
+            pushFollow(FOLLOW_118);
             rule__XNumberLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -57101,23 +56834,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17394:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17309:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17398:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17399:1: ( () )
+            // InternalPerspectiveDsl.g:17313:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17314:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17399:1: ( () )
-            // InternalPerspectiveDsl.g:17400:2: ()
+            // InternalPerspectiveDsl.g:17314:1: ( () )
+            // InternalPerspectiveDsl.g:17315:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17401:2: ()
-            // InternalPerspectiveDsl.g:17401:3: 
+            // InternalPerspectiveDsl.g:17316:2: ()
+            // InternalPerspectiveDsl.g:17316:3: 
             {
             }
 
@@ -57142,14 +56875,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1"
-    // InternalPerspectiveDsl.g:17409:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:17324:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
     public final void rule__XNumberLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17413:1: ( rule__XNumberLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:17414:2: rule__XNumberLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:17328:1: ( rule__XNumberLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:17329:2: rule__XNumberLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__1__Impl();
@@ -57175,23 +56908,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17420:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:17335:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17424:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:17425:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17339:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:17340:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:17425:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
-            // InternalPerspectiveDsl.g:17426:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:17340:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17341:2: ( rule__XNumberLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:17427:2: ( rule__XNumberLiteral__ValueAssignment_1 )
-            // InternalPerspectiveDsl.g:17427:3: rule__XNumberLiteral__ValueAssignment_1
+            // InternalPerspectiveDsl.g:17342:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:17342:3: rule__XNumberLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__ValueAssignment_1();
@@ -57226,14 +56959,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0"
-    // InternalPerspectiveDsl.g:17436:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:17351:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
     public final void rule__XStringLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17440:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:17441:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+            // InternalPerspectiveDsl.g:17355:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:17356:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
             {
             pushFollow(FOLLOW_15);
             rule__XStringLiteral__Group__0__Impl();
@@ -57264,23 +56997,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17448:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17363:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17452:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17453:1: ( () )
+            // InternalPerspectiveDsl.g:17367:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17368:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17453:1: ( () )
-            // InternalPerspectiveDsl.g:17454:2: ()
+            // InternalPerspectiveDsl.g:17368:1: ( () )
+            // InternalPerspectiveDsl.g:17369:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17455:2: ()
-            // InternalPerspectiveDsl.g:17455:3: 
+            // InternalPerspectiveDsl.g:17370:2: ()
+            // InternalPerspectiveDsl.g:17370:3: 
             {
             }
 
@@ -57305,14 +57038,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1"
-    // InternalPerspectiveDsl.g:17463:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:17378:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
     public final void rule__XStringLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17467:1: ( rule__XStringLiteral__Group__1__Impl )
-            // InternalPerspectiveDsl.g:17468:2: rule__XStringLiteral__Group__1__Impl
+            // InternalPerspectiveDsl.g:17382:1: ( rule__XStringLiteral__Group__1__Impl )
+            // InternalPerspectiveDsl.g:17383:2: rule__XStringLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__1__Impl();
@@ -57338,23 +57071,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17474:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:17389:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17478:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:17479:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17393:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:17394:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:17479:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
-            // InternalPerspectiveDsl.g:17480:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:17394:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:17395:2: ( rule__XStringLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:17481:2: ( rule__XStringLiteral__ValueAssignment_1 )
-            // InternalPerspectiveDsl.g:17481:3: rule__XStringLiteral__ValueAssignment_1
+            // InternalPerspectiveDsl.g:17396:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:17396:3: rule__XStringLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__ValueAssignment_1();
@@ -57389,16 +57122,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0"
-    // InternalPerspectiveDsl.g:17490:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+    // InternalPerspectiveDsl.g:17405:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
     public final void rule__XTypeLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17494:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
-            // InternalPerspectiveDsl.g:17495:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+            // InternalPerspectiveDsl.g:17409:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+            // InternalPerspectiveDsl.g:17410:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
             {
-            pushFollow(FOLLOW_120);
+            pushFollow(FOLLOW_119);
             rule__XTypeLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -57427,23 +57160,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17502:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17417:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17506:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17507:1: ( () )
+            // InternalPerspectiveDsl.g:17421:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17422:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17507:1: ( () )
-            // InternalPerspectiveDsl.g:17508:2: ()
+            // InternalPerspectiveDsl.g:17422:1: ( () )
+            // InternalPerspectiveDsl.g:17423:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17509:2: ()
-            // InternalPerspectiveDsl.g:17509:3: 
+            // InternalPerspectiveDsl.g:17424:2: ()
+            // InternalPerspectiveDsl.g:17424:3: 
             {
             }
 
@@ -57468,16 +57201,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1"
-    // InternalPerspectiveDsl.g:17517:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+    // InternalPerspectiveDsl.g:17432:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
     public final void rule__XTypeLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17521:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
-            // InternalPerspectiveDsl.g:17522:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+            // InternalPerspectiveDsl.g:17436:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+            // InternalPerspectiveDsl.g:17437:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XTypeLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -57506,22 +57239,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17529:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+    // InternalPerspectiveDsl.g:17444:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
     public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17533:1: ( ( 'typeof' ) )
-            // InternalPerspectiveDsl.g:17534:1: ( 'typeof' )
+            // InternalPerspectiveDsl.g:17448:1: ( ( 'typeof' ) )
+            // InternalPerspectiveDsl.g:17449:1: ( 'typeof' )
             {
-            // InternalPerspectiveDsl.g:17534:1: ( 'typeof' )
-            // InternalPerspectiveDsl.g:17535:2: 'typeof'
+            // InternalPerspectiveDsl.g:17449:1: ( 'typeof' )
+            // InternalPerspectiveDsl.g:17450:2: 'typeof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
-            match(input,109,FOLLOW_2); if (state.failed) return ;
+            match(input,108,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
@@ -57547,14 +57280,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2"
-    // InternalPerspectiveDsl.g:17544:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+    // InternalPerspectiveDsl.g:17459:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
     public final void rule__XTypeLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17548:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
-            // InternalPerspectiveDsl.g:17549:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+            // InternalPerspectiveDsl.g:17463:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+            // InternalPerspectiveDsl.g:17464:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__XTypeLiteral__Group__2__Impl();
@@ -57585,22 +57318,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
-    // InternalPerspectiveDsl.g:17556:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:17471:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
     public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17560:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:17561:1: ( '(' )
+            // InternalPerspectiveDsl.g:17475:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:17476:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:17561:1: ( '(' )
-            // InternalPerspectiveDsl.g:17562:2: '('
+            // InternalPerspectiveDsl.g:17476:1: ( '(' )
+            // InternalPerspectiveDsl.g:17477:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -57626,16 +57359,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3"
-    // InternalPerspectiveDsl.g:17571:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+    // InternalPerspectiveDsl.g:17486:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
     public final void rule__XTypeLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17575:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
-            // InternalPerspectiveDsl.g:17576:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+            // InternalPerspectiveDsl.g:17490:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+            // InternalPerspectiveDsl.g:17491:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
             {
-            pushFollow(FOLLOW_121);
+            pushFollow(FOLLOW_120);
             rule__XTypeLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -57664,23 +57397,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
-    // InternalPerspectiveDsl.g:17583:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:17498:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
     public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17587:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:17588:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalPerspectiveDsl.g:17502:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:17503:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:17588:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
-            // InternalPerspectiveDsl.g:17589:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalPerspectiveDsl.g:17503:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalPerspectiveDsl.g:17504:2: ( rule__XTypeLiteral__TypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:17590:2: ( rule__XTypeLiteral__TypeAssignment_3 )
-            // InternalPerspectiveDsl.g:17590:3: rule__XTypeLiteral__TypeAssignment_3
+            // InternalPerspectiveDsl.g:17505:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalPerspectiveDsl.g:17505:3: rule__XTypeLiteral__TypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__TypeAssignment_3();
@@ -57715,16 +57448,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4"
-    // InternalPerspectiveDsl.g:17598:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+    // InternalPerspectiveDsl.g:17513:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
     public final void rule__XTypeLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17602:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
-            // InternalPerspectiveDsl.g:17603:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+            // InternalPerspectiveDsl.g:17517:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+            // InternalPerspectiveDsl.g:17518:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
             {
-            pushFollow(FOLLOW_121);
+            pushFollow(FOLLOW_120);
             rule__XTypeLiteral__Group__4__Impl();
 
             state._fsp--;
@@ -57753,37 +57486,37 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
-    // InternalPerspectiveDsl.g:17610:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+    // InternalPerspectiveDsl.g:17525:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
     public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17614:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
-            // InternalPerspectiveDsl.g:17615:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalPerspectiveDsl.g:17529:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+            // InternalPerspectiveDsl.g:17530:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
             {
-            // InternalPerspectiveDsl.g:17615:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
-            // InternalPerspectiveDsl.g:17616:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            // InternalPerspectiveDsl.g:17530:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalPerspectiveDsl.g:17531:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:17617:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            // InternalPerspectiveDsl.g:17532:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
             loop125:
             do {
                 int alt125=2;
                 int LA125_0 = input.LA(1);
 
-                if ( (LA125_0==95) ) {
+                if ( (LA125_0==94) ) {
                     alt125=1;
                 }
 
 
                 switch (alt125) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:17617:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+            	    // InternalPerspectiveDsl.g:17532:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
             	    {
-            	    pushFollow(FOLLOW_122);
+            	    pushFollow(FOLLOW_121);
             	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();
 
             	    state._fsp--;
@@ -57822,14 +57555,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5"
-    // InternalPerspectiveDsl.g:17625:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+    // InternalPerspectiveDsl.g:17540:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
     public final void rule__XTypeLiteral__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17629:1: ( rule__XTypeLiteral__Group__5__Impl )
-            // InternalPerspectiveDsl.g:17630:2: rule__XTypeLiteral__Group__5__Impl
+            // InternalPerspectiveDsl.g:17544:1: ( rule__XTypeLiteral__Group__5__Impl )
+            // InternalPerspectiveDsl.g:17545:2: rule__XTypeLiteral__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__5__Impl();
@@ -57855,22 +57588,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
-    // InternalPerspectiveDsl.g:17636:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:17551:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
     public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17640:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:17641:1: ( ')' )
+            // InternalPerspectiveDsl.g:17555:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:17556:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:17641:1: ( ')' )
-            // InternalPerspectiveDsl.g:17642:2: ')'
+            // InternalPerspectiveDsl.g:17556:1: ( ')' )
+            // InternalPerspectiveDsl.g:17557:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
@@ -57896,16 +57629,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0"
-    // InternalPerspectiveDsl.g:17652:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:17567:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
     public final void rule__XThrowExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17656:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
-            // InternalPerspectiveDsl.g:17657:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+            // InternalPerspectiveDsl.g:17571:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+            // InternalPerspectiveDsl.g:17572:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
             {
-            pushFollow(FOLLOW_123);
+            pushFollow(FOLLOW_122);
             rule__XThrowExpression__Group__0__Impl();
 
             state._fsp--;
@@ -57934,23 +57667,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17664:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17579:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
     public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17668:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17669:1: ( () )
+            // InternalPerspectiveDsl.g:17583:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17584:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17669:1: ( () )
-            // InternalPerspectiveDsl.g:17670:2: ()
+            // InternalPerspectiveDsl.g:17584:1: ( () )
+            // InternalPerspectiveDsl.g:17585:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17671:2: ()
-            // InternalPerspectiveDsl.g:17671:3: 
+            // InternalPerspectiveDsl.g:17586:2: ()
+            // InternalPerspectiveDsl.g:17586:3: 
             {
             }
 
@@ -57975,16 +57708,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1"
-    // InternalPerspectiveDsl.g:17679:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:17594:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
     public final void rule__XThrowExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17683:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
-            // InternalPerspectiveDsl.g:17684:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+            // InternalPerspectiveDsl.g:17598:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+            // InternalPerspectiveDsl.g:17599:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XThrowExpression__Group__1__Impl();
 
             state._fsp--;
@@ -58013,22 +57746,22 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17691:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+    // InternalPerspectiveDsl.g:17606:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
     public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17695:1: ( ( 'throw' ) )
-            // InternalPerspectiveDsl.g:17696:1: ( 'throw' )
+            // InternalPerspectiveDsl.g:17610:1: ( ( 'throw' ) )
+            // InternalPerspectiveDsl.g:17611:1: ( 'throw' )
             {
-            // InternalPerspectiveDsl.g:17696:1: ( 'throw' )
-            // InternalPerspectiveDsl.g:17697:2: 'throw'
+            // InternalPerspectiveDsl.g:17611:1: ( 'throw' )
+            // InternalPerspectiveDsl.g:17612:2: 'throw'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
-            match(input,110,FOLLOW_2); if (state.failed) return ;
+            match(input,109,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
@@ -58054,14 +57787,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2"
-    // InternalPerspectiveDsl.g:17706:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:17621:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
     public final void rule__XThrowExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17710:1: ( rule__XThrowExpression__Group__2__Impl )
-            // InternalPerspectiveDsl.g:17711:2: rule__XThrowExpression__Group__2__Impl
+            // InternalPerspectiveDsl.g:17625:1: ( rule__XThrowExpression__Group__2__Impl )
+            // InternalPerspectiveDsl.g:17626:2: rule__XThrowExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__2__Impl();
@@ -58087,23 +57820,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:17717:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:17632:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17721:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:17722:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17636:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:17637:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:17722:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
-            // InternalPerspectiveDsl.g:17723:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:17637:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17638:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:17724:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
-            // InternalPerspectiveDsl.g:17724:3: rule__XThrowExpression__ExpressionAssignment_2
+            // InternalPerspectiveDsl.g:17639:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:17639:3: rule__XThrowExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__ExpressionAssignment_2();
@@ -58138,16 +57871,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0"
-    // InternalPerspectiveDsl.g:17733:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:17648:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
     public final void rule__XReturnExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17737:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
-            // InternalPerspectiveDsl.g:17738:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+            // InternalPerspectiveDsl.g:17652:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+            // InternalPerspectiveDsl.g:17653:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
             {
-            pushFollow(FOLLOW_124);
+            pushFollow(FOLLOW_123);
             rule__XReturnExpression__Group__0__Impl();
 
             state._fsp--;
@@ -58176,23 +57909,23 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17745:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17660:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
     public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17749:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17750:1: ( () )
+            // InternalPerspectiveDsl.g:17664:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17665:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17750:1: ( () )
-            // InternalPerspectiveDsl.g:17751:2: ()
+            // InternalPerspectiveDsl.g:17665:1: ( () )
+            // InternalPerspectiveDsl.g:17666:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17752:2: ()
-            // InternalPerspectiveDsl.g:17752:3: 
+            // InternalPerspectiveDsl.g:17667:2: ()
+            // InternalPerspectiveDsl.g:17667:3: 
             {
             }
 
@@ -58217,16 +57950,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1"
-    // InternalPerspectiveDsl.g:17760:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:17675:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
     public final void rule__XReturnExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17764:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
-            // InternalPerspectiveDsl.g:17765:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+            // InternalPerspectiveDsl.g:17679:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+            // InternalPerspectiveDsl.g:17680:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XReturnExpression__Group__1__Impl();
 
             state._fsp--;
@@ -58255,22 +57988,22 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17772:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+    // InternalPerspectiveDsl.g:17687:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
     public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17776:1: ( ( 'return' ) )
-            // InternalPerspectiveDsl.g:17777:1: ( 'return' )
+            // InternalPerspectiveDsl.g:17691:1: ( ( 'return' ) )
+            // InternalPerspectiveDsl.g:17692:1: ( 'return' )
             {
-            // InternalPerspectiveDsl.g:17777:1: ( 'return' )
-            // InternalPerspectiveDsl.g:17778:2: 'return'
+            // InternalPerspectiveDsl.g:17692:1: ( 'return' )
+            // InternalPerspectiveDsl.g:17693:2: 'return'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
-            match(input,111,FOLLOW_2); if (state.failed) return ;
+            match(input,110,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
@@ -58296,14 +58029,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2"
-    // InternalPerspectiveDsl.g:17787:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:17702:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
     public final void rule__XReturnExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17791:1: ( rule__XReturnExpression__Group__2__Impl )
-            // InternalPerspectiveDsl.g:17792:2: rule__XReturnExpression__Group__2__Impl
+            // InternalPerspectiveDsl.g:17706:1: ( rule__XReturnExpression__Group__2__Impl )
+            // InternalPerspectiveDsl.g:17707:2: rule__XReturnExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__2__Impl();
@@ -58329,27 +58062,27 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:17798:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+    // InternalPerspectiveDsl.g:17713:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
     public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17802:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
-            // InternalPerspectiveDsl.g:17803:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalPerspectiveDsl.g:17717:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+            // InternalPerspectiveDsl.g:17718:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
             {
-            // InternalPerspectiveDsl.g:17803:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
-            // InternalPerspectiveDsl.g:17804:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            // InternalPerspectiveDsl.g:17718:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalPerspectiveDsl.g:17719:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:17805:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            // InternalPerspectiveDsl.g:17720:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
             int alt126=2;
             alt126 = dfa126.predict(input);
             switch (alt126) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17805:3: rule__XReturnExpression__ExpressionAssignment_2
+                    // InternalPerspectiveDsl.g:17720:3: rule__XReturnExpression__ExpressionAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XReturnExpression__ExpressionAssignment_2();
@@ -58387,16 +58120,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
-    // InternalPerspectiveDsl.g:17814:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:17729:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
     public final void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17818:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
-            // InternalPerspectiveDsl.g:17819:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+            // InternalPerspectiveDsl.g:17733:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+            // InternalPerspectiveDsl.g:17734:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
             {
-            pushFollow(FOLLOW_125);
+            pushFollow(FOLLOW_124);
             rule__XTryCatchFinallyExpression__Group__0__Impl();
 
             state._fsp--;
@@ -58425,23 +58158,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:17826:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:17741:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
     public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17830:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:17831:1: ( () )
+            // InternalPerspectiveDsl.g:17745:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:17746:1: ( () )
             {
-            // InternalPerspectiveDsl.g:17831:1: ( () )
-            // InternalPerspectiveDsl.g:17832:2: ()
+            // InternalPerspectiveDsl.g:17746:1: ( () )
+            // InternalPerspectiveDsl.g:17747:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:17833:2: ()
-            // InternalPerspectiveDsl.g:17833:3: 
+            // InternalPerspectiveDsl.g:17748:2: ()
+            // InternalPerspectiveDsl.g:17748:3: 
             {
             }
 
@@ -58466,16 +58199,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
-    // InternalPerspectiveDsl.g:17841:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:17756:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
     public final void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17845:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
-            // InternalPerspectiveDsl.g:17846:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+            // InternalPerspectiveDsl.g:17760:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+            // InternalPerspectiveDsl.g:17761:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XTryCatchFinallyExpression__Group__1__Impl();
 
             state._fsp--;
@@ -58504,22 +58237,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:17853:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+    // InternalPerspectiveDsl.g:17768:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
     public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17857:1: ( ( 'try' ) )
-            // InternalPerspectiveDsl.g:17858:1: ( 'try' )
+            // InternalPerspectiveDsl.g:17772:1: ( ( 'try' ) )
+            // InternalPerspectiveDsl.g:17773:1: ( 'try' )
             {
-            // InternalPerspectiveDsl.g:17858:1: ( 'try' )
-            // InternalPerspectiveDsl.g:17859:2: 'try'
+            // InternalPerspectiveDsl.g:17773:1: ( 'try' )
+            // InternalPerspectiveDsl.g:17774:2: 'try'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
-            match(input,112,FOLLOW_2); if (state.failed) return ;
+            match(input,111,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
@@ -58545,16 +58278,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
-    // InternalPerspectiveDsl.g:17868:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:17783:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
     public final void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17872:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
-            // InternalPerspectiveDsl.g:17873:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+            // InternalPerspectiveDsl.g:17787:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+            // InternalPerspectiveDsl.g:17788:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
             {
-            pushFollow(FOLLOW_126);
+            pushFollow(FOLLOW_125);
             rule__XTryCatchFinallyExpression__Group__2__Impl();
 
             state._fsp--;
@@ -58583,23 +58316,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:17880:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:17795:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17884:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:17885:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17799:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:17800:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:17885:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
-            // InternalPerspectiveDsl.g:17886:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:17800:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalPerspectiveDsl.g:17801:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:17887:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
-            // InternalPerspectiveDsl.g:17887:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+            // InternalPerspectiveDsl.g:17802:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalPerspectiveDsl.g:17802:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
@@ -58634,14 +58367,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
-    // InternalPerspectiveDsl.g:17895:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:17810:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17899:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:17900:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:17814:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:17815:2: rule__XTryCatchFinallyExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__3__Impl();
@@ -58667,23 +58400,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:17906:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+    // InternalPerspectiveDsl.g:17821:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17910:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
-            // InternalPerspectiveDsl.g:17911:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:17825:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+            // InternalPerspectiveDsl.g:17826:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
             {
-            // InternalPerspectiveDsl.g:17911:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
-            // InternalPerspectiveDsl.g:17912:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalPerspectiveDsl.g:17826:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalPerspectiveDsl.g:17827:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
             }
-            // InternalPerspectiveDsl.g:17913:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
-            // InternalPerspectiveDsl.g:17913:3: rule__XTryCatchFinallyExpression__Alternatives_3
+            // InternalPerspectiveDsl.g:17828:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalPerspectiveDsl.g:17828:3: rule__XTryCatchFinallyExpression__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Alternatives_3();
@@ -58718,16 +58451,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
-    // InternalPerspectiveDsl.g:17922:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:17837:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17926:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:17927:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+            // InternalPerspectiveDsl.g:17841:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:17842:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
             {
-            pushFollow(FOLLOW_127);
+            pushFollow(FOLLOW_126);
             rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -58756,28 +58489,28 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:17934:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+    // InternalPerspectiveDsl.g:17849:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17938:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
-            // InternalPerspectiveDsl.g:17939:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalPerspectiveDsl.g:17853:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+            // InternalPerspectiveDsl.g:17854:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
             {
-            // InternalPerspectiveDsl.g:17939:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
-            // InternalPerspectiveDsl.g:17940:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalPerspectiveDsl.g:17854:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalPerspectiveDsl.g:17855:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
             {
-            // InternalPerspectiveDsl.g:17940:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
-            // InternalPerspectiveDsl.g:17941:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalPerspectiveDsl.g:17855:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+            // InternalPerspectiveDsl.g:17856:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:17942:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-            // InternalPerspectiveDsl.g:17942:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            // InternalPerspectiveDsl.g:17857:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalPerspectiveDsl.g:17857:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             {
-            pushFollow(FOLLOW_128);
+            pushFollow(FOLLOW_127);
             rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             state._fsp--;
@@ -58791,22 +58524,22 @@
 
             }
 
-            // InternalPerspectiveDsl.g:17945:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
-            // InternalPerspectiveDsl.g:17946:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            // InternalPerspectiveDsl.g:17860:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalPerspectiveDsl.g:17861:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:17947:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            // InternalPerspectiveDsl.g:17862:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
             loop127:
             do {
                 int alt127=2;
                 int LA127_0 = input.LA(1);
 
-                if ( (LA127_0==115) ) {
+                if ( (LA127_0==114) ) {
                     int LA127_2 = input.LA(2);
 
-                    if ( (synpred184_InternalPerspectiveDsl()) ) {
+                    if ( (synpred183_InternalPerspectiveDsl()) ) {
                         alt127=1;
                     }
 
@@ -58816,9 +58549,9 @@
 
                 switch (alt127) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:17947:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            	    // InternalPerspectiveDsl.g:17862:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             	    {
-            	    pushFollow(FOLLOW_128);
+            	    pushFollow(FOLLOW_127);
             	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             	    state._fsp--;
@@ -58860,14 +58593,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
-    // InternalPerspectiveDsl.g:17956:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:17871:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17960:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:17961:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:17875:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:17876:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
@@ -58893,35 +58626,35 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:17967:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:17882:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17971:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:17972:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalPerspectiveDsl.g:17886:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:17887:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:17972:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
-            // InternalPerspectiveDsl.g:17973:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            // InternalPerspectiveDsl.g:17887:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalPerspectiveDsl.g:17888:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:17974:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            // InternalPerspectiveDsl.g:17889:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
             int alt128=2;
             int LA128_0 = input.LA(1);
 
-            if ( (LA128_0==113) ) {
+            if ( (LA128_0==112) ) {
                 int LA128_1 = input.LA(2);
 
-                if ( (synpred185_InternalPerspectiveDsl()) ) {
+                if ( (synpred184_InternalPerspectiveDsl()) ) {
                     alt128=1;
                 }
             }
             switch (alt128) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:17974:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+                    // InternalPerspectiveDsl.g:17889:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -58959,16 +58692,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
-    // InternalPerspectiveDsl.g:17983:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
+    // InternalPerspectiveDsl.g:17898:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17987:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
-            // InternalPerspectiveDsl.g:17988:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+            // InternalPerspectiveDsl.g:17902:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+            // InternalPerspectiveDsl.g:17903:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
 
             state._fsp--;
@@ -58997,25 +58730,25 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:17995:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+    // InternalPerspectiveDsl.g:17910:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:17999:1: ( ( ( 'finally' ) ) )
-            // InternalPerspectiveDsl.g:18000:1: ( ( 'finally' ) )
+            // InternalPerspectiveDsl.g:17914:1: ( ( ( 'finally' ) ) )
+            // InternalPerspectiveDsl.g:17915:1: ( ( 'finally' ) )
             {
-            // InternalPerspectiveDsl.g:18000:1: ( ( 'finally' ) )
-            // InternalPerspectiveDsl.g:18001:2: ( 'finally' )
+            // InternalPerspectiveDsl.g:17915:1: ( ( 'finally' ) )
+            // InternalPerspectiveDsl.g:17916:2: ( 'finally' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:18002:2: ( 'finally' )
-            // InternalPerspectiveDsl.g:18002:3: 'finally'
+            // InternalPerspectiveDsl.g:17917:2: ( 'finally' )
+            // InternalPerspectiveDsl.g:17917:3: 'finally'
             {
-            match(input,113,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -59044,14 +58777,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
-    // InternalPerspectiveDsl.g:18010:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:17925:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18014:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:18015:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+            // InternalPerspectiveDsl.g:17929:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:17930:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
@@ -59077,23 +58810,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:18021:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:17936:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18025:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
-            // InternalPerspectiveDsl.g:18026:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalPerspectiveDsl.g:17940:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:17941:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:18026:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
-            // InternalPerspectiveDsl.g:18027:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalPerspectiveDsl.g:17941:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalPerspectiveDsl.g:17942:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:18028:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
-            // InternalPerspectiveDsl.g:18028:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+            // InternalPerspectiveDsl.g:17943:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalPerspectiveDsl.g:17943:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
@@ -59128,16 +58861,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
-    // InternalPerspectiveDsl.g:18037:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:17952:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18041:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:18042:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+            // InternalPerspectiveDsl.g:17956:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:17957:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -59166,22 +58899,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:18049:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+    // InternalPerspectiveDsl.g:17964:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18053:1: ( ( 'finally' ) )
-            // InternalPerspectiveDsl.g:18054:1: ( 'finally' )
+            // InternalPerspectiveDsl.g:17968:1: ( ( 'finally' ) )
+            // InternalPerspectiveDsl.g:17969:1: ( 'finally' )
             {
-            // InternalPerspectiveDsl.g:18054:1: ( 'finally' )
-            // InternalPerspectiveDsl.g:18055:2: 'finally'
+            // InternalPerspectiveDsl.g:17969:1: ( 'finally' )
+            // InternalPerspectiveDsl.g:17970:2: 'finally'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
-            match(input,113,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
@@ -59207,14 +58940,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
-    // InternalPerspectiveDsl.g:18064:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:17979:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18068:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:18069:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:17983:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:17984:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
@@ -59240,23 +58973,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:18075:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:17990:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18079:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:18080:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:17994:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:17995:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:18080:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:18081:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:17995:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:17996:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:18082:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:18082:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+            // InternalPerspectiveDsl.g:17997:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:17997:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
@@ -59291,16 +59024,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0"
-    // InternalPerspectiveDsl.g:18091:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:18006:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
     public final void rule__XSynchronizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18095:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
-            // InternalPerspectiveDsl.g:18096:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
+            // InternalPerspectiveDsl.g:18010:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
+            // InternalPerspectiveDsl.g:18011:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XSynchronizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -59329,23 +59062,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18103:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:18018:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18107:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:18108:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:18022:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:18023:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:18108:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:18109:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:18023:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:18024:2: ( rule__XSynchronizedExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:18110:2: ( rule__XSynchronizedExpression__Group_0__0 )
-            // InternalPerspectiveDsl.g:18110:3: rule__XSynchronizedExpression__Group_0__0
+            // InternalPerspectiveDsl.g:18025:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalPerspectiveDsl.g:18025:3: rule__XSynchronizedExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0();
@@ -59380,16 +59113,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1"
-    // InternalPerspectiveDsl.g:18118:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
+    // InternalPerspectiveDsl.g:18033:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
     public final void rule__XSynchronizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18122:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
-            // InternalPerspectiveDsl.g:18123:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
+            // InternalPerspectiveDsl.g:18037:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
+            // InternalPerspectiveDsl.g:18038:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XSynchronizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -59418,23 +59151,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18130:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:18045:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
     public final void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18134:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:18135:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18049:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:18050:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:18135:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
-            // InternalPerspectiveDsl.g:18136:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalPerspectiveDsl.g:18050:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalPerspectiveDsl.g:18051:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:18137:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
-            // InternalPerspectiveDsl.g:18137:3: rule__XSynchronizedExpression__ParamAssignment_1
+            // InternalPerspectiveDsl.g:18052:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalPerspectiveDsl.g:18052:3: rule__XSynchronizedExpression__ParamAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ParamAssignment_1();
@@ -59469,16 +59202,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2"
-    // InternalPerspectiveDsl.g:18145:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
+    // InternalPerspectiveDsl.g:18060:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
     public final void rule__XSynchronizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18149:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
-            // InternalPerspectiveDsl.g:18150:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
+            // InternalPerspectiveDsl.g:18064:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
+            // InternalPerspectiveDsl.g:18065:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XSynchronizedExpression__Group__2__Impl();
 
             state._fsp--;
@@ -59507,22 +59240,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18157:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:18072:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18161:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:18162:1: ( ')' )
+            // InternalPerspectiveDsl.g:18076:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:18077:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:18162:1: ( ')' )
-            // InternalPerspectiveDsl.g:18163:2: ')'
+            // InternalPerspectiveDsl.g:18077:1: ( ')' )
+            // InternalPerspectiveDsl.g:18078:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -59548,14 +59281,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3"
-    // InternalPerspectiveDsl.g:18172:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:18087:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
     public final void rule__XSynchronizedExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18176:1: ( rule__XSynchronizedExpression__Group__3__Impl )
-            // InternalPerspectiveDsl.g:18177:2: rule__XSynchronizedExpression__Group__3__Impl
+            // InternalPerspectiveDsl.g:18091:1: ( rule__XSynchronizedExpression__Group__3__Impl )
+            // InternalPerspectiveDsl.g:18092:2: rule__XSynchronizedExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__3__Impl();
@@ -59581,23 +59314,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
-    // InternalPerspectiveDsl.g:18183:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:18098:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
     public final void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18187:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:18188:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:18102:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:18103:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:18188:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
-            // InternalPerspectiveDsl.g:18189:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:18103:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalPerspectiveDsl.g:18104:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:18190:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
-            // InternalPerspectiveDsl.g:18190:3: rule__XSynchronizedExpression__ExpressionAssignment_3
+            // InternalPerspectiveDsl.g:18105:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalPerspectiveDsl.g:18105:3: rule__XSynchronizedExpression__ExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ExpressionAssignment_3();
@@ -59632,14 +59365,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
-    // InternalPerspectiveDsl.g:18199:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:18114:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
     public final void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18203:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:18204:2: rule__XSynchronizedExpression__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:18118:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:18119:2: rule__XSynchronizedExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0__Impl();
@@ -59665,23 +59398,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:18210:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:18125:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18214:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:18215:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:18129:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:18130:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:18215:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:18216:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:18130:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:18131:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:18217:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:18217:3: rule__XSynchronizedExpression__Group_0_0__0
+            // InternalPerspectiveDsl.g:18132:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:18132:3: rule__XSynchronizedExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__0();
@@ -59716,16 +59449,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
-    // InternalPerspectiveDsl.g:18226:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:18141:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
     public final void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18230:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:18231:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
+            // InternalPerspectiveDsl.g:18145:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:18146:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_129);
+            pushFollow(FOLLOW_128);
             rule__XSynchronizedExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -59754,23 +59487,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:18238:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18153:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18242:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18243:1: ( () )
+            // InternalPerspectiveDsl.g:18157:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18158:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18243:1: ( () )
-            // InternalPerspectiveDsl.g:18244:2: ()
+            // InternalPerspectiveDsl.g:18158:1: ( () )
+            // InternalPerspectiveDsl.g:18159:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:18245:2: ()
-            // InternalPerspectiveDsl.g:18245:3: 
+            // InternalPerspectiveDsl.g:18160:2: ()
+            // InternalPerspectiveDsl.g:18160:3: 
             {
             }
 
@@ -59795,16 +59528,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
-    // InternalPerspectiveDsl.g:18253:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
+    // InternalPerspectiveDsl.g:18168:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
     public final void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18257:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
-            // InternalPerspectiveDsl.g:18258:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
+            // InternalPerspectiveDsl.g:18172:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
+            // InternalPerspectiveDsl.g:18173:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XSynchronizedExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -59833,22 +59566,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:18265:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
+    // InternalPerspectiveDsl.g:18180:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18269:1: ( ( 'synchronized' ) )
-            // InternalPerspectiveDsl.g:18270:1: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:18184:1: ( ( 'synchronized' ) )
+            // InternalPerspectiveDsl.g:18185:1: ( 'synchronized' )
             {
-            // InternalPerspectiveDsl.g:18270:1: ( 'synchronized' )
-            // InternalPerspectiveDsl.g:18271:2: 'synchronized'
+            // InternalPerspectiveDsl.g:18185:1: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:18186:2: 'synchronized'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
-            match(input,114,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
@@ -59874,14 +59607,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
-    // InternalPerspectiveDsl.g:18280:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:18195:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
     public final void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18284:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:18285:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
+            // InternalPerspectiveDsl.g:18199:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:18200:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__2__Impl();
@@ -59907,22 +59640,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:18291:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:18206:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18295:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:18296:1: ( '(' )
+            // InternalPerspectiveDsl.g:18210:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:18211:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:18296:1: ( '(' )
-            // InternalPerspectiveDsl.g:18297:2: '('
+            // InternalPerspectiveDsl.g:18211:1: ( '(' )
+            // InternalPerspectiveDsl.g:18212:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -59948,16 +59681,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0"
-    // InternalPerspectiveDsl.g:18307:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+    // InternalPerspectiveDsl.g:18222:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
     public final void rule__XCatchClause__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18311:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
-            // InternalPerspectiveDsl.g:18312:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+            // InternalPerspectiveDsl.g:18226:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+            // InternalPerspectiveDsl.g:18227:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XCatchClause__Group__0__Impl();
 
             state._fsp--;
@@ -59986,25 +59719,25 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18319:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+    // InternalPerspectiveDsl.g:18234:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
     public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18323:1: ( ( ( 'catch' ) ) )
-            // InternalPerspectiveDsl.g:18324:1: ( ( 'catch' ) )
+            // InternalPerspectiveDsl.g:18238:1: ( ( ( 'catch' ) ) )
+            // InternalPerspectiveDsl.g:18239:1: ( ( 'catch' ) )
             {
-            // InternalPerspectiveDsl.g:18324:1: ( ( 'catch' ) )
-            // InternalPerspectiveDsl.g:18325:2: ( 'catch' )
+            // InternalPerspectiveDsl.g:18239:1: ( ( 'catch' ) )
+            // InternalPerspectiveDsl.g:18240:2: ( 'catch' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
             }
-            // InternalPerspectiveDsl.g:18326:2: ( 'catch' )
-            // InternalPerspectiveDsl.g:18326:3: 'catch'
+            // InternalPerspectiveDsl.g:18241:2: ( 'catch' )
+            // InternalPerspectiveDsl.g:18241:3: 'catch'
             {
-            match(input,115,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -60033,16 +59766,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1"
-    // InternalPerspectiveDsl.g:18334:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+    // InternalPerspectiveDsl.g:18249:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
     public final void rule__XCatchClause__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18338:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
-            // InternalPerspectiveDsl.g:18339:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+            // InternalPerspectiveDsl.g:18253:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+            // InternalPerspectiveDsl.g:18254:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XCatchClause__Group__1__Impl();
 
             state._fsp--;
@@ -60071,22 +59804,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18346:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:18261:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
     public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18350:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:18351:1: ( '(' )
+            // InternalPerspectiveDsl.g:18265:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:18266:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:18351:1: ( '(' )
-            // InternalPerspectiveDsl.g:18352:2: '('
+            // InternalPerspectiveDsl.g:18266:1: ( '(' )
+            // InternalPerspectiveDsl.g:18267:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
@@ -60112,16 +59845,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2"
-    // InternalPerspectiveDsl.g:18361:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+    // InternalPerspectiveDsl.g:18276:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
     public final void rule__XCatchClause__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18365:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
-            // InternalPerspectiveDsl.g:18366:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+            // InternalPerspectiveDsl.g:18280:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+            // InternalPerspectiveDsl.g:18281:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XCatchClause__Group__2__Impl();
 
             state._fsp--;
@@ -60150,23 +59883,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18373:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:18288:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
     public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18377:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:18378:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18292:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:18293:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:18378:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
-            // InternalPerspectiveDsl.g:18379:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalPerspectiveDsl.g:18293:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18294:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:18380:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
-            // InternalPerspectiveDsl.g:18380:3: rule__XCatchClause__DeclaredParamAssignment_2
+            // InternalPerspectiveDsl.g:18295:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalPerspectiveDsl.g:18295:3: rule__XCatchClause__DeclaredParamAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__DeclaredParamAssignment_2();
@@ -60201,16 +59934,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3"
-    // InternalPerspectiveDsl.g:18388:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+    // InternalPerspectiveDsl.g:18303:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
     public final void rule__XCatchClause__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18392:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
-            // InternalPerspectiveDsl.g:18393:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+            // InternalPerspectiveDsl.g:18307:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+            // InternalPerspectiveDsl.g:18308:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XCatchClause__Group__3__Impl();
 
             state._fsp--;
@@ -60239,22 +59972,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3__Impl"
-    // InternalPerspectiveDsl.g:18400:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:18315:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
     public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18404:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:18405:1: ( ')' )
+            // InternalPerspectiveDsl.g:18319:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:18320:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:18405:1: ( ')' )
-            // InternalPerspectiveDsl.g:18406:2: ')'
+            // InternalPerspectiveDsl.g:18320:1: ( ')' )
+            // InternalPerspectiveDsl.g:18321:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
@@ -60280,14 +60013,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4"
-    // InternalPerspectiveDsl.g:18415:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:18330:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
     public final void rule__XCatchClause__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18419:1: ( rule__XCatchClause__Group__4__Impl )
-            // InternalPerspectiveDsl.g:18420:2: rule__XCatchClause__Group__4__Impl
+            // InternalPerspectiveDsl.g:18334:1: ( rule__XCatchClause__Group__4__Impl )
+            // InternalPerspectiveDsl.g:18335:2: rule__XCatchClause__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__4__Impl();
@@ -60313,23 +60046,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4__Impl"
-    // InternalPerspectiveDsl.g:18426:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+    // InternalPerspectiveDsl.g:18341:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
     public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18430:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
-            // InternalPerspectiveDsl.g:18431:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalPerspectiveDsl.g:18345:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+            // InternalPerspectiveDsl.g:18346:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
             {
-            // InternalPerspectiveDsl.g:18431:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
-            // InternalPerspectiveDsl.g:18432:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalPerspectiveDsl.g:18346:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalPerspectiveDsl.g:18347:2: ( rule__XCatchClause__ExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
             }
-            // InternalPerspectiveDsl.g:18433:2: ( rule__XCatchClause__ExpressionAssignment_4 )
-            // InternalPerspectiveDsl.g:18433:3: rule__XCatchClause__ExpressionAssignment_4
+            // InternalPerspectiveDsl.g:18348:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalPerspectiveDsl.g:18348:3: rule__XCatchClause__ExpressionAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__ExpressionAssignment_4();
@@ -60364,16 +60097,16 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalPerspectiveDsl.g:18442:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalPerspectiveDsl.g:18357:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
     public final void rule__QualifiedName__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18446:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalPerspectiveDsl.g:18447:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalPerspectiveDsl.g:18361:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalPerspectiveDsl.g:18362:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_130);
+            pushFollow(FOLLOW_129);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -60402,17 +60135,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18454:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:18369:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18458:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:18459:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:18373:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:18374:1: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:18459:1: ( ruleValidID )
-            // InternalPerspectiveDsl.g:18460:2: ruleValidID
+            // InternalPerspectiveDsl.g:18374:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:18375:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
@@ -60447,14 +60180,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalPerspectiveDsl.g:18469:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:18384:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18473:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalPerspectiveDsl.g:18474:2: rule__QualifiedName__Group__1__Impl
+            // InternalPerspectiveDsl.g:18388:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalPerspectiveDsl.g:18389:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -60480,22 +60213,22 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18480:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:18395:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
     public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18484:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:18485:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:18399:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:18400:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:18485:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:18486:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalPerspectiveDsl.g:18400:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:18401:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:18487:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalPerspectiveDsl.g:18402:2: ( rule__QualifiedName__Group_1__0 )*
             loop129:
             do {
                 int alt129=2;
@@ -60507,7 +60240,7 @@
                     if ( (LA129_2==RULE_ID) ) {
                         int LA129_3 = input.LA(3);
 
-                        if ( (synpred186_InternalPerspectiveDsl()) ) {
+                        if ( (synpred185_InternalPerspectiveDsl()) ) {
                             alt129=1;
                         }
 
@@ -60520,9 +60253,9 @@
 
                 switch (alt129) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:18487:3: rule__QualifiedName__Group_1__0
+            	    // InternalPerspectiveDsl.g:18402:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_131);
+            	    pushFollow(FOLLOW_130);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -60561,14 +60294,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalPerspectiveDsl.g:18496:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalPerspectiveDsl.g:18411:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
     public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18500:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalPerspectiveDsl.g:18501:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalPerspectiveDsl.g:18415:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalPerspectiveDsl.g:18416:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_7);
             rule__QualifiedName__Group_1__0__Impl();
@@ -60599,23 +60332,23 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:18508:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+    // InternalPerspectiveDsl.g:18423:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18512:1: ( ( ( '.' ) ) )
-            // InternalPerspectiveDsl.g:18513:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:18427:1: ( ( ( '.' ) ) )
+            // InternalPerspectiveDsl.g:18428:1: ( ( '.' ) )
             {
-            // InternalPerspectiveDsl.g:18513:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:18514:2: ( '.' )
+            // InternalPerspectiveDsl.g:18428:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:18429:2: ( '.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            // InternalPerspectiveDsl.g:18515:2: ( '.' )
-            // InternalPerspectiveDsl.g:18515:3: '.'
+            // InternalPerspectiveDsl.g:18430:2: ( '.' )
+            // InternalPerspectiveDsl.g:18430:3: '.'
             {
             match(input,43,FOLLOW_2); if (state.failed) return ;
 
@@ -60646,14 +60379,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalPerspectiveDsl.g:18523:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18438:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
     public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18527:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:18528:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:18442:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:18443:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -60679,17 +60412,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:18534:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:18449:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18538:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:18539:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:18453:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:18454:1: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:18539:1: ( ruleValidID )
-            // InternalPerspectiveDsl.g:18540:2: ruleValidID
+            // InternalPerspectiveDsl.g:18454:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:18455:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
@@ -60724,16 +60457,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0"
-    // InternalPerspectiveDsl.g:18550:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+    // InternalPerspectiveDsl.g:18465:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
     public final void rule__Number__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18554:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
-            // InternalPerspectiveDsl.g:18555:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+            // InternalPerspectiveDsl.g:18469:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+            // InternalPerspectiveDsl.g:18470:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
             {
-            pushFollow(FOLLOW_130);
+            pushFollow(FOLLOW_129);
             rule__Number__Group_1__0__Impl();
 
             state._fsp--;
@@ -60762,23 +60495,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:18562:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:18477:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
     public final void rule__Number__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18566:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
-            // InternalPerspectiveDsl.g:18567:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalPerspectiveDsl.g:18481:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+            // InternalPerspectiveDsl.g:18482:1: ( ( rule__Number__Alternatives_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:18567:1: ( ( rule__Number__Alternatives_1_0 ) )
-            // InternalPerspectiveDsl.g:18568:2: ( rule__Number__Alternatives_1_0 )
+            // InternalPerspectiveDsl.g:18482:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalPerspectiveDsl.g:18483:2: ( rule__Number__Alternatives_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
             }
-            // InternalPerspectiveDsl.g:18569:2: ( rule__Number__Alternatives_1_0 )
-            // InternalPerspectiveDsl.g:18569:3: rule__Number__Alternatives_1_0
+            // InternalPerspectiveDsl.g:18484:2: ( rule__Number__Alternatives_1_0 )
+            // InternalPerspectiveDsl.g:18484:3: rule__Number__Alternatives_1_0
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_0();
@@ -60813,14 +60546,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1"
-    // InternalPerspectiveDsl.g:18577:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18492:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
     public final void rule__Number__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18581:1: ( rule__Number__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:18582:2: rule__Number__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:18496:1: ( rule__Number__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:18497:2: rule__Number__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1__1__Impl();
@@ -60846,22 +60579,22 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:18588:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:18503:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
     public final void rule__Number__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18592:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:18593:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:18507:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:18508:1: ( ( rule__Number__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:18593:1: ( ( rule__Number__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:18594:2: ( rule__Number__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:18508:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:18509:2: ( rule__Number__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:18595:2: ( rule__Number__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:18510:2: ( rule__Number__Group_1_1__0 )?
             int alt130=2;
             int LA130_0 = input.LA(1);
 
@@ -60874,7 +60607,7 @@
             }
             switch (alt130) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:18595:3: rule__Number__Group_1_1__0
+                    // InternalPerspectiveDsl.g:18510:3: rule__Number__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1_1__0();
@@ -60912,16 +60645,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0"
-    // InternalPerspectiveDsl.g:18604:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:18519:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
     public final void rule__Number__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18608:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:18609:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+            // InternalPerspectiveDsl.g:18523:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:18524:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
             {
-            pushFollow(FOLLOW_132);
+            pushFollow(FOLLOW_131);
             rule__Number__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -60950,17 +60683,17 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:18616:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:18531:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
     public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18620:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:18621:1: ( '.' )
+            // InternalPerspectiveDsl.g:18535:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:18536:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:18621:1: ( '.' )
-            // InternalPerspectiveDsl.g:18622:2: '.'
+            // InternalPerspectiveDsl.g:18536:1: ( '.' )
+            // InternalPerspectiveDsl.g:18537:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
@@ -60991,14 +60724,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1"
-    // InternalPerspectiveDsl.g:18631:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18546:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
     public final void rule__Number__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18635:1: ( rule__Number__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:18636:2: rule__Number__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:18550:1: ( rule__Number__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:18551:2: rule__Number__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1_1__1__Impl();
@@ -61024,23 +60757,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:18642:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:18557:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
     public final void rule__Number__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18646:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:18647:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalPerspectiveDsl.g:18561:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:18562:1: ( ( rule__Number__Alternatives_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:18647:1: ( ( rule__Number__Alternatives_1_1_1 ) )
-            // InternalPerspectiveDsl.g:18648:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalPerspectiveDsl.g:18562:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalPerspectiveDsl.g:18563:2: ( rule__Number__Alternatives_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:18649:2: ( rule__Number__Alternatives_1_1_1 )
-            // InternalPerspectiveDsl.g:18649:3: rule__Number__Alternatives_1_1_1
+            // InternalPerspectiveDsl.g:18564:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalPerspectiveDsl.g:18564:3: rule__Number__Alternatives_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_1_1();
@@ -61075,16 +60808,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0"
-    // InternalPerspectiveDsl.g:18658:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+    // InternalPerspectiveDsl.g:18573:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
     public final void rule__JvmTypeReference__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18662:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
-            // InternalPerspectiveDsl.g:18663:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+            // InternalPerspectiveDsl.g:18577:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+            // InternalPerspectiveDsl.g:18578:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__JvmTypeReference__Group_0__0__Impl();
 
             state._fsp--;
@@ -61113,17 +60846,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:18670:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+    // InternalPerspectiveDsl.g:18585:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
     public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18674:1: ( ( ruleJvmParameterizedTypeReference ) )
-            // InternalPerspectiveDsl.g:18675:1: ( ruleJvmParameterizedTypeReference )
+            // InternalPerspectiveDsl.g:18589:1: ( ( ruleJvmParameterizedTypeReference ) )
+            // InternalPerspectiveDsl.g:18590:1: ( ruleJvmParameterizedTypeReference )
             {
-            // InternalPerspectiveDsl.g:18675:1: ( ruleJvmParameterizedTypeReference )
-            // InternalPerspectiveDsl.g:18676:2: ruleJvmParameterizedTypeReference
+            // InternalPerspectiveDsl.g:18590:1: ( ruleJvmParameterizedTypeReference )
+            // InternalPerspectiveDsl.g:18591:2: ruleJvmParameterizedTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
@@ -61158,14 +60891,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1"
-    // InternalPerspectiveDsl.g:18685:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+    // InternalPerspectiveDsl.g:18600:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18689:1: ( rule__JvmTypeReference__Group_0__1__Impl )
-            // InternalPerspectiveDsl.g:18690:2: rule__JvmTypeReference__Group_0__1__Impl
+            // InternalPerspectiveDsl.g:18604:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+            // InternalPerspectiveDsl.g:18605:2: rule__JvmTypeReference__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0__1__Impl();
@@ -61191,34 +60924,34 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:18696:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:18611:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
     public final void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18700:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
-            // InternalPerspectiveDsl.g:18701:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalPerspectiveDsl.g:18615:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+            // InternalPerspectiveDsl.g:18616:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:18701:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
-            // InternalPerspectiveDsl.g:18702:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            // InternalPerspectiveDsl.g:18616:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalPerspectiveDsl.g:18617:2: ( rule__JvmTypeReference__Group_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:18703:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            // InternalPerspectiveDsl.g:18618:2: ( rule__JvmTypeReference__Group_0_1__0 )*
             loop131:
             do {
                 int alt131=2;
                 int LA131_0 = input.LA(1);
 
-                if ( (LA131_0==95) ) {
+                if ( (LA131_0==94) ) {
                     int LA131_2 = input.LA(2);
 
-                    if ( (LA131_2==93) ) {
+                    if ( (LA131_2==92) ) {
                         int LA131_3 = input.LA(3);
 
-                        if ( (synpred188_InternalPerspectiveDsl()) ) {
+                        if ( (synpred187_InternalPerspectiveDsl()) ) {
                             alt131=1;
                         }
 
@@ -61231,9 +60964,9 @@
 
                 switch (alt131) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:18703:3: rule__JvmTypeReference__Group_0_1__0
+            	    // InternalPerspectiveDsl.g:18618:3: rule__JvmTypeReference__Group_0_1__0
             	    {
-            	    pushFollow(FOLLOW_122);
+            	    pushFollow(FOLLOW_121);
             	    rule__JvmTypeReference__Group_0_1__0();
 
             	    state._fsp--;
@@ -61272,14 +61005,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
-    // InternalPerspectiveDsl.g:18712:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+    // InternalPerspectiveDsl.g:18627:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
     public final void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18716:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
-            // InternalPerspectiveDsl.g:18717:2: rule__JvmTypeReference__Group_0_1__0__Impl
+            // InternalPerspectiveDsl.g:18631:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+            // InternalPerspectiveDsl.g:18632:2: rule__JvmTypeReference__Group_0_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1__0__Impl();
@@ -61305,23 +61038,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:18723:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:18638:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
     public final void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18727:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:18728:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalPerspectiveDsl.g:18642:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:18643:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:18728:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
-            // InternalPerspectiveDsl.g:18729:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalPerspectiveDsl.g:18643:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalPerspectiveDsl.g:18644:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:18730:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
-            // InternalPerspectiveDsl.g:18730:3: rule__JvmTypeReference__Group_0_1_0__0
+            // InternalPerspectiveDsl.g:18645:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalPerspectiveDsl.g:18645:3: rule__JvmTypeReference__Group_0_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__0();
@@ -61356,16 +61089,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
-    // InternalPerspectiveDsl.g:18739:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
+    // InternalPerspectiveDsl.g:18654:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
     public final void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18743:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
-            // InternalPerspectiveDsl.g:18744:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+            // InternalPerspectiveDsl.g:18658:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+            // InternalPerspectiveDsl.g:18659:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__JvmTypeReference__Group_0_1_0__0__Impl();
 
             state._fsp--;
@@ -61394,23 +61127,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:18751:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:18666:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18755:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:18756:1: ( () )
+            // InternalPerspectiveDsl.g:18670:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:18671:1: ( () )
             {
-            // InternalPerspectiveDsl.g:18756:1: ( () )
-            // InternalPerspectiveDsl.g:18757:2: ()
+            // InternalPerspectiveDsl.g:18671:1: ( () )
+            // InternalPerspectiveDsl.g:18672:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:18758:2: ()
-            // InternalPerspectiveDsl.g:18758:3: 
+            // InternalPerspectiveDsl.g:18673:2: ()
+            // InternalPerspectiveDsl.g:18673:3: 
             {
             }
 
@@ -61435,14 +61168,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
-    // InternalPerspectiveDsl.g:18766:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:18681:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18770:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:18771:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+            // InternalPerspectiveDsl.g:18685:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:18686:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__1__Impl();
@@ -61468,17 +61201,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:18777:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+    // InternalPerspectiveDsl.g:18692:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18781:1: ( ( ruleArrayBrackets ) )
-            // InternalPerspectiveDsl.g:18782:1: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:18696:1: ( ( ruleArrayBrackets ) )
+            // InternalPerspectiveDsl.g:18697:1: ( ruleArrayBrackets )
             {
-            // InternalPerspectiveDsl.g:18782:1: ( ruleArrayBrackets )
-            // InternalPerspectiveDsl.g:18783:2: ruleArrayBrackets
+            // InternalPerspectiveDsl.g:18697:1: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:18698:2: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
@@ -61513,16 +61246,16 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0"
-    // InternalPerspectiveDsl.g:18793:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+    // InternalPerspectiveDsl.g:18708:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
     public final void rule__ArrayBrackets__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18797:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
-            // InternalPerspectiveDsl.g:18798:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+            // InternalPerspectiveDsl.g:18712:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+            // InternalPerspectiveDsl.g:18713:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
             {
-            pushFollow(FOLLOW_95);
+            pushFollow(FOLLOW_94);
             rule__ArrayBrackets__Group__0__Impl();
 
             state._fsp--;
@@ -61551,22 +61284,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18805:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:18720:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
     public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18809:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:18810:1: ( '[' )
+            // InternalPerspectiveDsl.g:18724:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:18725:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:18810:1: ( '[' )
-            // InternalPerspectiveDsl.g:18811:2: '['
+            // InternalPerspectiveDsl.g:18725:1: ( '[' )
+            // InternalPerspectiveDsl.g:18726:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
@@ -61592,14 +61325,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1"
-    // InternalPerspectiveDsl.g:18820:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:18735:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
     public final void rule__ArrayBrackets__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18824:1: ( rule__ArrayBrackets__Group__1__Impl )
-            // InternalPerspectiveDsl.g:18825:2: rule__ArrayBrackets__Group__1__Impl
+            // InternalPerspectiveDsl.g:18739:1: ( rule__ArrayBrackets__Group__1__Impl )
+            // InternalPerspectiveDsl.g:18740:2: rule__ArrayBrackets__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__1__Impl();
@@ -61625,22 +61358,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18831:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:18746:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
     public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18835:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:18836:1: ( ']' )
+            // InternalPerspectiveDsl.g:18750:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:18751:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:18836:1: ( ']' )
-            // InternalPerspectiveDsl.g:18837:2: ']'
+            // InternalPerspectiveDsl.g:18751:1: ( ']' )
+            // InternalPerspectiveDsl.g:18752:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
@@ -61666,16 +61399,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0"
-    // InternalPerspectiveDsl.g:18847:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+    // InternalPerspectiveDsl.g:18762:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
     public final void rule__XFunctionTypeRef__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18851:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
-            // InternalPerspectiveDsl.g:18852:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+            // InternalPerspectiveDsl.g:18766:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+            // InternalPerspectiveDsl.g:18767:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XFunctionTypeRef__Group__0__Impl();
 
             state._fsp--;
@@ -61704,31 +61437,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
-    // InternalPerspectiveDsl.g:18859:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+    // InternalPerspectiveDsl.g:18774:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18863:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
-            // InternalPerspectiveDsl.g:18864:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalPerspectiveDsl.g:18778:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+            // InternalPerspectiveDsl.g:18779:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
             {
-            // InternalPerspectiveDsl.g:18864:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
-            // InternalPerspectiveDsl.g:18865:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            // InternalPerspectiveDsl.g:18779:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalPerspectiveDsl.g:18780:2: ( rule__XFunctionTypeRef__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:18866:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            // InternalPerspectiveDsl.g:18781:2: ( rule__XFunctionTypeRef__Group_0__0 )?
             int alt132=2;
             int LA132_0 = input.LA(1);
 
-            if ( (LA132_0==90) ) {
+            if ( (LA132_0==89) ) {
                 alt132=1;
             }
             switch (alt132) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:18866:3: rule__XFunctionTypeRef__Group_0__0
+                    // InternalPerspectiveDsl.g:18781:3: rule__XFunctionTypeRef__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0__0();
@@ -61766,16 +61499,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1"
-    // InternalPerspectiveDsl.g:18874:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+    // InternalPerspectiveDsl.g:18789:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
     public final void rule__XFunctionTypeRef__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18878:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
-            // InternalPerspectiveDsl.g:18879:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+            // InternalPerspectiveDsl.g:18793:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+            // InternalPerspectiveDsl.g:18794:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XFunctionTypeRef__Group__1__Impl();
 
             state._fsp--;
@@ -61804,17 +61537,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
-    // InternalPerspectiveDsl.g:18886:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+    // InternalPerspectiveDsl.g:18801:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
     public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18890:1: ( ( '=>' ) )
-            // InternalPerspectiveDsl.g:18891:1: ( '=>' )
+            // InternalPerspectiveDsl.g:18805:1: ( ( '=>' ) )
+            // InternalPerspectiveDsl.g:18806:1: ( '=>' )
             {
-            // InternalPerspectiveDsl.g:18891:1: ( '=>' )
-            // InternalPerspectiveDsl.g:18892:2: '=>'
+            // InternalPerspectiveDsl.g:18806:1: ( '=>' )
+            // InternalPerspectiveDsl.g:18807:2: '=>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
@@ -61845,14 +61578,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2"
-    // InternalPerspectiveDsl.g:18901:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:18816:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
     public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18905:1: ( rule__XFunctionTypeRef__Group__2__Impl )
-            // InternalPerspectiveDsl.g:18906:2: rule__XFunctionTypeRef__Group__2__Impl
+            // InternalPerspectiveDsl.g:18820:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+            // InternalPerspectiveDsl.g:18821:2: rule__XFunctionTypeRef__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__2__Impl();
@@ -61878,23 +61611,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
-    // InternalPerspectiveDsl.g:18912:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:18827:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
     public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18916:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:18917:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18831:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:18832:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:18917:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
-            // InternalPerspectiveDsl.g:18918:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:18832:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:18833:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:18919:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
-            // InternalPerspectiveDsl.g:18919:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+            // InternalPerspectiveDsl.g:18834:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:18834:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ReturnTypeAssignment_2();
@@ -61929,16 +61662,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
-    // InternalPerspectiveDsl.g:18928:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+    // InternalPerspectiveDsl.g:18843:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
     public final void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18932:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
-            // InternalPerspectiveDsl.g:18933:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+            // InternalPerspectiveDsl.g:18847:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+            // InternalPerspectiveDsl.g:18848:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
             {
-            pushFollow(FOLLOW_133);
+            pushFollow(FOLLOW_132);
             rule__XFunctionTypeRef__Group_0__0__Impl();
 
             state._fsp--;
@@ -61967,22 +61700,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:18940:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+    // InternalPerspectiveDsl.g:18855:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
     public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18944:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:18945:1: ( '(' )
+            // InternalPerspectiveDsl.g:18859:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:18860:1: ( '(' )
             {
-            // InternalPerspectiveDsl.g:18945:1: ( '(' )
-            // InternalPerspectiveDsl.g:18946:2: '('
+            // InternalPerspectiveDsl.g:18860:1: ( '(' )
+            // InternalPerspectiveDsl.g:18861:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
@@ -62008,16 +61741,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
-    // InternalPerspectiveDsl.g:18955:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+    // InternalPerspectiveDsl.g:18870:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
     public final void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18959:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
-            // InternalPerspectiveDsl.g:18960:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+            // InternalPerspectiveDsl.g:18874:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+            // InternalPerspectiveDsl.g:18875:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
             {
-            pushFollow(FOLLOW_133);
+            pushFollow(FOLLOW_132);
             rule__XFunctionTypeRef__Group_0__1__Impl();
 
             state._fsp--;
@@ -62046,31 +61779,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:18967:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:18882:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18971:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:18972:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:18886:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:18887:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:18972:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:18973:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:18887:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:18888:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:18974:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:18889:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
             int alt133=2;
             int LA133_0 = input.LA(1);
 
-            if ( (LA133_0==RULE_ID||LA133_0==31||LA133_0==90) ) {
+            if ( (LA133_0==RULE_ID||LA133_0==31||LA133_0==89) ) {
                 alt133=1;
             }
             switch (alt133) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:18974:3: rule__XFunctionTypeRef__Group_0_1__0
+                    // InternalPerspectiveDsl.g:18889:3: rule__XFunctionTypeRef__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0_1__0();
@@ -62108,14 +61841,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
-    // InternalPerspectiveDsl.g:18982:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:18897:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
     public final void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18986:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:18987:2: rule__XFunctionTypeRef__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:18901:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:18902:2: rule__XFunctionTypeRef__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0__2__Impl();
@@ -62141,22 +61874,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:18993:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:18908:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
     public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:18997:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:18998:1: ( ')' )
+            // InternalPerspectiveDsl.g:18912:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:18913:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:18998:1: ( ')' )
-            // InternalPerspectiveDsl.g:18999:2: ')'
+            // InternalPerspectiveDsl.g:18913:1: ( ')' )
+            // InternalPerspectiveDsl.g:18914:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
@@ -62182,16 +61915,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
-    // InternalPerspectiveDsl.g:19009:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:18924:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19013:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:19014:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+            // InternalPerspectiveDsl.g:18928:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:18929:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XFunctionTypeRef__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -62220,23 +61953,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:19021:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:18936:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19025:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:19026:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:18940:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:18941:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:19026:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:19027:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:18941:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:18942:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19028:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:19028:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+            // InternalPerspectiveDsl.g:18943:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:18943:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
@@ -62271,14 +62004,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
-    // InternalPerspectiveDsl.g:19036:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:18951:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19040:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:19041:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:18955:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:18956:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1__1__Impl();
@@ -62304,37 +62037,37 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:19047:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:18962:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19051:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:19052:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:18966:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:18967:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:19052:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:19053:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:18967:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:18968:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19054:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:18969:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
             loop134:
             do {
                 int alt134=2;
                 int LA134_0 = input.LA(1);
 
-                if ( (LA134_0==92) ) {
+                if ( (LA134_0==91) ) {
                     alt134=1;
                 }
 
 
                 switch (alt134) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19054:3: rule__XFunctionTypeRef__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:18969:3: rule__XFunctionTypeRef__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XFunctionTypeRef__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -62373,16 +62106,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:19063:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
+    // InternalPerspectiveDsl.g:18978:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19067:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:19068:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:18982:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:18983:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -62411,22 +62144,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:19075:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:18990:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19079:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:19080:1: ( ',' )
+            // InternalPerspectiveDsl.g:18994:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:18995:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:19080:1: ( ',' )
-            // InternalPerspectiveDsl.g:19081:2: ','
+            // InternalPerspectiveDsl.g:18995:1: ( ',' )
+            // InternalPerspectiveDsl.g:18996:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -62452,14 +62185,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:19090:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:19005:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19094:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:19095:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:19009:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:19010:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
@@ -62485,23 +62218,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:19101:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:19016:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19105:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:19106:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:19020:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:19021:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:19106:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:19107:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:19021:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:19022:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19108:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:19108:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:19023:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:19023:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
@@ -62536,16 +62269,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
-    // InternalPerspectiveDsl.g:19117:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+    // InternalPerspectiveDsl.g:19032:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
     public final void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19121:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
-            // InternalPerspectiveDsl.g:19122:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+            // InternalPerspectiveDsl.g:19036:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+            // InternalPerspectiveDsl.g:19037:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
             {
-            pushFollow(FOLLOW_60);
+            pushFollow(FOLLOW_59);
             rule__JvmParameterizedTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -62574,23 +62307,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19129:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+    // InternalPerspectiveDsl.g:19044:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19133:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
-            // InternalPerspectiveDsl.g:19134:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:19048:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+            // InternalPerspectiveDsl.g:19049:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
             {
-            // InternalPerspectiveDsl.g:19134:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
-            // InternalPerspectiveDsl.g:19135:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalPerspectiveDsl.g:19049:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalPerspectiveDsl.g:19050:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
             }
-            // InternalPerspectiveDsl.g:19136:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
-            // InternalPerspectiveDsl.g:19136:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
+            // InternalPerspectiveDsl.g:19051:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalPerspectiveDsl.g:19051:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_0();
@@ -62625,14 +62358,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
-    // InternalPerspectiveDsl.g:19144:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19059:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19148:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
-            // InternalPerspectiveDsl.g:19149:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+            // InternalPerspectiveDsl.g:19063:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19064:2: rule__JvmParameterizedTypeReference__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__1__Impl();
@@ -62658,27 +62391,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19155:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:19070:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19159:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
-            // InternalPerspectiveDsl.g:19160:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:19074:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+            // InternalPerspectiveDsl.g:19075:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:19160:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
-            // InternalPerspectiveDsl.g:19161:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            // InternalPerspectiveDsl.g:19075:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalPerspectiveDsl.g:19076:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:19162:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            // InternalPerspectiveDsl.g:19077:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
             int alt135=2;
             alt135 = dfa135.predict(input);
             switch (alt135) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:19162:3: rule__JvmParameterizedTypeReference__Group_1__0
+                    // InternalPerspectiveDsl.g:19077:3: rule__JvmParameterizedTypeReference__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1__0();
@@ -62716,16 +62449,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
-    // InternalPerspectiveDsl.g:19171:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+    // InternalPerspectiveDsl.g:19086:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19175:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
-            // InternalPerspectiveDsl.g:19176:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+            // InternalPerspectiveDsl.g:19090:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+            // InternalPerspectiveDsl.g:19091:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__JvmParameterizedTypeReference__Group_1__0__Impl();
 
             state._fsp--;
@@ -62754,23 +62487,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:19183:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+    // InternalPerspectiveDsl.g:19098:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19187:1: ( ( ( '<' ) ) )
-            // InternalPerspectiveDsl.g:19188:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:19102:1: ( ( ( '<' ) ) )
+            // InternalPerspectiveDsl.g:19103:1: ( ( '<' ) )
             {
-            // InternalPerspectiveDsl.g:19188:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:19189:2: ( '<' )
+            // InternalPerspectiveDsl.g:19103:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:19104:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19190:2: ( '<' )
-            // InternalPerspectiveDsl.g:19190:3: '<'
+            // InternalPerspectiveDsl.g:19105:2: ( '<' )
+            // InternalPerspectiveDsl.g:19105:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -62801,16 +62534,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
-    // InternalPerspectiveDsl.g:19198:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+    // InternalPerspectiveDsl.g:19113:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19202:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
-            // InternalPerspectiveDsl.g:19203:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+            // InternalPerspectiveDsl.g:19117:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+            // InternalPerspectiveDsl.g:19118:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__JvmParameterizedTypeReference__Group_1__1__Impl();
 
             state._fsp--;
@@ -62839,23 +62572,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:19210:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:19125:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19214:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:19215:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:19129:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:19130:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:19215:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:19216:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:19130:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:19131:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19217:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
-            // InternalPerspectiveDsl.g:19217:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+            // InternalPerspectiveDsl.g:19132:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalPerspectiveDsl.g:19132:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
@@ -62890,16 +62623,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
-    // InternalPerspectiveDsl.g:19225:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+    // InternalPerspectiveDsl.g:19140:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19229:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
-            // InternalPerspectiveDsl.g:19230:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+            // InternalPerspectiveDsl.g:19144:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+            // InternalPerspectiveDsl.g:19145:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__JvmParameterizedTypeReference__Group_1__2__Impl();
 
             state._fsp--;
@@ -62928,37 +62661,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
-    // InternalPerspectiveDsl.g:19237:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:19152:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19241:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
-            // InternalPerspectiveDsl.g:19242:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:19156:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+            // InternalPerspectiveDsl.g:19157:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:19242:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
-            // InternalPerspectiveDsl.g:19243:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            // InternalPerspectiveDsl.g:19157:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalPerspectiveDsl.g:19158:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
             }
-            // InternalPerspectiveDsl.g:19244:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            // InternalPerspectiveDsl.g:19159:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
             loop136:
             do {
                 int alt136=2;
                 int LA136_0 = input.LA(1);
 
-                if ( (LA136_0==92) ) {
+                if ( (LA136_0==91) ) {
                     alt136=1;
                 }
 
 
                 switch (alt136) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19244:3: rule__JvmParameterizedTypeReference__Group_1_2__0
+            	    // InternalPerspectiveDsl.g:19159:3: rule__JvmParameterizedTypeReference__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__JvmParameterizedTypeReference__Group_1_2__0();
 
             	    state._fsp--;
@@ -62997,16 +62730,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
-    // InternalPerspectiveDsl.g:19252:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
+    // InternalPerspectiveDsl.g:19167:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19256:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
-            // InternalPerspectiveDsl.g:19257:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
+            // InternalPerspectiveDsl.g:19171:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
+            // InternalPerspectiveDsl.g:19172:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
             {
-            pushFollow(FOLLOW_130);
+            pushFollow(FOLLOW_129);
             rule__JvmParameterizedTypeReference__Group_1__3__Impl();
 
             state._fsp--;
@@ -63035,17 +62768,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
-    // InternalPerspectiveDsl.g:19264:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:19179:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19268:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:19269:1: ( '>' )
+            // InternalPerspectiveDsl.g:19183:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:19184:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:19269:1: ( '>' )
-            // InternalPerspectiveDsl.g:19270:2: '>'
+            // InternalPerspectiveDsl.g:19184:1: ( '>' )
+            // InternalPerspectiveDsl.g:19185:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
@@ -63076,14 +62809,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
-    // InternalPerspectiveDsl.g:19279:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
+    // InternalPerspectiveDsl.g:19194:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19283:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
-            // InternalPerspectiveDsl.g:19284:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
+            // InternalPerspectiveDsl.g:19198:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
+            // InternalPerspectiveDsl.g:19199:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1__4__Impl();
@@ -63109,22 +62842,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
-    // InternalPerspectiveDsl.g:19290:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
+    // InternalPerspectiveDsl.g:19205:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19294:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
-            // InternalPerspectiveDsl.g:19295:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalPerspectiveDsl.g:19209:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
+            // InternalPerspectiveDsl.g:19210:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
             {
-            // InternalPerspectiveDsl.g:19295:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
-            // InternalPerspectiveDsl.g:19296:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            // InternalPerspectiveDsl.g:19210:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalPerspectiveDsl.g:19211:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
             }
-            // InternalPerspectiveDsl.g:19297:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            // InternalPerspectiveDsl.g:19212:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
             loop137:
             do {
                 int alt137=2;
@@ -63136,7 +62869,7 @@
                     if ( (LA137_2==RULE_ID) ) {
                         int LA137_3 = input.LA(3);
 
-                        if ( (synpred194_InternalPerspectiveDsl()) ) {
+                        if ( (synpred193_InternalPerspectiveDsl()) ) {
                             alt137=1;
                         }
 
@@ -63149,9 +62882,9 @@
 
                 switch (alt137) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19297:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+            	    // InternalPerspectiveDsl.g:19212:3: rule__JvmParameterizedTypeReference__Group_1_4__0
             	    {
-            	    pushFollow(FOLLOW_131);
+            	    pushFollow(FOLLOW_130);
             	    rule__JvmParameterizedTypeReference__Group_1_4__0();
 
             	    state._fsp--;
@@ -63190,16 +62923,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
-    // InternalPerspectiveDsl.g:19306:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+    // InternalPerspectiveDsl.g:19221:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19310:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
-            // InternalPerspectiveDsl.g:19311:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+            // InternalPerspectiveDsl.g:19225:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+            // InternalPerspectiveDsl.g:19226:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -63228,22 +62961,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
-    // InternalPerspectiveDsl.g:19318:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:19233:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19322:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:19323:1: ( ',' )
+            // InternalPerspectiveDsl.g:19237:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:19238:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:19323:1: ( ',' )
-            // InternalPerspectiveDsl.g:19324:2: ','
+            // InternalPerspectiveDsl.g:19238:1: ( ',' )
+            // InternalPerspectiveDsl.g:19239:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
@@ -63269,14 +63002,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
-    // InternalPerspectiveDsl.g:19333:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+    // InternalPerspectiveDsl.g:19248:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19337:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
-            // InternalPerspectiveDsl.g:19338:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+            // InternalPerspectiveDsl.g:19252:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+            // InternalPerspectiveDsl.g:19253:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
@@ -63302,23 +63035,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
-    // InternalPerspectiveDsl.g:19344:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:19259:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19348:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
-            // InternalPerspectiveDsl.g:19349:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:19263:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+            // InternalPerspectiveDsl.g:19264:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:19349:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
-            // InternalPerspectiveDsl.g:19350:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:19264:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalPerspectiveDsl.g:19265:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
             }
-            // InternalPerspectiveDsl.g:19351:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
-            // InternalPerspectiveDsl.g:19351:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+            // InternalPerspectiveDsl.g:19266:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalPerspectiveDsl.g:19266:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
@@ -63353,14 +63086,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
-    // InternalPerspectiveDsl.g:19360:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
+    // InternalPerspectiveDsl.g:19275:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19364:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
-            // InternalPerspectiveDsl.g:19365:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
+            // InternalPerspectiveDsl.g:19279:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
+            // InternalPerspectiveDsl.g:19280:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
             {
             pushFollow(FOLLOW_7);
             rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();
@@ -63391,23 +63124,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
-    // InternalPerspectiveDsl.g:19372:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:19287:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19376:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
-            // InternalPerspectiveDsl.g:19377:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalPerspectiveDsl.g:19291:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
+            // InternalPerspectiveDsl.g:19292:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:19377:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
-            // InternalPerspectiveDsl.g:19378:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalPerspectiveDsl.g:19292:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalPerspectiveDsl.g:19293:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
             }
-            // InternalPerspectiveDsl.g:19379:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
-            // InternalPerspectiveDsl.g:19379:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
+            // InternalPerspectiveDsl.g:19294:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalPerspectiveDsl.g:19294:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0();
@@ -63442,16 +63175,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
-    // InternalPerspectiveDsl.g:19387:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
+    // InternalPerspectiveDsl.g:19302:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19391:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
-            // InternalPerspectiveDsl.g:19392:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
+            // InternalPerspectiveDsl.g:19306:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
+            // InternalPerspectiveDsl.g:19307:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
             {
-            pushFollow(FOLLOW_60);
+            pushFollow(FOLLOW_59);
             rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();
 
             state._fsp--;
@@ -63480,23 +63213,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
-    // InternalPerspectiveDsl.g:19399:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
+    // InternalPerspectiveDsl.g:19314:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19403:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
-            // InternalPerspectiveDsl.g:19404:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalPerspectiveDsl.g:19318:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
+            // InternalPerspectiveDsl.g:19319:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
             {
-            // InternalPerspectiveDsl.g:19404:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
-            // InternalPerspectiveDsl.g:19405:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalPerspectiveDsl.g:19319:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalPerspectiveDsl.g:19320:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
             }
-            // InternalPerspectiveDsl.g:19406:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
-            // InternalPerspectiveDsl.g:19406:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+            // InternalPerspectiveDsl.g:19321:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalPerspectiveDsl.g:19321:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();
@@ -63531,14 +63264,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
-    // InternalPerspectiveDsl.g:19414:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
+    // InternalPerspectiveDsl.g:19329:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19418:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
-            // InternalPerspectiveDsl.g:19419:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+            // InternalPerspectiveDsl.g:19333:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
+            // InternalPerspectiveDsl.g:19334:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();
@@ -63564,27 +63297,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
-    // InternalPerspectiveDsl.g:19425:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
+    // InternalPerspectiveDsl.g:19340:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19429:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
-            // InternalPerspectiveDsl.g:19430:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalPerspectiveDsl.g:19344:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
+            // InternalPerspectiveDsl.g:19345:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
             {
-            // InternalPerspectiveDsl.g:19430:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
-            // InternalPerspectiveDsl.g:19431:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            // InternalPerspectiveDsl.g:19345:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalPerspectiveDsl.g:19346:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
             }
-            // InternalPerspectiveDsl.g:19432:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            // InternalPerspectiveDsl.g:19347:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
             int alt138=2;
             alt138 = dfa138.predict(input);
             switch (alt138) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:19432:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+                    // InternalPerspectiveDsl.g:19347:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -63622,14 +63355,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
-    // InternalPerspectiveDsl.g:19441:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
+    // InternalPerspectiveDsl.g:19356:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19445:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
-            // InternalPerspectiveDsl.g:19446:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+            // InternalPerspectiveDsl.g:19360:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
+            // InternalPerspectiveDsl.g:19361:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();
@@ -63655,23 +63388,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
-    // InternalPerspectiveDsl.g:19452:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:19367:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19456:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:19457:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalPerspectiveDsl.g:19371:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:19372:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:19457:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
-            // InternalPerspectiveDsl.g:19458:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalPerspectiveDsl.g:19372:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalPerspectiveDsl.g:19373:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
             }
-            // InternalPerspectiveDsl.g:19459:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
-            // InternalPerspectiveDsl.g:19459:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+            // InternalPerspectiveDsl.g:19374:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalPerspectiveDsl.g:19374:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();
@@ -63706,16 +63439,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
-    // InternalPerspectiveDsl.g:19468:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
+    // InternalPerspectiveDsl.g:19383:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19472:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
-            // InternalPerspectiveDsl.g:19473:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+            // InternalPerspectiveDsl.g:19387:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
+            // InternalPerspectiveDsl.g:19388:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
             {
-            pushFollow(FOLLOW_130);
+            pushFollow(FOLLOW_129);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();
 
             state._fsp--;
@@ -63744,23 +63477,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:19480:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:19395:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19484:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:19485:1: ( () )
+            // InternalPerspectiveDsl.g:19399:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:19400:1: ( () )
             {
-            // InternalPerspectiveDsl.g:19485:1: ( () )
-            // InternalPerspectiveDsl.g:19486:2: ()
+            // InternalPerspectiveDsl.g:19400:1: ( () )
+            // InternalPerspectiveDsl.g:19401:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:19487:2: ()
-            // InternalPerspectiveDsl.g:19487:3: 
+            // InternalPerspectiveDsl.g:19402:2: ()
+            // InternalPerspectiveDsl.g:19402:3: 
             {
             }
 
@@ -63785,14 +63518,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
-    // InternalPerspectiveDsl.g:19495:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:19410:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19499:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:19500:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+            // InternalPerspectiveDsl.g:19414:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:19415:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();
@@ -63818,17 +63551,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:19506:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:19421:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19510:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:19511:1: ( '.' )
+            // InternalPerspectiveDsl.g:19425:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:19426:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:19511:1: ( '.' )
-            // InternalPerspectiveDsl.g:19512:2: '.'
+            // InternalPerspectiveDsl.g:19426:1: ( '.' )
+            // InternalPerspectiveDsl.g:19427:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
@@ -63859,16 +63592,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
-    // InternalPerspectiveDsl.g:19522:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
+    // InternalPerspectiveDsl.g:19437:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19526:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
-            // InternalPerspectiveDsl.g:19527:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
+            // InternalPerspectiveDsl.g:19441:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
+            // InternalPerspectiveDsl.g:19442:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();
 
             state._fsp--;
@@ -63897,23 +63630,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
-    // InternalPerspectiveDsl.g:19534:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
+    // InternalPerspectiveDsl.g:19449:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19538:1: ( ( ( '<' ) ) )
-            // InternalPerspectiveDsl.g:19539:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:19453:1: ( ( ( '<' ) ) )
+            // InternalPerspectiveDsl.g:19454:1: ( ( '<' ) )
             {
-            // InternalPerspectiveDsl.g:19539:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:19540:2: ( '<' )
+            // InternalPerspectiveDsl.g:19454:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:19455:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
             }
-            // InternalPerspectiveDsl.g:19541:2: ( '<' )
-            // InternalPerspectiveDsl.g:19541:3: '<'
+            // InternalPerspectiveDsl.g:19456:2: ( '<' )
+            // InternalPerspectiveDsl.g:19456:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -63944,16 +63677,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
-    // InternalPerspectiveDsl.g:19549:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
+    // InternalPerspectiveDsl.g:19464:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19553:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
-            // InternalPerspectiveDsl.g:19554:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
+            // InternalPerspectiveDsl.g:19468:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
+            // InternalPerspectiveDsl.g:19469:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();
 
             state._fsp--;
@@ -63982,23 +63715,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
-    // InternalPerspectiveDsl.g:19561:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:19476:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19565:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
-            // InternalPerspectiveDsl.g:19566:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalPerspectiveDsl.g:19480:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
+            // InternalPerspectiveDsl.g:19481:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:19566:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
-            // InternalPerspectiveDsl.g:19567:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalPerspectiveDsl.g:19481:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalPerspectiveDsl.g:19482:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
             }
-            // InternalPerspectiveDsl.g:19568:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
-            // InternalPerspectiveDsl.g:19568:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+            // InternalPerspectiveDsl.g:19483:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalPerspectiveDsl.g:19483:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();
@@ -64033,16 +63766,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
-    // InternalPerspectiveDsl.g:19576:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
+    // InternalPerspectiveDsl.g:19491:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19580:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
-            // InternalPerspectiveDsl.g:19581:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
+            // InternalPerspectiveDsl.g:19495:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
+            // InternalPerspectiveDsl.g:19496:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();
 
             state._fsp--;
@@ -64071,37 +63804,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
-    // InternalPerspectiveDsl.g:19588:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
+    // InternalPerspectiveDsl.g:19503:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19592:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
-            // InternalPerspectiveDsl.g:19593:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalPerspectiveDsl.g:19507:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
+            // InternalPerspectiveDsl.g:19508:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
             {
-            // InternalPerspectiveDsl.g:19593:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
-            // InternalPerspectiveDsl.g:19594:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            // InternalPerspectiveDsl.g:19508:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalPerspectiveDsl.g:19509:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
             }
-            // InternalPerspectiveDsl.g:19595:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            // InternalPerspectiveDsl.g:19510:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
             loop139:
             do {
                 int alt139=2;
                 int LA139_0 = input.LA(1);
 
-                if ( (LA139_0==92) ) {
+                if ( (LA139_0==91) ) {
                     alt139=1;
                 }
 
 
                 switch (alt139) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19595:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+            	    // InternalPerspectiveDsl.g:19510:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();
 
             	    state._fsp--;
@@ -64140,14 +63873,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
-    // InternalPerspectiveDsl.g:19603:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
+    // InternalPerspectiveDsl.g:19518:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19607:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
-            // InternalPerspectiveDsl.g:19608:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+            // InternalPerspectiveDsl.g:19522:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
+            // InternalPerspectiveDsl.g:19523:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();
@@ -64173,17 +63906,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
-    // InternalPerspectiveDsl.g:19614:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:19529:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19618:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:19619:1: ( '>' )
+            // InternalPerspectiveDsl.g:19533:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:19534:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:19619:1: ( '>' )
-            // InternalPerspectiveDsl.g:19620:2: '>'
+            // InternalPerspectiveDsl.g:19534:1: ( '>' )
+            // InternalPerspectiveDsl.g:19535:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
@@ -64214,16 +63947,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
-    // InternalPerspectiveDsl.g:19630:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
+    // InternalPerspectiveDsl.g:19545:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19634:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
-            // InternalPerspectiveDsl.g:19635:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+            // InternalPerspectiveDsl.g:19549:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
+            // InternalPerspectiveDsl.g:19550:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();
 
             state._fsp--;
@@ -64252,22 +63985,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
-    // InternalPerspectiveDsl.g:19642:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:19557:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19646:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:19647:1: ( ',' )
+            // InternalPerspectiveDsl.g:19561:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:19562:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:19647:1: ( ',' )
-            // InternalPerspectiveDsl.g:19648:2: ','
+            // InternalPerspectiveDsl.g:19562:1: ( ',' )
+            // InternalPerspectiveDsl.g:19563:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
@@ -64293,14 +64026,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
-    // InternalPerspectiveDsl.g:19657:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
+    // InternalPerspectiveDsl.g:19572:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19661:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
-            // InternalPerspectiveDsl.g:19662:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+            // InternalPerspectiveDsl.g:19576:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
+            // InternalPerspectiveDsl.g:19577:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();
@@ -64326,23 +64059,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
-    // InternalPerspectiveDsl.g:19668:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:19583:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19672:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
-            // InternalPerspectiveDsl.g:19673:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalPerspectiveDsl.g:19587:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
+            // InternalPerspectiveDsl.g:19588:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:19673:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
-            // InternalPerspectiveDsl.g:19674:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalPerspectiveDsl.g:19588:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalPerspectiveDsl.g:19589:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
             }
-            // InternalPerspectiveDsl.g:19675:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
-            // InternalPerspectiveDsl.g:19675:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+            // InternalPerspectiveDsl.g:19590:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalPerspectiveDsl.g:19590:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();
@@ -64377,16 +64110,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
-    // InternalPerspectiveDsl.g:19684:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+    // InternalPerspectiveDsl.g:19599:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
     public final void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19688:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
-            // InternalPerspectiveDsl.g:19689:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+            // InternalPerspectiveDsl.g:19603:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+            // InternalPerspectiveDsl.g:19604:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__JvmWildcardTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -64415,23 +64148,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19696:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:19611:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
     public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19700:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:19701:1: ( () )
+            // InternalPerspectiveDsl.g:19615:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:19616:1: ( () )
             {
-            // InternalPerspectiveDsl.g:19701:1: ( () )
-            // InternalPerspectiveDsl.g:19702:2: ()
+            // InternalPerspectiveDsl.g:19616:1: ( () )
+            // InternalPerspectiveDsl.g:19617:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
             }
-            // InternalPerspectiveDsl.g:19703:2: ()
-            // InternalPerspectiveDsl.g:19703:3: 
+            // InternalPerspectiveDsl.g:19618:2: ()
+            // InternalPerspectiveDsl.g:19618:3: 
             {
             }
 
@@ -64456,16 +64189,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
-    // InternalPerspectiveDsl.g:19711:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+    // InternalPerspectiveDsl.g:19626:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
     public final void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19715:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
-            // InternalPerspectiveDsl.g:19716:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+            // InternalPerspectiveDsl.g:19630:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+            // InternalPerspectiveDsl.g:19631:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
             {
-            pushFollow(FOLLOW_134);
+            pushFollow(FOLLOW_133);
             rule__JvmWildcardTypeReference__Group__1__Impl();
 
             state._fsp--;
@@ -64494,22 +64227,22 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19723:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+    // InternalPerspectiveDsl.g:19638:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
     public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19727:1: ( ( '?' ) )
-            // InternalPerspectiveDsl.g:19728:1: ( '?' )
+            // InternalPerspectiveDsl.g:19642:1: ( ( '?' ) )
+            // InternalPerspectiveDsl.g:19643:1: ( '?' )
             {
-            // InternalPerspectiveDsl.g:19728:1: ( '?' )
-            // InternalPerspectiveDsl.g:19729:2: '?'
+            // InternalPerspectiveDsl.g:19643:1: ( '?' )
+            // InternalPerspectiveDsl.g:19644:2: '?'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
-            match(input,116,FOLLOW_2); if (state.failed) return ;
+            match(input,115,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
@@ -64535,14 +64268,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
-    // InternalPerspectiveDsl.g:19738:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:19653:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
     public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19742:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
-            // InternalPerspectiveDsl.g:19743:2: rule__JvmWildcardTypeReference__Group__2__Impl
+            // InternalPerspectiveDsl.g:19657:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+            // InternalPerspectiveDsl.g:19658:2: rule__JvmWildcardTypeReference__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__2__Impl();
@@ -64568,22 +64301,22 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
-    // InternalPerspectiveDsl.g:19749:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+    // InternalPerspectiveDsl.g:19664:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
     public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19753:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
-            // InternalPerspectiveDsl.g:19754:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalPerspectiveDsl.g:19668:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+            // InternalPerspectiveDsl.g:19669:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
             {
-            // InternalPerspectiveDsl.g:19754:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
-            // InternalPerspectiveDsl.g:19755:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            // InternalPerspectiveDsl.g:19669:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalPerspectiveDsl.g:19670:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:19756:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            // InternalPerspectiveDsl.g:19671:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
             int alt140=2;
             int LA140_0 = input.LA(1);
 
@@ -64592,7 +64325,7 @@
             }
             switch (alt140) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:19756:3: rule__JvmWildcardTypeReference__Alternatives_2
+                    // InternalPerspectiveDsl.g:19671:3: rule__JvmWildcardTypeReference__Alternatives_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Alternatives_2();
@@ -64630,16 +64363,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
-    // InternalPerspectiveDsl.g:19765:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
+    // InternalPerspectiveDsl.g:19680:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19769:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
-            // InternalPerspectiveDsl.g:19770:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
+            // InternalPerspectiveDsl.g:19684:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:19685:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
             {
-            pushFollow(FOLLOW_135);
+            pushFollow(FOLLOW_134);
             rule__JvmWildcardTypeReference__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -64668,23 +64401,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:19777:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:19692:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19781:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
-            // InternalPerspectiveDsl.g:19782:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:19696:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
+            // InternalPerspectiveDsl.g:19697:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:19782:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
-            // InternalPerspectiveDsl.g:19783:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:19697:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:19698:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:19784:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
-            // InternalPerspectiveDsl.g:19784:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+            // InternalPerspectiveDsl.g:19699:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:19699:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();
@@ -64719,14 +64452,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
-    // InternalPerspectiveDsl.g:19792:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
+    // InternalPerspectiveDsl.g:19707:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19796:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
-            // InternalPerspectiveDsl.g:19797:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+            // InternalPerspectiveDsl.g:19711:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
+            // InternalPerspectiveDsl.g:19712:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_0__1__Impl();
@@ -64752,37 +64485,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
-    // InternalPerspectiveDsl.g:19803:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
+    // InternalPerspectiveDsl.g:19718:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19807:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
-            // InternalPerspectiveDsl.g:19808:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalPerspectiveDsl.g:19722:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
+            // InternalPerspectiveDsl.g:19723:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
             {
-            // InternalPerspectiveDsl.g:19808:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
-            // InternalPerspectiveDsl.g:19809:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            // InternalPerspectiveDsl.g:19723:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalPerspectiveDsl.g:19724:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
             }
-            // InternalPerspectiveDsl.g:19810:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            // InternalPerspectiveDsl.g:19725:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
             loop141:
             do {
                 int alt141=2;
                 int LA141_0 = input.LA(1);
 
-                if ( (LA141_0==117) ) {
+                if ( (LA141_0==116) ) {
                     alt141=1;
                 }
 
 
                 switch (alt141) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19810:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+            	    // InternalPerspectiveDsl.g:19725:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
             	    {
-            	    pushFollow(FOLLOW_136);
+            	    pushFollow(FOLLOW_135);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();
 
             	    state._fsp--;
@@ -64821,16 +64554,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
-    // InternalPerspectiveDsl.g:19819:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
+    // InternalPerspectiveDsl.g:19734:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19823:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
-            // InternalPerspectiveDsl.g:19824:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
+            // InternalPerspectiveDsl.g:19738:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
+            // InternalPerspectiveDsl.g:19739:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
             {
-            pushFollow(FOLLOW_135);
+            pushFollow(FOLLOW_134);
             rule__JvmWildcardTypeReference__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -64859,23 +64592,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
-    // InternalPerspectiveDsl.g:19831:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:19746:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19835:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
-            // InternalPerspectiveDsl.g:19836:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalPerspectiveDsl.g:19750:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
+            // InternalPerspectiveDsl.g:19751:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:19836:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
-            // InternalPerspectiveDsl.g:19837:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalPerspectiveDsl.g:19751:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalPerspectiveDsl.g:19752:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:19838:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
-            // InternalPerspectiveDsl.g:19838:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+            // InternalPerspectiveDsl.g:19753:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalPerspectiveDsl.g:19753:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();
@@ -64910,14 +64643,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
-    // InternalPerspectiveDsl.g:19846:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
+    // InternalPerspectiveDsl.g:19761:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19850:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
-            // InternalPerspectiveDsl.g:19851:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+            // InternalPerspectiveDsl.g:19765:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
+            // InternalPerspectiveDsl.g:19766:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_1__1__Impl();
@@ -64943,37 +64676,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
-    // InternalPerspectiveDsl.g:19857:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
+    // InternalPerspectiveDsl.g:19772:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19861:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
-            // InternalPerspectiveDsl.g:19862:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalPerspectiveDsl.g:19776:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
+            // InternalPerspectiveDsl.g:19777:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
             {
-            // InternalPerspectiveDsl.g:19862:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
-            // InternalPerspectiveDsl.g:19863:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            // InternalPerspectiveDsl.g:19777:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalPerspectiveDsl.g:19778:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
             }
-            // InternalPerspectiveDsl.g:19864:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            // InternalPerspectiveDsl.g:19779:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
             loop142:
             do {
                 int alt142=2;
                 int LA142_0 = input.LA(1);
 
-                if ( (LA142_0==117) ) {
+                if ( (LA142_0==116) ) {
                     alt142=1;
                 }
 
 
                 switch (alt142) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:19864:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+            	    // InternalPerspectiveDsl.g:19779:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
             	    {
-            	    pushFollow(FOLLOW_136);
+            	    pushFollow(FOLLOW_135);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();
 
             	    state._fsp--;
@@ -65012,16 +64745,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0"
-    // InternalPerspectiveDsl.g:19873:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+    // InternalPerspectiveDsl.g:19788:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
     public final void rule__JvmUpperBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19877:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
-            // InternalPerspectiveDsl.g:19878:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+            // InternalPerspectiveDsl.g:19792:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+            // InternalPerspectiveDsl.g:19793:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__JvmUpperBound__Group__0__Impl();
 
             state._fsp--;
@@ -65050,17 +64783,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19885:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+    // InternalPerspectiveDsl.g:19800:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
     public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19889:1: ( ( 'extends' ) )
-            // InternalPerspectiveDsl.g:19890:1: ( 'extends' )
+            // InternalPerspectiveDsl.g:19804:1: ( ( 'extends' ) )
+            // InternalPerspectiveDsl.g:19805:1: ( 'extends' )
             {
-            // InternalPerspectiveDsl.g:19890:1: ( 'extends' )
-            // InternalPerspectiveDsl.g:19891:2: 'extends'
+            // InternalPerspectiveDsl.g:19805:1: ( 'extends' )
+            // InternalPerspectiveDsl.g:19806:2: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
@@ -65091,14 +64824,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1"
-    // InternalPerspectiveDsl.g:19900:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19815:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
     public final void rule__JvmUpperBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19904:1: ( rule__JvmUpperBound__Group__1__Impl )
-            // InternalPerspectiveDsl.g:19905:2: rule__JvmUpperBound__Group__1__Impl
+            // InternalPerspectiveDsl.g:19819:1: ( rule__JvmUpperBound__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19820:2: rule__JvmUpperBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__1__Impl();
@@ -65124,23 +64857,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19911:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:19826:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19915:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:19916:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19830:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:19831:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:19916:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:19917:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19831:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19832:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:19918:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:19918:3: rule__JvmUpperBound__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:19833:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19833:3: rule__JvmUpperBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__TypeReferenceAssignment_1();
@@ -65175,16 +64908,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
-    // InternalPerspectiveDsl.g:19927:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+    // InternalPerspectiveDsl.g:19842:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
     public final void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19931:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
-            // InternalPerspectiveDsl.g:19932:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+            // InternalPerspectiveDsl.g:19846:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+            // InternalPerspectiveDsl.g:19847:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__JvmUpperBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -65213,22 +64946,22 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19939:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalPerspectiveDsl.g:19854:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19943:1: ( ( '&' ) )
-            // InternalPerspectiveDsl.g:19944:1: ( '&' )
+            // InternalPerspectiveDsl.g:19858:1: ( ( '&' ) )
+            // InternalPerspectiveDsl.g:19859:1: ( '&' )
             {
-            // InternalPerspectiveDsl.g:19944:1: ( '&' )
-            // InternalPerspectiveDsl.g:19945:2: '&'
+            // InternalPerspectiveDsl.g:19859:1: ( '&' )
+            // InternalPerspectiveDsl.g:19860:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,117,FOLLOW_2); if (state.failed) return ;
+            match(input,116,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -65254,14 +64987,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
-    // InternalPerspectiveDsl.g:19954:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19869:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
     public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19958:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
-            // InternalPerspectiveDsl.g:19959:2: rule__JvmUpperBoundAnded__Group__1__Impl
+            // InternalPerspectiveDsl.g:19873:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19874:2: rule__JvmUpperBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__1__Impl();
@@ -65287,23 +65020,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
-    // InternalPerspectiveDsl.g:19965:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:19880:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19969:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:19970:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19884:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:19885:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:19970:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:19971:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19885:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19886:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:19972:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:19972:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:19887:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19887:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
@@ -65338,16 +65071,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0"
-    // InternalPerspectiveDsl.g:19981:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+    // InternalPerspectiveDsl.g:19896:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
     public final void rule__JvmLowerBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19985:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
-            // InternalPerspectiveDsl.g:19986:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+            // InternalPerspectiveDsl.g:19900:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+            // InternalPerspectiveDsl.g:19901:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__JvmLowerBound__Group__0__Impl();
 
             state._fsp--;
@@ -65376,17 +65109,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
-    // InternalPerspectiveDsl.g:19993:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+    // InternalPerspectiveDsl.g:19908:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
     public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:19997:1: ( ( 'super' ) )
-            // InternalPerspectiveDsl.g:19998:1: ( 'super' )
+            // InternalPerspectiveDsl.g:19912:1: ( ( 'super' ) )
+            // InternalPerspectiveDsl.g:19913:1: ( 'super' )
             {
-            // InternalPerspectiveDsl.g:19998:1: ( 'super' )
-            // InternalPerspectiveDsl.g:19999:2: 'super'
+            // InternalPerspectiveDsl.g:19913:1: ( 'super' )
+            // InternalPerspectiveDsl.g:19914:2: 'super'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
@@ -65417,14 +65150,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1"
-    // InternalPerspectiveDsl.g:20008:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19923:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
     public final void rule__JvmLowerBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20012:1: ( rule__JvmLowerBound__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20013:2: rule__JvmLowerBound__Group__1__Impl
+            // InternalPerspectiveDsl.g:19927:1: ( rule__JvmLowerBound__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19928:2: rule__JvmLowerBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__1__Impl();
@@ -65450,23 +65183,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20019:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:19934:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20023:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:20024:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19938:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:19939:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:20024:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:20025:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19939:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19940:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:20026:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:20026:3: rule__JvmLowerBound__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:19941:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19941:3: rule__JvmLowerBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__TypeReferenceAssignment_1();
@@ -65501,16 +65234,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
-    // InternalPerspectiveDsl.g:20035:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
+    // InternalPerspectiveDsl.g:19950:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
     public final void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20039:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
-            // InternalPerspectiveDsl.g:20040:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
+            // InternalPerspectiveDsl.g:19954:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
+            // InternalPerspectiveDsl.g:19955:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__JvmLowerBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -65539,22 +65272,22 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20047:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalPerspectiveDsl.g:19962:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20051:1: ( ( '&' ) )
-            // InternalPerspectiveDsl.g:20052:1: ( '&' )
+            // InternalPerspectiveDsl.g:19966:1: ( ( '&' ) )
+            // InternalPerspectiveDsl.g:19967:1: ( '&' )
             {
-            // InternalPerspectiveDsl.g:20052:1: ( '&' )
-            // InternalPerspectiveDsl.g:20053:2: '&'
+            // InternalPerspectiveDsl.g:19967:1: ( '&' )
+            // InternalPerspectiveDsl.g:19968:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,117,FOLLOW_2); if (state.failed) return ;
+            match(input,116,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -65580,14 +65313,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
-    // InternalPerspectiveDsl.g:20062:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:19977:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
     public final void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20066:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20067:2: rule__JvmLowerBoundAnded__Group__1__Impl
+            // InternalPerspectiveDsl.g:19981:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
+            // InternalPerspectiveDsl.g:19982:2: rule__JvmLowerBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__1__Impl();
@@ -65613,23 +65346,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20073:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:19988:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20077:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:20078:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19992:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:19993:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:20078:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalPerspectiveDsl.g:20079:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19993:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalPerspectiveDsl.g:19994:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:20080:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
-            // InternalPerspectiveDsl.g:20080:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+            // InternalPerspectiveDsl.g:19995:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalPerspectiveDsl.g:19995:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();
@@ -65664,16 +65397,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
-    // InternalPerspectiveDsl.g:20089:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+    // InternalPerspectiveDsl.g:20004:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
     public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20093:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
-            // InternalPerspectiveDsl.g:20094:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+            // InternalPerspectiveDsl.g:20008:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+            // InternalPerspectiveDsl.g:20009:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
             {
-            pushFollow(FOLLOW_130);
+            pushFollow(FOLLOW_129);
             rule__QualifiedNameWithWildcard__Group__0__Impl();
 
             state._fsp--;
@@ -65702,17 +65435,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20101:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+    // InternalPerspectiveDsl.g:20016:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
     public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20105:1: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:20106:1: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:20020:1: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:20021:1: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:20106:1: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:20107:2: ruleQualifiedName
+            // InternalPerspectiveDsl.g:20021:1: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:20022:2: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
@@ -65747,16 +65480,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
-    // InternalPerspectiveDsl.g:20116:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+    // InternalPerspectiveDsl.g:20031:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
     public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20120:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
-            // InternalPerspectiveDsl.g:20121:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+            // InternalPerspectiveDsl.g:20035:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+            // InternalPerspectiveDsl.g:20036:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
             {
-            pushFollow(FOLLOW_137);
+            pushFollow(FOLLOW_136);
             rule__QualifiedNameWithWildcard__Group__1__Impl();
 
             state._fsp--;
@@ -65785,17 +65518,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20128:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:20043:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20132:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:20133:1: ( '.' )
+            // InternalPerspectiveDsl.g:20047:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:20048:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:20133:1: ( '.' )
-            // InternalPerspectiveDsl.g:20134:2: '.'
+            // InternalPerspectiveDsl.g:20048:1: ( '.' )
+            // InternalPerspectiveDsl.g:20049:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
@@ -65826,14 +65559,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
-    // InternalPerspectiveDsl.g:20143:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:20058:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
     public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20147:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
-            // InternalPerspectiveDsl.g:20148:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+            // InternalPerspectiveDsl.g:20062:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+            // InternalPerspectiveDsl.g:20063:2: rule__QualifiedNameWithWildcard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__2__Impl();
@@ -65859,17 +65592,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
-    // InternalPerspectiveDsl.g:20154:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+    // InternalPerspectiveDsl.g:20069:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20158:1: ( ( '*' ) )
-            // InternalPerspectiveDsl.g:20159:1: ( '*' )
+            // InternalPerspectiveDsl.g:20073:1: ( ( '*' ) )
+            // InternalPerspectiveDsl.g:20074:1: ( '*' )
             {
-            // InternalPerspectiveDsl.g:20159:1: ( '*' )
-            // InternalPerspectiveDsl.g:20160:2: '*'
+            // InternalPerspectiveDsl.g:20074:1: ( '*' )
+            // InternalPerspectiveDsl.g:20075:2: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
@@ -65900,16 +65633,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
-    // InternalPerspectiveDsl.g:20170:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
+    // InternalPerspectiveDsl.g:20085:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
     public final void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20174:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
-            // InternalPerspectiveDsl.g:20175:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
+            // InternalPerspectiveDsl.g:20089:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
+            // InternalPerspectiveDsl.g:20090:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
             {
-            pushFollow(FOLLOW_130);
+            pushFollow(FOLLOW_129);
             rule__QualifiedNameInStaticImport__Group__0__Impl();
 
             state._fsp--;
@@ -65938,17 +65671,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
-    // InternalPerspectiveDsl.g:20182:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:20097:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20186:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:20187:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:20101:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:20102:1: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:20187:1: ( ruleValidID )
-            // InternalPerspectiveDsl.g:20188:2: ruleValidID
+            // InternalPerspectiveDsl.g:20102:1: ( ruleValidID )
+            // InternalPerspectiveDsl.g:20103:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
@@ -65983,14 +65716,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
-    // InternalPerspectiveDsl.g:20197:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:20112:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
     public final void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20201:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
-            // InternalPerspectiveDsl.g:20202:2: rule__QualifiedNameInStaticImport__Group__1__Impl
+            // InternalPerspectiveDsl.g:20116:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
+            // InternalPerspectiveDsl.g:20117:2: rule__QualifiedNameInStaticImport__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameInStaticImport__Group__1__Impl();
@@ -66016,17 +65749,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
-    // InternalPerspectiveDsl.g:20208:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
+    // InternalPerspectiveDsl.g:20123:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20212:1: ( ( '.' ) )
-            // InternalPerspectiveDsl.g:20213:1: ( '.' )
+            // InternalPerspectiveDsl.g:20127:1: ( ( '.' ) )
+            // InternalPerspectiveDsl.g:20128:1: ( '.' )
             {
-            // InternalPerspectiveDsl.g:20213:1: ( '.' )
-            // InternalPerspectiveDsl.g:20214:2: '.'
+            // InternalPerspectiveDsl.g:20128:1: ( '.' )
+            // InternalPerspectiveDsl.g:20129:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
@@ -66057,17 +65790,17 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5"
-    // InternalPerspectiveDsl.g:20224:1: rule__Perspective__UnorderedGroup_5 : ( rule__Perspective__UnorderedGroup_5__0 )? ;
+    // InternalPerspectiveDsl.g:20139:1: rule__Perspective__UnorderedGroup_5 : ( rule__Perspective__UnorderedGroup_5__0 )? ;
     public final void rule__Perspective__UnorderedGroup_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5());
         	
         try {
-            // InternalPerspectiveDsl.g:20229:1: ( ( rule__Perspective__UnorderedGroup_5__0 )? )
-            // InternalPerspectiveDsl.g:20230:2: ( rule__Perspective__UnorderedGroup_5__0 )?
+            // InternalPerspectiveDsl.g:20144:1: ( ( rule__Perspective__UnorderedGroup_5__0 )? )
+            // InternalPerspectiveDsl.g:20145:2: ( rule__Perspective__UnorderedGroup_5__0 )?
             {
-            // InternalPerspectiveDsl.g:20230:2: ( rule__Perspective__UnorderedGroup_5__0 )?
+            // InternalPerspectiveDsl.g:20145:2: ( rule__Perspective__UnorderedGroup_5__0 )?
             int alt143=2;
             int LA143_0 = input.LA(1);
 
@@ -66115,17 +65848,17 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__Impl"
-    // InternalPerspectiveDsl.g:20238:1: rule__Perspective__UnorderedGroup_5__Impl : ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:20153:1: rule__Perspective__UnorderedGroup_5__Impl : ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) ;
     public final void rule__Perspective__UnorderedGroup_5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:20243:1: ( ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:20244:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20158:1: ( ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:20159:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:20244:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20159:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) ) )
             int alt144=3;
             int LA144_0 = input.LA(1);
 
@@ -66147,28 +65880,28 @@
             }
             switch (alt144) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:20245:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20160:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20245:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20246:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20160:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20161:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Perspective__UnorderedGroup_5__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:20246:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:20247:5: ( ( rule__Perspective__Group_5_0__0 ) )
+                    // InternalPerspectiveDsl.g:20161:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20162:5: ( ( rule__Perspective__Group_5_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20253:5: ( ( rule__Perspective__Group_5_0__0 ) )
-                    // InternalPerspectiveDsl.g:20254:6: ( rule__Perspective__Group_5_0__0 )
+                    // InternalPerspectiveDsl.g:20168:5: ( ( rule__Perspective__Group_5_0__0 ) )
+                    // InternalPerspectiveDsl.g:20169:6: ( rule__Perspective__Group_5_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveAccess().getGroup_5_0()); 
                     }
-                    // InternalPerspectiveDsl.g:20255:6: ( rule__Perspective__Group_5_0__0 )
-                    // InternalPerspectiveDsl.g:20255:7: rule__Perspective__Group_5_0__0
+                    // InternalPerspectiveDsl.g:20170:6: ( rule__Perspective__Group_5_0__0 )
+                    // InternalPerspectiveDsl.g:20170:7: rule__Perspective__Group_5_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_5_0__0();
@@ -66194,28 +65927,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:20260:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20175:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20260:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20261:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20175:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20176:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Perspective__UnorderedGroup_5__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:20261:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:20262:5: ( ( rule__Perspective__Group_5_1__0 ) )
+                    // InternalPerspectiveDsl.g:20176:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20177:5: ( ( rule__Perspective__Group_5_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20268:5: ( ( rule__Perspective__Group_5_1__0 ) )
-                    // InternalPerspectiveDsl.g:20269:6: ( rule__Perspective__Group_5_1__0 )
+                    // InternalPerspectiveDsl.g:20183:5: ( ( rule__Perspective__Group_5_1__0 ) )
+                    // InternalPerspectiveDsl.g:20184:6: ( rule__Perspective__Group_5_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveAccess().getGroup_5_1()); 
                     }
-                    // InternalPerspectiveDsl.g:20270:6: ( rule__Perspective__Group_5_1__0 )
-                    // InternalPerspectiveDsl.g:20270:7: rule__Perspective__Group_5_1__0
+                    // InternalPerspectiveDsl.g:20185:6: ( rule__Perspective__Group_5_1__0 )
+                    // InternalPerspectiveDsl.g:20185:7: rule__Perspective__Group_5_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_5_1__0();
@@ -66241,28 +65974,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:20275:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20190:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20275:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20276:4: {...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20190:3: ({...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20191:4: {...}? => ( ( ( rule__Perspective__Group_5_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Perspective__UnorderedGroup_5__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:20276:107: ( ( ( rule__Perspective__Group_5_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:20277:5: ( ( rule__Perspective__Group_5_2__0 ) )
+                    // InternalPerspectiveDsl.g:20191:107: ( ( ( rule__Perspective__Group_5_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20192:5: ( ( rule__Perspective__Group_5_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20283:5: ( ( rule__Perspective__Group_5_2__0 ) )
-                    // InternalPerspectiveDsl.g:20284:6: ( rule__Perspective__Group_5_2__0 )
+                    // InternalPerspectiveDsl.g:20198:5: ( ( rule__Perspective__Group_5_2__0 ) )
+                    // InternalPerspectiveDsl.g:20199:6: ( rule__Perspective__Group_5_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveAccess().getGroup_5_2()); 
                     }
-                    // InternalPerspectiveDsl.g:20285:6: ( rule__Perspective__Group_5_2__0 )
-                    // InternalPerspectiveDsl.g:20285:7: rule__Perspective__Group_5_2__0
+                    // InternalPerspectiveDsl.g:20200:6: ( rule__Perspective__Group_5_2__0 )
+                    // InternalPerspectiveDsl.g:20200:7: rule__Perspective__Group_5_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Perspective__Group_5_2__0();
@@ -66311,21 +66044,21 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__0"
-    // InternalPerspectiveDsl.g:20298:1: rule__Perspective__UnorderedGroup_5__0 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? ;
+    // InternalPerspectiveDsl.g:20213:1: rule__Perspective__UnorderedGroup_5__0 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? ;
     public final void rule__Perspective__UnorderedGroup_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20302:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? )
-            // InternalPerspectiveDsl.g:20303:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )?
+            // InternalPerspectiveDsl.g:20217:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )? )
+            // InternalPerspectiveDsl.g:20218:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__1 )?
             {
-            pushFollow(FOLLOW_138);
+            pushFollow(FOLLOW_137);
             rule__Perspective__UnorderedGroup_5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20304:2: ( rule__Perspective__UnorderedGroup_5__1 )?
+            // InternalPerspectiveDsl.g:20219:2: ( rule__Perspective__UnorderedGroup_5__1 )?
             int alt145=2;
             int LA145_0 = input.LA(1);
 
@@ -66372,21 +66105,21 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__1"
-    // InternalPerspectiveDsl.g:20310:1: rule__Perspective__UnorderedGroup_5__1 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? ;
+    // InternalPerspectiveDsl.g:20225:1: rule__Perspective__UnorderedGroup_5__1 : rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? ;
     public final void rule__Perspective__UnorderedGroup_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20314:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? )
-            // InternalPerspectiveDsl.g:20315:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )?
+            // InternalPerspectiveDsl.g:20229:1: ( rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )? )
+            // InternalPerspectiveDsl.g:20230:2: rule__Perspective__UnorderedGroup_5__Impl ( rule__Perspective__UnorderedGroup_5__2 )?
             {
-            pushFollow(FOLLOW_138);
+            pushFollow(FOLLOW_137);
             rule__Perspective__UnorderedGroup_5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20316:2: ( rule__Perspective__UnorderedGroup_5__2 )?
+            // InternalPerspectiveDsl.g:20231:2: ( rule__Perspective__UnorderedGroup_5__2 )?
             int alt146=2;
             int LA146_0 = input.LA(1);
 
@@ -66433,14 +66166,14 @@
 
 
     // $ANTLR start "rule__Perspective__UnorderedGroup_5__2"
-    // InternalPerspectiveDsl.g:20322:1: rule__Perspective__UnorderedGroup_5__2 : rule__Perspective__UnorderedGroup_5__Impl ;
+    // InternalPerspectiveDsl.g:20237:1: rule__Perspective__UnorderedGroup_5__2 : rule__Perspective__UnorderedGroup_5__Impl ;
     public final void rule__Perspective__UnorderedGroup_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20326:1: ( rule__Perspective__UnorderedGroup_5__Impl )
-            // InternalPerspectiveDsl.g:20327:2: rule__Perspective__UnorderedGroup_5__Impl
+            // InternalPerspectiveDsl.g:20241:1: ( rule__Perspective__UnorderedGroup_5__Impl )
+            // InternalPerspectiveDsl.g:20242:2: rule__Perspective__UnorderedGroup_5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Perspective__UnorderedGroup_5__Impl();
@@ -66466,17 +66199,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3"
-    // InternalPerspectiveDsl.g:20334:1: rule__PerspectiveSashContainer__UnorderedGroup_3 : ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? ;
+    // InternalPerspectiveDsl.g:20249:1: rule__PerspectiveSashContainer__UnorderedGroup_3 : ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3());
         	
         try {
-            // InternalPerspectiveDsl.g:20339:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? )
-            // InternalPerspectiveDsl.g:20340:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:20254:1: ( ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )? )
+            // InternalPerspectiveDsl.g:20255:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
             {
-            // InternalPerspectiveDsl.g:20340:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:20255:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )?
             int alt147=2;
             int LA147_0 = input.LA(1);
 
@@ -66527,17 +66260,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl"
-    // InternalPerspectiveDsl.g:20348:1: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:20263:1: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:20353:1: ( ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:20354:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20268:1: ( ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:20269:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:20354:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20269:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) ) )
             int alt148=4;
             int LA148_0 = input.LA(1);
 
@@ -66562,28 +66295,28 @@
             }
             switch (alt148) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:20355:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20270:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20355:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20356:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20270:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20271:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:20356:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:20357:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:20271:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20272:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20363:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:20364:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:20278:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:20279:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:20365:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:20365:7: rule__PerspectiveSashContainer__Group_3_0__0
+                    // InternalPerspectiveDsl.g:20280:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:20280:7: rule__PerspectiveSashContainer__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_0__0();
@@ -66609,28 +66342,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:20370:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20285:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20370:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20371:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20285:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20286:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:20371:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:20372:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:20286:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20287:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20378:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:20379:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:20293:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:20294:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:20380:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:20380:7: rule__PerspectiveSashContainer__Group_3_1__0
+                    // InternalPerspectiveDsl.g:20295:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:20295:7: rule__PerspectiveSashContainer__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_1__0();
@@ -66656,28 +66389,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:20385:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20300:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20385:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20386:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20300:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20301:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:20386:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:20387:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:20301:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20302:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20393:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
-                    // InternalPerspectiveDsl.g:20394:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:20308:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:20309:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_2()); 
                     }
-                    // InternalPerspectiveDsl.g:20395:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
-                    // InternalPerspectiveDsl.g:20395:7: rule__PerspectiveSashContainer__Group_3_2__0
+                    // InternalPerspectiveDsl.g:20310:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:20310:7: rule__PerspectiveSashContainer__Group_3_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_2__0();
@@ -66703,28 +66436,28 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:20400:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20315:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20400:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20401:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:20315:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20316:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSashContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3)");
                     }
-                    // InternalPerspectiveDsl.g:20401:120: ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
-                    // InternalPerspectiveDsl.g:20402:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:20316:120: ( ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:20317:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 3);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20408:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
-                    // InternalPerspectiveDsl.g:20409:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:20323:5: ( ( rule__PerspectiveSashContainer__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:20324:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_3()); 
                     }
-                    // InternalPerspectiveDsl.g:20410:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
-                    // InternalPerspectiveDsl.g:20410:7: rule__PerspectiveSashContainer__Group_3_3__0
+                    // InternalPerspectiveDsl.g:20325:6: ( rule__PerspectiveSashContainer__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:20325:7: rule__PerspectiveSashContainer__Group_3_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSashContainer__Group_3_3__0();
@@ -66773,21 +66506,21 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__0"
-    // InternalPerspectiveDsl.g:20423:1: rule__PerspectiveSashContainer__UnorderedGroup_3__0 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? ;
+    // InternalPerspectiveDsl.g:20338:1: rule__PerspectiveSashContainer__UnorderedGroup_3__0 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20427:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? )
-            // InternalPerspectiveDsl.g:20428:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:20342:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )? )
+            // InternalPerspectiveDsl.g:20343:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
             {
-            pushFollow(FOLLOW_139);
+            pushFollow(FOLLOW_138);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20429:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:20344:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )?
             int alt149=2;
             int LA149_0 = input.LA(1);
 
@@ -66837,21 +66570,21 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__1"
-    // InternalPerspectiveDsl.g:20435:1: rule__PerspectiveSashContainer__UnorderedGroup_3__1 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? ;
+    // InternalPerspectiveDsl.g:20350:1: rule__PerspectiveSashContainer__UnorderedGroup_3__1 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20439:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? )
-            // InternalPerspectiveDsl.g:20440:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:20354:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )? )
+            // InternalPerspectiveDsl.g:20355:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
             {
-            pushFollow(FOLLOW_139);
+            pushFollow(FOLLOW_138);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20441:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:20356:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )?
             int alt150=2;
             int LA150_0 = input.LA(1);
 
@@ -66901,21 +66634,21 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__2"
-    // InternalPerspectiveDsl.g:20447:1: rule__PerspectiveSashContainer__UnorderedGroup_3__2 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? ;
+    // InternalPerspectiveDsl.g:20362:1: rule__PerspectiveSashContainer__UnorderedGroup_3__2 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20451:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? )
-            // InternalPerspectiveDsl.g:20452:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
+            // InternalPerspectiveDsl.g:20366:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )? )
+            // InternalPerspectiveDsl.g:20367:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
             {
-            pushFollow(FOLLOW_139);
+            pushFollow(FOLLOW_138);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20453:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
+            // InternalPerspectiveDsl.g:20368:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )?
             int alt151=2;
             int LA151_0 = input.LA(1);
 
@@ -66965,14 +66698,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__UnorderedGroup_3__3"
-    // InternalPerspectiveDsl.g:20459:1: rule__PerspectiveSashContainer__UnorderedGroup_3__3 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ;
+    // InternalPerspectiveDsl.g:20374:1: rule__PerspectiveSashContainer__UnorderedGroup_3__3 : rule__PerspectiveSashContainer__UnorderedGroup_3__Impl ;
     public final void rule__PerspectiveSashContainer__UnorderedGroup_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20463:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl )
-            // InternalPerspectiveDsl.g:20464:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl
+            // InternalPerspectiveDsl.g:20378:1: ( rule__PerspectiveSashContainer__UnorderedGroup_3__Impl )
+            // InternalPerspectiveDsl.g:20379:2: rule__PerspectiveSashContainer__UnorderedGroup_3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSashContainer__UnorderedGroup_3__Impl();
@@ -66998,17 +66731,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3"
-    // InternalPerspectiveDsl.g:20471:1: rule__PerspectivePartStack__UnorderedGroup_3 : ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? ;
+    // InternalPerspectiveDsl.g:20386:1: rule__PerspectivePartStack__UnorderedGroup_3 : ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3());
         	
         try {
-            // InternalPerspectiveDsl.g:20476:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? )
-            // InternalPerspectiveDsl.g:20477:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:20391:1: ( ( rule__PerspectivePartStack__UnorderedGroup_3__0 )? )
+            // InternalPerspectiveDsl.g:20392:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
             {
-            // InternalPerspectiveDsl.g:20477:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:20392:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )?
             int alt152=2;
             int LA152_0 = input.LA(1);
 
@@ -67056,17 +66789,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__Impl"
-    // InternalPerspectiveDsl.g:20485:1: rule__PerspectivePartStack__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:20400:1: rule__PerspectivePartStack__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) ) ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:20490:1: ( ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:20491:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20405:1: ( ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:20406:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:20491:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20406:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) ) )
             int alt153=3;
             int LA153_0 = input.LA(1);
 
@@ -67088,28 +66821,28 @@
             }
             switch (alt153) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:20492:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20407:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20492:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20493:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20407:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20408:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePartStack__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:20493:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:20494:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:20408:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20409:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20500:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:20501:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:20415:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:20416:6: ( rule__PerspectivePartStack__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:20502:6: ( rule__PerspectivePartStack__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:20502:7: rule__PerspectivePartStack__Group_3_0__0
+                    // InternalPerspectiveDsl.g:20417:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:20417:7: rule__PerspectivePartStack__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePartStack__Group_3_0__0();
@@ -67135,28 +66868,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:20507:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20422:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20507:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20508:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20422:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20423:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePartStack__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:20508:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:20509:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:20423:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20424:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20515:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:20516:6: ( rule__PerspectivePartStack__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:20430:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:20431:6: ( rule__PerspectivePartStack__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:20517:6: ( rule__PerspectivePartStack__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:20517:7: rule__PerspectivePartStack__Group_3_1__0
+                    // InternalPerspectiveDsl.g:20432:6: ( rule__PerspectivePartStack__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:20432:7: rule__PerspectivePartStack__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePartStack__Group_3_1__0();
@@ -67182,28 +66915,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:20522:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20437:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20522:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20523:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20437:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20438:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePartStack__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:20523:116: ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:20524:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:20438:116: ( ( ( rule__PerspectivePartStack__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20439:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20530:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
-                    // InternalPerspectiveDsl.g:20531:6: ( rule__PerspectivePartStack__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:20445:5: ( ( rule__PerspectivePartStack__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:20446:6: ( rule__PerspectivePartStack__Group_3_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_2()); 
                     }
-                    // InternalPerspectiveDsl.g:20532:6: ( rule__PerspectivePartStack__Group_3_2__0 )
-                    // InternalPerspectiveDsl.g:20532:7: rule__PerspectivePartStack__Group_3_2__0
+                    // InternalPerspectiveDsl.g:20447:6: ( rule__PerspectivePartStack__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:20447:7: rule__PerspectivePartStack__Group_3_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePartStack__Group_3_2__0();
@@ -67252,21 +66985,21 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__0"
-    // InternalPerspectiveDsl.g:20545:1: rule__PerspectivePartStack__UnorderedGroup_3__0 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? ;
+    // InternalPerspectiveDsl.g:20460:1: rule__PerspectivePartStack__UnorderedGroup_3__0 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20549:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? )
-            // InternalPerspectiveDsl.g:20550:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:20464:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )? )
+            // InternalPerspectiveDsl.g:20465:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
             {
-            pushFollow(FOLLOW_140);
+            pushFollow(FOLLOW_139);
             rule__PerspectivePartStack__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20551:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:20466:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )?
             int alt154=2;
             int LA154_0 = input.LA(1);
 
@@ -67313,21 +67046,21 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__1"
-    // InternalPerspectiveDsl.g:20557:1: rule__PerspectivePartStack__UnorderedGroup_3__1 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? ;
+    // InternalPerspectiveDsl.g:20472:1: rule__PerspectivePartStack__UnorderedGroup_3__1 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20561:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? )
-            // InternalPerspectiveDsl.g:20562:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:20476:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )? )
+            // InternalPerspectiveDsl.g:20477:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
             {
-            pushFollow(FOLLOW_140);
+            pushFollow(FOLLOW_139);
             rule__PerspectivePartStack__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20563:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:20478:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )?
             int alt155=2;
             int LA155_0 = input.LA(1);
 
@@ -67374,14 +67107,14 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__UnorderedGroup_3__2"
-    // InternalPerspectiveDsl.g:20569:1: rule__PerspectivePartStack__UnorderedGroup_3__2 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ;
+    // InternalPerspectiveDsl.g:20484:1: rule__PerspectivePartStack__UnorderedGroup_3__2 : rule__PerspectivePartStack__UnorderedGroup_3__Impl ;
     public final void rule__PerspectivePartStack__UnorderedGroup_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20573:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl )
-            // InternalPerspectiveDsl.g:20574:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl
+            // InternalPerspectiveDsl.g:20488:1: ( rule__PerspectivePartStack__UnorderedGroup_3__Impl )
+            // InternalPerspectiveDsl.g:20489:2: rule__PerspectivePartStack__UnorderedGroup_3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePartStack__UnorderedGroup_3__Impl();
@@ -67407,17 +67140,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3"
-    // InternalPerspectiveDsl.g:20581:1: rule__PerspectivePart__UnorderedGroup_3 : ( rule__PerspectivePart__UnorderedGroup_3__0 )? ;
+    // InternalPerspectiveDsl.g:20496:1: rule__PerspectivePart__UnorderedGroup_3 : ( rule__PerspectivePart__UnorderedGroup_3__0 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3());
         	
         try {
-            // InternalPerspectiveDsl.g:20586:1: ( ( rule__PerspectivePart__UnorderedGroup_3__0 )? )
-            // InternalPerspectiveDsl.g:20587:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:20501:1: ( ( rule__PerspectivePart__UnorderedGroup_3__0 )? )
+            // InternalPerspectiveDsl.g:20502:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
             {
-            // InternalPerspectiveDsl.g:20587:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
+            // InternalPerspectiveDsl.g:20502:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )?
             int alt156=2;
             int LA156_0 = input.LA(1);
 
@@ -67433,7 +67166,7 @@
             else if ( LA156_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                 alt156=1;
             }
-            else if ( LA156_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+            else if ( LA156_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                 alt156=1;
             }
             switch (alt156) {
@@ -67471,17 +67204,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__Impl"
-    // InternalPerspectiveDsl.g:20595:1: rule__PerspectivePart__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:20510:1: rule__PerspectivePart__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) ;
     public final void rule__PerspectivePart__UnorderedGroup_3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:20600:1: ( ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:20601:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20515:1: ( ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:20516:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:20601:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20516:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) ) )
             int alt157=5;
             int LA157_0 = input.LA(1);
 
@@ -67497,7 +67230,7 @@
             else if ( LA157_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                 alt157=4;
             }
-            else if ( LA157_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+            else if ( LA157_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                 alt157=5;
             }
             else {
@@ -67509,28 +67242,28 @@
             }
             switch (alt157) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:20602:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20517:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20602:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20603:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20517:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20518:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:20603:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:20604:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:20518:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20519:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20610:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
-                    // InternalPerspectiveDsl.g:20611:6: ( rule__PerspectivePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:20525:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+                    // InternalPerspectiveDsl.g:20526:6: ( rule__PerspectivePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_0()); 
                     }
-                    // InternalPerspectiveDsl.g:20612:6: ( rule__PerspectivePart__Group_3_0__0 )
-                    // InternalPerspectiveDsl.g:20612:7: rule__PerspectivePart__Group_3_0__0
+                    // InternalPerspectiveDsl.g:20527:6: ( rule__PerspectivePart__Group_3_0__0 )
+                    // InternalPerspectiveDsl.g:20527:7: rule__PerspectivePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_0__0();
@@ -67556,28 +67289,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:20617:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20532:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20617:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20618:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20532:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20533:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:20618:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:20619:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:20533:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20534:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20625:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
-                    // InternalPerspectiveDsl.g:20626:6: ( rule__PerspectivePart__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:20540:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+                    // InternalPerspectiveDsl.g:20541:6: ( rule__PerspectivePart__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_1()); 
                     }
-                    // InternalPerspectiveDsl.g:20627:6: ( rule__PerspectivePart__Group_3_1__0 )
-                    // InternalPerspectiveDsl.g:20627:7: rule__PerspectivePart__Group_3_1__0
+                    // InternalPerspectiveDsl.g:20542:6: ( rule__PerspectivePart__Group_3_1__0 )
+                    // InternalPerspectiveDsl.g:20542:7: rule__PerspectivePart__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_1__0();
@@ -67603,28 +67336,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:20632:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20547:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20632:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20633:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20547:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20548:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2)");
                     }
-                    // InternalPerspectiveDsl.g:20633:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
-                    // InternalPerspectiveDsl.g:20634:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:20548:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+                    // InternalPerspectiveDsl.g:20549:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20640:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
-                    // InternalPerspectiveDsl.g:20641:6: ( rule__PerspectivePart__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:20555:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+                    // InternalPerspectiveDsl.g:20556:6: ( rule__PerspectivePart__Group_3_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_2()); 
                     }
-                    // InternalPerspectiveDsl.g:20642:6: ( rule__PerspectivePart__Group_3_2__0 )
-                    // InternalPerspectiveDsl.g:20642:7: rule__PerspectivePart__Group_3_2__0
+                    // InternalPerspectiveDsl.g:20557:6: ( rule__PerspectivePart__Group_3_2__0 )
+                    // InternalPerspectiveDsl.g:20557:7: rule__PerspectivePart__Group_3_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_2__0();
@@ -67650,28 +67383,28 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:20647:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20562:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20647:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20648:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:20562:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20563:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3)");
                     }
-                    // InternalPerspectiveDsl.g:20648:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
-                    // InternalPerspectiveDsl.g:20649:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:20563:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+                    // InternalPerspectiveDsl.g:20564:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20655:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
-                    // InternalPerspectiveDsl.g:20656:6: ( rule__PerspectivePart__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:20570:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+                    // InternalPerspectiveDsl.g:20571:6: ( rule__PerspectivePart__Group_3_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getGroup_3_3()); 
                     }
-                    // InternalPerspectiveDsl.g:20657:6: ( rule__PerspectivePart__Group_3_3__0 )
-                    // InternalPerspectiveDsl.g:20657:7: rule__PerspectivePart__Group_3_3__0
+                    // InternalPerspectiveDsl.g:20572:6: ( rule__PerspectivePart__Group_3_3__0 )
+                    // InternalPerspectiveDsl.g:20572:7: rule__PerspectivePart__Group_3_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__Group_3_3__0();
@@ -67697,28 +67430,28 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:20662:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
+                    // InternalPerspectiveDsl.g:20577:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20662:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
-                    // InternalPerspectiveDsl.g:20663:4: {...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
+                    // InternalPerspectiveDsl.g:20577:3: ({...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) ) )
+                    // InternalPerspectiveDsl.g:20578:4: {...}? => ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectivePart__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4)");
                     }
-                    // InternalPerspectiveDsl.g:20663:111: ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
-                    // InternalPerspectiveDsl.g:20664:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
+                    // InternalPerspectiveDsl.g:20578:111: ( ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) ) )
+                    // InternalPerspectiveDsl.g:20579:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20670:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
-                    // InternalPerspectiveDsl.g:20671:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
+                    // InternalPerspectiveDsl.g:20585:5: ( ( rule__PerspectivePart__IsClosableAssignment_3_4 ) )
+                    // InternalPerspectiveDsl.g:20586:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectivePartAccess().getIsClosableAssignment_3_4()); 
                     }
-                    // InternalPerspectiveDsl.g:20672:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
-                    // InternalPerspectiveDsl.g:20672:7: rule__PerspectivePart__IsClosableAssignment_3_4
+                    // InternalPerspectiveDsl.g:20587:6: ( rule__PerspectivePart__IsClosableAssignment_3_4 )
+                    // InternalPerspectiveDsl.g:20587:7: rule__PerspectivePart__IsClosableAssignment_3_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectivePart__IsClosableAssignment_3_4();
@@ -67767,21 +67500,21 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__0"
-    // InternalPerspectiveDsl.g:20685:1: rule__PerspectivePart__UnorderedGroup_3__0 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? ;
+    // InternalPerspectiveDsl.g:20600:1: rule__PerspectivePart__UnorderedGroup_3__0 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20689:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? )
-            // InternalPerspectiveDsl.g:20690:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:20604:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )? )
+            // InternalPerspectiveDsl.g:20605:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__1 )?
             {
-            pushFollow(FOLLOW_141);
+            pushFollow(FOLLOW_140);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20691:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )?
+            // InternalPerspectiveDsl.g:20606:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )?
             int alt158=2;
             int LA158_0 = input.LA(1);
 
@@ -67797,7 +67530,7 @@
             else if ( LA158_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                 alt158=1;
             }
-            else if ( LA158_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+            else if ( LA158_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                 alt158=1;
             }
             switch (alt158) {
@@ -67834,21 +67567,21 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__1"
-    // InternalPerspectiveDsl.g:20697:1: rule__PerspectivePart__UnorderedGroup_3__1 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? ;
+    // InternalPerspectiveDsl.g:20612:1: rule__PerspectivePart__UnorderedGroup_3__1 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20701:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? )
-            // InternalPerspectiveDsl.g:20702:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:20616:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )? )
+            // InternalPerspectiveDsl.g:20617:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__2 )?
             {
-            pushFollow(FOLLOW_141);
+            pushFollow(FOLLOW_140);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20703:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )?
+            // InternalPerspectiveDsl.g:20618:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )?
             int alt159=2;
             int LA159_0 = input.LA(1);
 
@@ -67864,7 +67597,7 @@
             else if ( LA159_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                 alt159=1;
             }
-            else if ( LA159_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+            else if ( LA159_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                 alt159=1;
             }
             switch (alt159) {
@@ -67901,21 +67634,21 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__2"
-    // InternalPerspectiveDsl.g:20709:1: rule__PerspectivePart__UnorderedGroup_3__2 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? ;
+    // InternalPerspectiveDsl.g:20624:1: rule__PerspectivePart__UnorderedGroup_3__2 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20713:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? )
-            // InternalPerspectiveDsl.g:20714:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )?
+            // InternalPerspectiveDsl.g:20628:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )? )
+            // InternalPerspectiveDsl.g:20629:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__3 )?
             {
-            pushFollow(FOLLOW_141);
+            pushFollow(FOLLOW_140);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20715:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )?
+            // InternalPerspectiveDsl.g:20630:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )?
             int alt160=2;
             int LA160_0 = input.LA(1);
 
@@ -67931,7 +67664,7 @@
             else if ( LA160_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                 alt160=1;
             }
-            else if ( LA160_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+            else if ( LA160_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                 alt160=1;
             }
             switch (alt160) {
@@ -67968,21 +67701,21 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__3"
-    // InternalPerspectiveDsl.g:20721:1: rule__PerspectivePart__UnorderedGroup_3__3 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? ;
+    // InternalPerspectiveDsl.g:20636:1: rule__PerspectivePart__UnorderedGroup_3__3 : rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? ;
     public final void rule__PerspectivePart__UnorderedGroup_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20725:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? )
-            // InternalPerspectiveDsl.g:20726:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )?
+            // InternalPerspectiveDsl.g:20640:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )? )
+            // InternalPerspectiveDsl.g:20641:2: rule__PerspectivePart__UnorderedGroup_3__Impl ( rule__PerspectivePart__UnorderedGroup_3__4 )?
             {
-            pushFollow(FOLLOW_141);
+            pushFollow(FOLLOW_140);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20727:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )?
+            // InternalPerspectiveDsl.g:20642:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )?
             int alt161=2;
             int LA161_0 = input.LA(1);
 
@@ -67998,7 +67731,7 @@
             else if ( LA161_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
                 alt161=1;
             }
-            else if ( LA161_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
+            else if ( LA161_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 4) ) {
                 alt161=1;
             }
             switch (alt161) {
@@ -68035,14 +67768,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__UnorderedGroup_3__4"
-    // InternalPerspectiveDsl.g:20733:1: rule__PerspectivePart__UnorderedGroup_3__4 : rule__PerspectivePart__UnorderedGroup_3__Impl ;
+    // InternalPerspectiveDsl.g:20648:1: rule__PerspectivePart__UnorderedGroup_3__4 : rule__PerspectivePart__UnorderedGroup_3__Impl ;
     public final void rule__PerspectivePart__UnorderedGroup_3__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20737:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl )
-            // InternalPerspectiveDsl.g:20738:2: rule__PerspectivePart__UnorderedGroup_3__Impl
+            // InternalPerspectiveDsl.g:20652:1: ( rule__PerspectivePart__UnorderedGroup_3__Impl )
+            // InternalPerspectiveDsl.g:20653:2: rule__PerspectivePart__UnorderedGroup_3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__UnorderedGroup_3__Impl();
@@ -68068,24 +67801,24 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4"
-    // InternalPerspectiveDsl.g:20745:1: rule__PerspectiveSearch__UnorderedGroup_4 : ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? ;
+    // InternalPerspectiveDsl.g:20660:1: rule__PerspectiveSearch__UnorderedGroup_4 : ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4());
         	
         try {
-            // InternalPerspectiveDsl.g:20750:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? )
-            // InternalPerspectiveDsl.g:20751:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
+            // InternalPerspectiveDsl.g:20665:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4__0 )? )
+            // InternalPerspectiveDsl.g:20666:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
             {
-            // InternalPerspectiveDsl.g:20751:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
+            // InternalPerspectiveDsl.g:20666:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )?
             int alt162=2;
             int LA162_0 = input.LA(1);
 
-            if ( LA162_0 == 85 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
+            if ( LA162_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
                 alt162=1;
             }
-            else if ( LA162_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
+            else if ( LA162_0 == 85 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
                 alt162=1;
             }
             switch (alt162) {
@@ -68123,24 +67856,24 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4__Impl"
-    // InternalPerspectiveDsl.g:20759:1: rule__PerspectiveSearch__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:20674:1: rule__PerspectiveSearch__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalPerspectiveDsl.g:20764:1: ( ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:20765:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20679:1: ( ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:20680:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:20765:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
+            // InternalPerspectiveDsl.g:20680:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) ) )
             int alt163=2;
             int LA163_0 = input.LA(1);
 
-            if ( LA163_0 == 85 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
+            if ( LA163_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
                 alt163=1;
             }
-            else if ( LA163_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
+            else if ( LA163_0 == 85 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
                 alt163=2;
             }
             else {
@@ -68152,28 +67885,28 @@
             }
             switch (alt163) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:20766:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20681:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20766:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20767:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20681:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20682:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSearch__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0)");
                     }
-                    // InternalPerspectiveDsl.g:20767:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
-                    // InternalPerspectiveDsl.g:20768:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+                    // InternalPerspectiveDsl.g:20682:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+                    // InternalPerspectiveDsl.g:20683:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20774:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
-                    // InternalPerspectiveDsl.g:20775:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+                    // InternalPerspectiveDsl.g:20689:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+                    // InternalPerspectiveDsl.g:20690:6: ( rule__PerspectiveSearch__Group_4_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSearchAccess().getGroup_4_0()); 
                     }
-                    // InternalPerspectiveDsl.g:20776:6: ( rule__PerspectiveSearch__Group_4_0__0 )
-                    // InternalPerspectiveDsl.g:20776:7: rule__PerspectiveSearch__Group_4_0__0
+                    // InternalPerspectiveDsl.g:20691:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+                    // InternalPerspectiveDsl.g:20691:7: rule__PerspectiveSearch__Group_4_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSearch__Group_4_0__0();
@@ -68199,28 +67932,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:20781:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20696:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:20781:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
-                    // InternalPerspectiveDsl.g:20782:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20696:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) ) )
+                    // InternalPerspectiveDsl.g:20697:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__PerspectiveSearch__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1)");
                     }
-                    // InternalPerspectiveDsl.g:20782:113: ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
-                    // InternalPerspectiveDsl.g:20783:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
+                    // InternalPerspectiveDsl.g:20697:113: ( ( ( rule__PerspectiveSearch__Group_4_1__0 ) ) )
+                    // InternalPerspectiveDsl.g:20698:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1);
                     selected = true;
-                    // InternalPerspectiveDsl.g:20789:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
-                    // InternalPerspectiveDsl.g:20790:6: ( rule__PerspectiveSearch__Group_4_1__0 )
+                    // InternalPerspectiveDsl.g:20704:5: ( ( rule__PerspectiveSearch__Group_4_1__0 ) )
+                    // InternalPerspectiveDsl.g:20705:6: ( rule__PerspectiveSearch__Group_4_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPerspectiveSearchAccess().getGroup_4_1()); 
                     }
-                    // InternalPerspectiveDsl.g:20791:6: ( rule__PerspectiveSearch__Group_4_1__0 )
-                    // InternalPerspectiveDsl.g:20791:7: rule__PerspectiveSearch__Group_4_1__0
+                    // InternalPerspectiveDsl.g:20706:6: ( rule__PerspectiveSearch__Group_4_1__0 )
+                    // InternalPerspectiveDsl.g:20706:7: rule__PerspectiveSearch__Group_4_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PerspectiveSearch__Group_4_1__0();
@@ -68269,28 +68002,28 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4__0"
-    // InternalPerspectiveDsl.g:20804:1: rule__PerspectiveSearch__UnorderedGroup_4__0 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? ;
+    // InternalPerspectiveDsl.g:20719:1: rule__PerspectiveSearch__UnorderedGroup_4__0 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20808:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? )
-            // InternalPerspectiveDsl.g:20809:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
+            // InternalPerspectiveDsl.g:20723:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )? )
+            // InternalPerspectiveDsl.g:20724:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
             {
-            pushFollow(FOLLOW_142);
+            pushFollow(FOLLOW_141);
             rule__PerspectiveSearch__UnorderedGroup_4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalPerspectiveDsl.g:20810:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
+            // InternalPerspectiveDsl.g:20725:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )?
             int alt164=2;
             int LA164_0 = input.LA(1);
 
-            if ( LA164_0 == 85 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
+            if ( LA164_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
                 alt164=1;
             }
-            else if ( LA164_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
+            else if ( LA164_0 == 85 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
                 alt164=1;
             }
             switch (alt164) {
@@ -68327,14 +68060,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__UnorderedGroup_4__1"
-    // InternalPerspectiveDsl.g:20816:1: rule__PerspectiveSearch__UnorderedGroup_4__1 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ;
+    // InternalPerspectiveDsl.g:20731:1: rule__PerspectiveSearch__UnorderedGroup_4__1 : rule__PerspectiveSearch__UnorderedGroup_4__Impl ;
     public final void rule__PerspectiveSearch__UnorderedGroup_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20820:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl )
-            // InternalPerspectiveDsl.g:20821:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl
+            // InternalPerspectiveDsl.g:20735:1: ( rule__PerspectiveSearch__UnorderedGroup_4__Impl )
+            // InternalPerspectiveDsl.g:20736:2: rule__PerspectiveSearch__UnorderedGroup_4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__UnorderedGroup_4__Impl();
@@ -68360,17 +68093,17 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__ImportSectionAssignment_0"
-    // InternalPerspectiveDsl.g:20828:1: rule__PerspectiveModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
+    // InternalPerspectiveDsl.g:20743:1: rule__PerspectiveModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
     public final void rule__PerspectiveModel__ImportSectionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20832:1: ( ( ruleXImportSection ) )
-            // InternalPerspectiveDsl.g:20833:2: ( ruleXImportSection )
+            // InternalPerspectiveDsl.g:20747:1: ( ( ruleXImportSection ) )
+            // InternalPerspectiveDsl.g:20748:2: ( ruleXImportSection )
             {
-            // InternalPerspectiveDsl.g:20833:2: ( ruleXImportSection )
-            // InternalPerspectiveDsl.g:20834:3: ruleXImportSection
+            // InternalPerspectiveDsl.g:20748:2: ( ruleXImportSection )
+            // InternalPerspectiveDsl.g:20749:3: ruleXImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); 
@@ -68405,17 +68138,17 @@
 
 
     // $ANTLR start "rule__PerspectiveModel__PackagesAssignment_1"
-    // InternalPerspectiveDsl.g:20843:1: rule__PerspectiveModel__PackagesAssignment_1 : ( rulePerspectivePackage ) ;
+    // InternalPerspectiveDsl.g:20758:1: rule__PerspectiveModel__PackagesAssignment_1 : ( rulePerspectivePackage ) ;
     public final void rule__PerspectiveModel__PackagesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20847:1: ( ( rulePerspectivePackage ) )
-            // InternalPerspectiveDsl.g:20848:2: ( rulePerspectivePackage )
+            // InternalPerspectiveDsl.g:20762:1: ( ( rulePerspectivePackage ) )
+            // InternalPerspectiveDsl.g:20763:2: ( rulePerspectivePackage )
             {
-            // InternalPerspectiveDsl.g:20848:2: ( rulePerspectivePackage )
-            // InternalPerspectiveDsl.g:20849:3: rulePerspectivePackage
+            // InternalPerspectiveDsl.g:20763:2: ( rulePerspectivePackage )
+            // InternalPerspectiveDsl.g:20764:3: rulePerspectivePackage
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveModelAccess().getPackagesPerspectivePackageParserRuleCall_1_0()); 
@@ -68450,17 +68183,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__NameAssignment_2"
-    // InternalPerspectiveDsl.g:20858:1: rule__PerspectivePackage__NameAssignment_2 : ( ruleQualifiedName ) ;
+    // InternalPerspectiveDsl.g:20773:1: rule__PerspectivePackage__NameAssignment_2 : ( ruleQualifiedName ) ;
     public final void rule__PerspectivePackage__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20862:1: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:20863:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:20777:1: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:20778:2: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:20863:2: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:20864:3: ruleQualifiedName
+            // InternalPerspectiveDsl.g:20778:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:20779:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
@@ -68495,17 +68228,17 @@
 
 
     // $ANTLR start "rule__PerspectivePackage__PerspectivesAssignment_3_1"
-    // InternalPerspectiveDsl.g:20873:1: rule__PerspectivePackage__PerspectivesAssignment_3_1 : ( rulePerspective ) ;
+    // InternalPerspectiveDsl.g:20788:1: rule__PerspectivePackage__PerspectivesAssignment_3_1 : ( rulePerspective ) ;
     public final void rule__PerspectivePackage__PerspectivesAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20877:1: ( ( rulePerspective ) )
-            // InternalPerspectiveDsl.g:20878:2: ( rulePerspective )
+            // InternalPerspectiveDsl.g:20792:1: ( ( rulePerspective ) )
+            // InternalPerspectiveDsl.g:20793:2: ( rulePerspective )
             {
-            // InternalPerspectiveDsl.g:20878:2: ( rulePerspective )
-            // InternalPerspectiveDsl.g:20879:3: rulePerspective
+            // InternalPerspectiveDsl.g:20793:2: ( rulePerspective )
+            // InternalPerspectiveDsl.g:20794:3: rulePerspective
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePackageAccess().getPerspectivesPerspectiveParserRuleCall_3_1_0()); 
@@ -68540,17 +68273,17 @@
 
 
     // $ANTLR start "rule__Perspective__NameAssignment_2"
-    // InternalPerspectiveDsl.g:20888:1: rule__Perspective__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalPerspectiveDsl.g:20803:1: rule__Perspective__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__Perspective__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20892:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalPerspectiveDsl.g:20893:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:20807:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalPerspectiveDsl.g:20808:2: ( ruleTRANSLATABLEID )
             {
-            // InternalPerspectiveDsl.g:20893:2: ( ruleTRANSLATABLEID )
-            // InternalPerspectiveDsl.g:20894:3: ruleTRANSLATABLEID
+            // InternalPerspectiveDsl.g:20808:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:20809:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -68585,28 +68318,28 @@
 
 
     // $ANTLR start "rule__Perspective__DescriptionAssignment_3_0"
-    // InternalPerspectiveDsl.g:20903:1: rule__Perspective__DescriptionAssignment_3_0 : ( ( 'describedBy' ) ) ;
+    // InternalPerspectiveDsl.g:20818:1: rule__Perspective__DescriptionAssignment_3_0 : ( ( 'describedBy' ) ) ;
     public final void rule__Perspective__DescriptionAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20907:1: ( ( ( 'describedBy' ) ) )
-            // InternalPerspectiveDsl.g:20908:2: ( ( 'describedBy' ) )
+            // InternalPerspectiveDsl.g:20822:1: ( ( ( 'describedBy' ) ) )
+            // InternalPerspectiveDsl.g:20823:2: ( ( 'describedBy' ) )
             {
-            // InternalPerspectiveDsl.g:20908:2: ( ( 'describedBy' ) )
-            // InternalPerspectiveDsl.g:20909:3: ( 'describedBy' )
+            // InternalPerspectiveDsl.g:20823:2: ( ( 'describedBy' ) )
+            // InternalPerspectiveDsl.g:20824:3: ( 'describedBy' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionDescribedByKeyword_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:20910:3: ( 'describedBy' )
-            // InternalPerspectiveDsl.g:20911:4: 'describedBy'
+            // InternalPerspectiveDsl.g:20825:3: ( 'describedBy' )
+            // InternalPerspectiveDsl.g:20826:4: 'describedBy'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionDescribedByKeyword_3_0_0()); 
             }
-            match(input,118,FOLLOW_2); if (state.failed) return ;
+            match(input,117,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveAccess().getDescriptionDescribedByKeyword_3_0_0()); 
             }
@@ -68638,17 +68371,17 @@
 
 
     // $ANTLR start "rule__Perspective__DescriptionValueAssignment_3_1"
-    // InternalPerspectiveDsl.g:20922:1: rule__Perspective__DescriptionValueAssignment_3_1 : ( ruleTRANSLATABLESTRING ) ;
+    // InternalPerspectiveDsl.g:20837:1: rule__Perspective__DescriptionValueAssignment_3_1 : ( ruleTRANSLATABLESTRING ) ;
     public final void rule__Perspective__DescriptionValueAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20926:1: ( ( ruleTRANSLATABLESTRING ) )
-            // InternalPerspectiveDsl.g:20927:2: ( ruleTRANSLATABLESTRING )
+            // InternalPerspectiveDsl.g:20841:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalPerspectiveDsl.g:20842:2: ( ruleTRANSLATABLESTRING )
             {
-            // InternalPerspectiveDsl.g:20927:2: ( ruleTRANSLATABLESTRING )
-            // InternalPerspectiveDsl.g:20928:3: ruleTRANSLATABLESTRING
+            // InternalPerspectiveDsl.g:20842:2: ( ruleTRANSLATABLESTRING )
+            // InternalPerspectiveDsl.g:20843:3: ruleTRANSLATABLESTRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
@@ -68683,23 +68416,23 @@
 
 
     // $ANTLR start "rule__Perspective__ProcessAssignment_4_1"
-    // InternalPerspectiveDsl.g:20937:1: rule__Perspective__ProcessAssignment_4_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:20852:1: rule__Perspective__ProcessAssignment_4_1 : ( ( RULE_ID ) ) ;
     public final void rule__Perspective__ProcessAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20941:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:20942:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20856:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:20857:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:20942:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:20943:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20857:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20858:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessBlipCrossReference_4_1_0()); 
             }
-            // InternalPerspectiveDsl.g:20944:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:20945:4: RULE_ID
+            // InternalPerspectiveDsl.g:20859:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20860:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getProcessBlipIDTerminalRuleCall_4_1_0_1()); 
@@ -68736,23 +68469,23 @@
 
 
     // $ANTLR start "rule__Perspective__UserTaskAssignment_4_3"
-    // InternalPerspectiveDsl.g:20956:1: rule__Perspective__UserTaskAssignment_4_3 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:20871:1: rule__Perspective__UserTaskAssignment_4_3 : ( ( RULE_ID ) ) ;
     public final void rule__Perspective__UserTaskAssignment_4_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20960:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:20961:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20875:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:20876:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:20961:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:20962:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20876:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20877:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUserTaskBlipUserTaskCrossReference_4_3_0()); 
             }
-            // InternalPerspectiveDsl.g:20963:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:20964:4: RULE_ID
+            // InternalPerspectiveDsl.g:20878:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20879:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getUserTaskBlipUserTaskIDTerminalRuleCall_4_3_0_1()); 
@@ -68789,17 +68522,17 @@
 
 
     // $ANTLR start "rule__Perspective__IconURIAssignment_5_0_1"
-    // InternalPerspectiveDsl.g:20975:1: rule__Perspective__IconURIAssignment_5_0_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:20890:1: rule__Perspective__IconURIAssignment_5_0_1 : ( RULE_STRING ) ;
     public final void rule__Perspective__IconURIAssignment_5_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20979:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:20980:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:20894:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:20895:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:20980:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:20981:3: RULE_STRING
+            // InternalPerspectiveDsl.g:20895:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:20896:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getIconURISTRINGTerminalRuleCall_5_0_1_0()); 
@@ -68830,17 +68563,17 @@
 
 
     // $ANTLR start "rule__Perspective__AccessibilityPhraseAssignment_5_1_1"
-    // InternalPerspectiveDsl.g:20990:1: rule__Perspective__AccessibilityPhraseAssignment_5_1_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:20905:1: rule__Perspective__AccessibilityPhraseAssignment_5_1_1 : ( RULE_STRING ) ;
     public final void rule__Perspective__AccessibilityPhraseAssignment_5_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:20994:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:20995:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:20909:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:20910:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:20995:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:20996:3: RULE_STRING
+            // InternalPerspectiveDsl.g:20910:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:20911:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_5_1_1_0()); 
@@ -68871,23 +68604,23 @@
 
 
     // $ANTLR start "rule__Perspective__ToolbarAssignment_5_2_1"
-    // InternalPerspectiveDsl.g:21005:1: rule__Perspective__ToolbarAssignment_5_2_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:20920:1: rule__Perspective__ToolbarAssignment_5_2_1 : ( ( RULE_ID ) ) ;
     public final void rule__Perspective__ToolbarAssignment_5_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21009:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21010:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20924:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:20925:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21010:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21011:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20925:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20926:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarActionToolbarCrossReference_5_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21012:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21013:4: RULE_ID
+            // InternalPerspectiveDsl.g:20927:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20928:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getToolbarActionToolbarIDTerminalRuleCall_5_2_1_0_1()); 
@@ -68924,17 +68657,17 @@
 
 
     // $ANTLR start "rule__Perspective__ElementsAssignment_7"
-    // InternalPerspectiveDsl.g:21024:1: rule__Perspective__ElementsAssignment_7 : ( rulePerspectiveElement ) ;
+    // InternalPerspectiveDsl.g:20939:1: rule__Perspective__ElementsAssignment_7 : ( rulePerspectiveElement ) ;
     public final void rule__Perspective__ElementsAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21028:1: ( ( rulePerspectiveElement ) )
-            // InternalPerspectiveDsl.g:21029:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:20943:1: ( ( rulePerspectiveElement ) )
+            // InternalPerspectiveDsl.g:20944:2: ( rulePerspectiveElement )
             {
-            // InternalPerspectiveDsl.g:21029:2: ( rulePerspectiveElement )
-            // InternalPerspectiveDsl.g:21030:3: rulePerspectiveElement
+            // InternalPerspectiveDsl.g:20944:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:20945:3: rulePerspectiveElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveAccess().getElementsPerspectiveElementParserRuleCall_7_0()); 
@@ -68969,17 +68702,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__ElementIdAssignment_2"
-    // InternalPerspectiveDsl.g:21039:1: rule__PerspectiveSashContainer__ElementIdAssignment_2 : ( RULE_ID ) ;
+    // InternalPerspectiveDsl.g:20954:1: rule__PerspectiveSashContainer__ElementIdAssignment_2 : ( RULE_ID ) ;
     public final void rule__PerspectiveSashContainer__ElementIdAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21043:1: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21044:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20958:1: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20959:2: ( RULE_ID )
             {
-            // InternalPerspectiveDsl.g:21044:2: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21045:3: RULE_ID
+            // InternalPerspectiveDsl.g:20959:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20960:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementIdIDTerminalRuleCall_2_0()); 
@@ -69010,17 +68743,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__OrientationAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:21054:1: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 : ( ruleSashOrientation ) ;
+    // InternalPerspectiveDsl.g:20969:1: rule__PerspectiveSashContainer__OrientationAssignment_3_0_1 : ( ruleSashOrientation ) ;
     public final void rule__PerspectiveSashContainer__OrientationAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21058:1: ( ( ruleSashOrientation ) )
-            // InternalPerspectiveDsl.g:21059:2: ( ruleSashOrientation )
+            // InternalPerspectiveDsl.g:20973:1: ( ( ruleSashOrientation ) )
+            // InternalPerspectiveDsl.g:20974:2: ( ruleSashOrientation )
             {
-            // InternalPerspectiveDsl.g:21059:2: ( ruleSashOrientation )
-            // InternalPerspectiveDsl.g:21060:3: ruleSashOrientation
+            // InternalPerspectiveDsl.g:20974:2: ( ruleSashOrientation )
+            // InternalPerspectiveDsl.g:20975:3: ruleSashOrientation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationSashOrientationEnumRuleCall_3_0_1_0()); 
@@ -69055,23 +68788,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:21069:1: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:20984:1: rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21073:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21074:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20988:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:20989:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21074:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21075:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20989:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:20990:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementPerspectiveElementCrossReference_3_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21076:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21077:4: RULE_ID
+            // InternalPerspectiveDsl.g:20991:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:20992:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementPerspectiveElementIDTerminalRuleCall_3_1_1_0_1()); 
@@ -69108,17 +68841,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:21088:1: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21003:1: rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1 : ( RULE_STRING ) ;
     public final void rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21092:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21093:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21007:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21008:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21093:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21094:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21008:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21009:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getContainerDataSTRINGTerminalRuleCall_3_2_1_0()); 
@@ -69149,17 +68882,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1"
-    // InternalPerspectiveDsl.g:21103:1: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21018:1: rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1 : ( RULE_STRING ) ;
     public final void rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21107:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21108:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21022:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21023:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21108:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21109:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21023:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21024:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_3_1_0()); 
@@ -69190,17 +68923,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSashContainer__ElementsAssignment_5"
-    // InternalPerspectiveDsl.g:21118:1: rule__PerspectiveSashContainer__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
+    // InternalPerspectiveDsl.g:21033:1: rule__PerspectiveSashContainer__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
     public final void rule__PerspectiveSashContainer__ElementsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21122:1: ( ( rulePerspectiveElement ) )
-            // InternalPerspectiveDsl.g:21123:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21037:1: ( ( rulePerspectiveElement ) )
+            // InternalPerspectiveDsl.g:21038:2: ( rulePerspectiveElement )
             {
-            // InternalPerspectiveDsl.g:21123:2: ( rulePerspectiveElement )
-            // InternalPerspectiveDsl.g:21124:3: rulePerspectiveElement
+            // InternalPerspectiveDsl.g:21038:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21039:3: rulePerspectiveElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSashContainerAccess().getElementsPerspectiveElementParserRuleCall_5_0()); 
@@ -69235,17 +68968,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__ElementIdAssignment_2"
-    // InternalPerspectiveDsl.g:21133:1: rule__PerspectivePartStack__ElementIdAssignment_2 : ( RULE_ID ) ;
+    // InternalPerspectiveDsl.g:21048:1: rule__PerspectivePartStack__ElementIdAssignment_2 : ( RULE_ID ) ;
     public final void rule__PerspectivePartStack__ElementIdAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21137:1: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21138:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21052:1: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21053:2: ( RULE_ID )
             {
-            // InternalPerspectiveDsl.g:21138:2: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21139:3: RULE_ID
+            // InternalPerspectiveDsl.g:21053:2: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21054:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementIdIDTerminalRuleCall_2_0()); 
@@ -69276,23 +69009,23 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__SelectedElementAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:21148:1: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21063:1: rule__PerspectivePartStack__SelectedElementAssignment_3_0_1 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectivePartStack__SelectedElementAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21152:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21153:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21067:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21068:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21153:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21154:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21068:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21069:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementPerspectivePartCrossReference_3_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21155:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21156:4: RULE_ID
+            // InternalPerspectiveDsl.g:21070:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21071:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementPerspectivePartIDTerminalRuleCall_3_0_1_0_1()); 
@@ -69329,17 +69062,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__ContainerDataAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:21167:1: rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21082:1: rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePartStack__ContainerDataAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21171:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21172:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21086:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21087:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21172:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21173:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21087:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21088:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getContainerDataSTRINGTerminalRuleCall_3_1_1_0()); 
@@ -69370,17 +69103,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:21182:1: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21097:1: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21186:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21187:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21101:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21102:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21187:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21188:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21102:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21103:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_2_1_0()); 
@@ -69411,17 +69144,17 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__ElementsAssignment_5"
-    // InternalPerspectiveDsl.g:21197:1: rule__PerspectivePartStack__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
+    // InternalPerspectiveDsl.g:21112:1: rule__PerspectivePartStack__ElementsAssignment_5 : ( rulePerspectiveElement ) ;
     public final void rule__PerspectivePartStack__ElementsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21201:1: ( ( rulePerspectiveElement ) )
-            // InternalPerspectiveDsl.g:21202:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21116:1: ( ( rulePerspectiveElement ) )
+            // InternalPerspectiveDsl.g:21117:2: ( rulePerspectiveElement )
             {
-            // InternalPerspectiveDsl.g:21202:2: ( rulePerspectiveElement )
-            // InternalPerspectiveDsl.g:21203:3: rulePerspectiveElement
+            // InternalPerspectiveDsl.g:21117:2: ( rulePerspectiveElement )
+            // InternalPerspectiveDsl.g:21118:3: rulePerspectiveElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartStackAccess().getElementsPerspectiveElementParserRuleCall_5_0()); 
@@ -69456,17 +69189,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__ElementIdAssignment_2"
-    // InternalPerspectiveDsl.g:21212:1: rule__PerspectivePart__ElementIdAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalPerspectiveDsl.g:21127:1: rule__PerspectivePart__ElementIdAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__PerspectivePart__ElementIdAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21216:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalPerspectiveDsl.g:21217:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:21131:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalPerspectiveDsl.g:21132:2: ( ruleTRANSLATABLEID )
             {
-            // InternalPerspectiveDsl.g:21217:2: ( ruleTRANSLATABLEID )
-            // InternalPerspectiveDsl.g:21218:3: ruleTRANSLATABLEID
+            // InternalPerspectiveDsl.g:21132:2: ( ruleTRANSLATABLEID )
+            // InternalPerspectiveDsl.g:21133:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getElementIdTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -69501,17 +69234,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__ContainerDataAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:21227:1: rule__PerspectivePart__ContainerDataAssignment_3_0_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21142:1: rule__PerspectivePart__ContainerDataAssignment_3_0_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePart__ContainerDataAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21231:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21232:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21146:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21147:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21232:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21233:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21147:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21148:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getContainerDataSTRINGTerminalRuleCall_3_0_1_0()); 
@@ -69542,17 +69275,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:21242:1: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21157:1: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21246:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21247:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21161:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21162:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21247:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21248:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21162:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21163:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_1_1_0()); 
@@ -69583,17 +69316,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__IconURIAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:21257:1: rule__PerspectivePart__IconURIAssignment_3_2_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:21172:1: rule__PerspectivePart__IconURIAssignment_3_2_1 : ( RULE_STRING ) ;
     public final void rule__PerspectivePart__IconURIAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21261:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:21262:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21176:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:21177:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:21262:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:21263:3: RULE_STRING
+            // InternalPerspectiveDsl.g:21177:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:21178:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURISTRINGTerminalRuleCall_3_2_1_0()); 
@@ -69624,17 +69357,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__ViewAssignment_3_3_1"
-    // InternalPerspectiveDsl.g:21272:1: rule__PerspectivePart__ViewAssignment_3_3_1 : ( rulePerspectiveView ) ;
+    // InternalPerspectiveDsl.g:21187:1: rule__PerspectivePart__ViewAssignment_3_3_1 : ( rulePerspectiveView ) ;
     public final void rule__PerspectivePart__ViewAssignment_3_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21276:1: ( ( rulePerspectiveView ) )
-            // InternalPerspectiveDsl.g:21277:2: ( rulePerspectiveView )
+            // InternalPerspectiveDsl.g:21191:1: ( ( rulePerspectiveView ) )
+            // InternalPerspectiveDsl.g:21192:2: ( rulePerspectiveView )
             {
-            // InternalPerspectiveDsl.g:21277:2: ( rulePerspectiveView )
-            // InternalPerspectiveDsl.g:21278:3: rulePerspectiveView
+            // InternalPerspectiveDsl.g:21192:2: ( rulePerspectiveView )
+            // InternalPerspectiveDsl.g:21193:3: rulePerspectiveView
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewPerspectiveViewParserRuleCall_3_3_1_0()); 
@@ -69669,28 +69402,28 @@
 
 
     // $ANTLR start "rule__PerspectivePart__IsClosableAssignment_3_4"
-    // InternalPerspectiveDsl.g:21287:1: rule__PerspectivePart__IsClosableAssignment_3_4 : ( ( 'isClosable' ) ) ;
+    // InternalPerspectiveDsl.g:21202:1: rule__PerspectivePart__IsClosableAssignment_3_4 : ( ( 'isClosable' ) ) ;
     public final void rule__PerspectivePart__IsClosableAssignment_3_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21291:1: ( ( ( 'isClosable' ) ) )
-            // InternalPerspectiveDsl.g:21292:2: ( ( 'isClosable' ) )
+            // InternalPerspectiveDsl.g:21206:1: ( ( ( 'isClosable' ) ) )
+            // InternalPerspectiveDsl.g:21207:2: ( ( 'isClosable' ) )
             {
-            // InternalPerspectiveDsl.g:21292:2: ( ( 'isClosable' ) )
-            // InternalPerspectiveDsl.g:21293:3: ( 'isClosable' )
+            // InternalPerspectiveDsl.g:21207:2: ( ( 'isClosable' ) )
+            // InternalPerspectiveDsl.g:21208:3: ( 'isClosable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIsClosableIsClosableKeyword_3_4_0()); 
             }
-            // InternalPerspectiveDsl.g:21294:3: ( 'isClosable' )
-            // InternalPerspectiveDsl.g:21295:4: 'isClosable'
+            // InternalPerspectiveDsl.g:21209:3: ( 'isClosable' )
+            // InternalPerspectiveDsl.g:21210:4: 'isClosable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIsClosableIsClosableKeyword_3_4_0()); 
             }
-            match(input,119,FOLLOW_2); if (state.failed) return ;
+            match(input,118,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectivePartAccess().getIsClosableIsClosableKeyword_3_4_0()); 
             }
@@ -69722,23 +69455,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21306:1: rule__PerspectiveSelection__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21221:1: rule__PerspectiveSelection__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveSelection__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21310:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21311:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21225:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21226:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21311:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21312:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21226:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21227:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getRefTableCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21313:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21314:4: RULE_ID
+            // InternalPerspectiveDsl.g:21228:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21229:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getRefTableIDTerminalRuleCall_2_0_1()); 
@@ -69775,23 +69508,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21325:1: rule__PerspectiveTable__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21240:1: rule__PerspectiveTable__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveTable__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21329:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21330:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21244:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21245:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21330:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21331:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21245:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21246:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getRefTableCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21332:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21333:4: RULE_ID
+            // InternalPerspectiveDsl.g:21247:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21248:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getRefTableIDTerminalRuleCall_2_0_1()); 
@@ -69828,23 +69561,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21344:1: rule__PerspectiveGrid__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21259:1: rule__PerspectiveGrid__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveGrid__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21348:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21349:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21263:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21264:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21349:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21350:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21264:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21265:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getRefTableCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21351:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21352:4: RULE_ID
+            // InternalPerspectiveDsl.g:21266:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21267:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getRefTableIDTerminalRuleCall_2_0_1()); 
@@ -69881,23 +69614,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBean__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21363:1: rule__PerspectiveBean__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21278:1: rule__PerspectiveBean__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveBean__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21367:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21368:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21282:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21283:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21368:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21369:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21283:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21284:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBeanAccess().getRefTableCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21370:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21371:4: RULE_ID
+            // InternalPerspectiveDsl.g:21285:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21286:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBeanAccess().getRefTableIDTerminalRuleCall_2_0_1()); 
@@ -69934,23 +69667,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21382:1: rule__PerspectiveChart__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21297:1: rule__PerspectiveChart__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveChart__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21386:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21387:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21301:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21302:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21387:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21388:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21302:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21303:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getRefChartCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21389:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21390:4: RULE_ID
+            // InternalPerspectiveDsl.g:21304:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21305:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getRefChartIDTerminalRuleCall_2_0_1()); 
@@ -69987,23 +69720,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21401:1: rule__PerspectiveReport__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21316:1: rule__PerspectiveReport__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveReport__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21405:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21406:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21320:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21321:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21406:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21407:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21321:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21322:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getRefReportCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21408:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21409:4: RULE_ID
+            // InternalPerspectiveDsl.g:21323:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21324:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getRefReportIDTerminalRuleCall_2_0_1()); 
@@ -70040,23 +69773,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21420:1: rule__PerspectiveOrganization__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21335:1: rule__PerspectiveOrganization__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveOrganization__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21424:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21425:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21339:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21340:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21425:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21426:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21340:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21341:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getRefOrganizationCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21427:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21428:4: RULE_ID
+            // InternalPerspectiveDsl.g:21342:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21343:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getRefOrganizationIDTerminalRuleCall_2_0_1()); 
@@ -70093,23 +69826,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21439:1: rule__PerspectiveTopology__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21354:1: rule__PerspectiveTopology__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveTopology__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21443:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21444:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21358:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21359:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21444:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21445:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21359:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21360:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getRefTopologyCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21446:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21447:4: RULE_ID
+            // InternalPerspectiveDsl.g:21361:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21362:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getRefTopologyIDTerminalRuleCall_2_0_1()); 
@@ -70146,23 +69879,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21458:1: rule__PerspectiveDialog__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21373:1: rule__PerspectiveDialog__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveDialog__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21462:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21463:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21377:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21378:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21463:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21464:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21378:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21379:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getRefDialogCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21465:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21466:4: RULE_ID
+            // InternalPerspectiveDsl.g:21380:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21381:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getRefDialogIDTerminalRuleCall_2_0_1()); 
@@ -70199,23 +69932,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__DtoRefAssignment_3"
-    // InternalPerspectiveDsl.g:21477:1: rule__PerspectiveKanban__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21392:1: rule__PerspectiveKanban__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveKanban__DtoRefAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21481:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21482:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21396:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21397:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21482:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21483:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21397:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21398:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDtoRefLDtoCrossReference_3_0()); 
             }
-            // InternalPerspectiveDsl.g:21484:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21485:4: RULE_ID
+            // InternalPerspectiveDsl.g:21399:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21400:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDtoRefLDtoIDTerminalRuleCall_3_0_1()); 
@@ -70252,23 +69985,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__CardRefAssignment_5"
-    // InternalPerspectiveDsl.g:21496:1: rule__PerspectiveKanban__CardRefAssignment_5 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21411:1: rule__PerspectiveKanban__CardRefAssignment_5 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveKanban__CardRefAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21500:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21501:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21415:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21416:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21501:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21502:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21416:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21417:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardRefDialogCrossReference_5_0()); 
             }
-            // InternalPerspectiveDsl.g:21503:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21504:4: RULE_ID
+            // InternalPerspectiveDsl.g:21418:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21419:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardRefDialogIDTerminalRuleCall_5_0_1()); 
@@ -70305,23 +70038,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__DialogRefAssignment_7"
-    // InternalPerspectiveDsl.g:21515:1: rule__PerspectiveKanban__DialogRefAssignment_7 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21430:1: rule__PerspectiveKanban__DialogRefAssignment_7 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveKanban__DialogRefAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21519:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21520:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21434:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21435:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21520:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21521:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21435:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21436:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogRefDialogCrossReference_7_0()); 
             }
-            // InternalPerspectiveDsl.g:21522:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21523:4: RULE_ID
+            // InternalPerspectiveDsl.g:21437:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21438:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogRefDialogIDTerminalRuleCall_7_0_1()); 
@@ -70358,23 +70091,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__DtoRefAssignment_3"
-    // InternalPerspectiveDsl.g:21534:1: rule__PerspectiveSearch__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21449:1: rule__PerspectiveSearch__DtoRefAssignment_3 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveSearch__DtoRefAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21538:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21539:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21453:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21454:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21539:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21540:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21454:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21455:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDtoRefLDtoCrossReference_3_0()); 
             }
-            // InternalPerspectiveDsl.g:21541:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21542:4: RULE_ID
+            // InternalPerspectiveDsl.g:21456:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21457:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDtoRefLDtoIDTerminalRuleCall_3_0_1()); 
@@ -70411,17 +70144,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__DepthAssignment_4_0_1"
-    // InternalPerspectiveDsl.g:21553:1: rule__PerspectiveSearch__DepthAssignment_4_0_1 : ( RULE_INT ) ;
+    // InternalPerspectiveDsl.g:21468:1: rule__PerspectiveSearch__DepthAssignment_4_0_1 : ( RULE_INT ) ;
     public final void rule__PerspectiveSearch__DepthAssignment_4_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21557:1: ( ( RULE_INT ) )
-            // InternalPerspectiveDsl.g:21558:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:21472:1: ( ( RULE_INT ) )
+            // InternalPerspectiveDsl.g:21473:2: ( RULE_INT )
             {
-            // InternalPerspectiveDsl.g:21558:2: ( RULE_INT )
-            // InternalPerspectiveDsl.g:21559:3: RULE_INT
+            // InternalPerspectiveDsl.g:21473:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:21474:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthINTTerminalRuleCall_4_0_1_0()); 
@@ -70452,17 +70185,17 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__FilterColsAssignment_4_1_1"
-    // InternalPerspectiveDsl.g:21568:1: rule__PerspectiveSearch__FilterColsAssignment_4_1_1 : ( RULE_INT ) ;
+    // InternalPerspectiveDsl.g:21483:1: rule__PerspectiveSearch__FilterColsAssignment_4_1_1 : ( RULE_INT ) ;
     public final void rule__PerspectiveSearch__FilterColsAssignment_4_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21572:1: ( ( RULE_INT ) )
-            // InternalPerspectiveDsl.g:21573:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:21487:1: ( ( RULE_INT ) )
+            // InternalPerspectiveDsl.g:21488:2: ( RULE_INT )
             {
-            // InternalPerspectiveDsl.g:21573:2: ( RULE_INT )
-            // InternalPerspectiveDsl.g:21574:3: RULE_INT
+            // InternalPerspectiveDsl.g:21488:2: ( RULE_INT )
+            // InternalPerspectiveDsl.g:21489:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColsINTTerminalRuleCall_4_1_1_0()); 
@@ -70493,23 +70226,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__RefAssignment_2"
-    // InternalPerspectiveDsl.g:21583:1: rule__PerspectiveDataInterchange__RefAssignment_2 : ( ( RULE_ID ) ) ;
+    // InternalPerspectiveDsl.g:21498:1: rule__PerspectiveDataInterchange__RefAssignment_2 : ( ( RULE_ID ) ) ;
     public final void rule__PerspectiveDataInterchange__RefAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21587:1: ( ( ( RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:21588:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21502:1: ( ( ( RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:21503:2: ( ( RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:21588:2: ( ( RULE_ID ) )
-            // InternalPerspectiveDsl.g:21589:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21503:2: ( ( RULE_ID ) )
+            // InternalPerspectiveDsl.g:21504:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getRefDataInterchangePackageCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21590:3: ( RULE_ID )
-            // InternalPerspectiveDsl.g:21591:4: RULE_ID
+            // InternalPerspectiveDsl.g:21505:3: ( RULE_ID )
+            // InternalPerspectiveDsl.g:21506:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getRefDataInterchangePackageIDTerminalRuleCall_2_0_1()); 
@@ -70546,23 +70279,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__StaticAssignment_2_0_0"
-    // InternalPerspectiveDsl.g:21602:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
+    // InternalPerspectiveDsl.g:21517:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
     public final void rule__XImportDeclaration__StaticAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21606:1: ( ( ( 'static' ) ) )
-            // InternalPerspectiveDsl.g:21607:2: ( ( 'static' ) )
+            // InternalPerspectiveDsl.g:21521:1: ( ( ( 'static' ) ) )
+            // InternalPerspectiveDsl.g:21522:2: ( ( 'static' ) )
             {
-            // InternalPerspectiveDsl.g:21607:2: ( ( 'static' ) )
-            // InternalPerspectiveDsl.g:21608:3: ( 'static' )
+            // InternalPerspectiveDsl.g:21522:2: ( ( 'static' ) )
+            // InternalPerspectiveDsl.g:21523:3: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:21609:3: ( 'static' )
-            // InternalPerspectiveDsl.g:21610:4: 'static'
+            // InternalPerspectiveDsl.g:21524:3: ( 'static' )
+            // InternalPerspectiveDsl.g:21525:4: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
@@ -70599,23 +70332,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
-    // InternalPerspectiveDsl.g:21621:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
+    // InternalPerspectiveDsl.g:21536:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
     public final void rule__XImportDeclaration__ExtensionAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21625:1: ( ( ( 'extension' ) ) )
-            // InternalPerspectiveDsl.g:21626:2: ( ( 'extension' ) )
+            // InternalPerspectiveDsl.g:21540:1: ( ( ( 'extension' ) ) )
+            // InternalPerspectiveDsl.g:21541:2: ( ( 'extension' ) )
             {
-            // InternalPerspectiveDsl.g:21626:2: ( ( 'extension' ) )
-            // InternalPerspectiveDsl.g:21627:3: ( 'extension' )
+            // InternalPerspectiveDsl.g:21541:2: ( ( 'extension' ) )
+            // InternalPerspectiveDsl.g:21542:3: ( 'extension' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21628:3: ( 'extension' )
-            // InternalPerspectiveDsl.g:21629:4: 'extension'
+            // InternalPerspectiveDsl.g:21543:3: ( 'extension' )
+            // InternalPerspectiveDsl.g:21544:4: 'extension'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
@@ -70652,23 +70385,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
-    // InternalPerspectiveDsl.g:21640:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
+    // InternalPerspectiveDsl.g:21555:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21644:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
-            // InternalPerspectiveDsl.g:21645:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalPerspectiveDsl.g:21559:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
+            // InternalPerspectiveDsl.g:21560:2: ( ( ruleQualifiedNameInStaticImport ) )
             {
-            // InternalPerspectiveDsl.g:21645:2: ( ( ruleQualifiedNameInStaticImport ) )
-            // InternalPerspectiveDsl.g:21646:3: ( ruleQualifiedNameInStaticImport )
+            // InternalPerspectiveDsl.g:21560:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalPerspectiveDsl.g:21561:3: ( ruleQualifiedNameInStaticImport )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21647:3: ( ruleQualifiedNameInStaticImport )
-            // InternalPerspectiveDsl.g:21648:4: ruleQualifiedNameInStaticImport
+            // InternalPerspectiveDsl.g:21562:3: ( ruleQualifiedNameInStaticImport )
+            // InternalPerspectiveDsl.g:21563:4: ruleQualifiedNameInStaticImport
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
@@ -70709,23 +70442,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
-    // InternalPerspectiveDsl.g:21659:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
+    // InternalPerspectiveDsl.g:21574:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
     public final void rule__XImportDeclaration__WildcardAssignment_2_0_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21663:1: ( ( ( '*' ) ) )
-            // InternalPerspectiveDsl.g:21664:2: ( ( '*' ) )
+            // InternalPerspectiveDsl.g:21578:1: ( ( ( '*' ) ) )
+            // InternalPerspectiveDsl.g:21579:2: ( ( '*' ) )
             {
-            // InternalPerspectiveDsl.g:21664:2: ( ( '*' ) )
-            // InternalPerspectiveDsl.g:21665:3: ( '*' )
+            // InternalPerspectiveDsl.g:21579:2: ( ( '*' ) )
+            // InternalPerspectiveDsl.g:21580:3: ( '*' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:21666:3: ( '*' )
-            // InternalPerspectiveDsl.g:21667:4: '*'
+            // InternalPerspectiveDsl.g:21581:3: ( '*' )
+            // InternalPerspectiveDsl.g:21582:4: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
@@ -70762,17 +70495,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
-    // InternalPerspectiveDsl.g:21678:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:21593:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
     public final void rule__XImportDeclaration__MemberNameAssignment_2_0_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21682:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:21683:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:21597:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:21598:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:21683:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:21684:3: ruleValidID
+            // InternalPerspectiveDsl.g:21598:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:21599:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
@@ -70807,23 +70540,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
-    // InternalPerspectiveDsl.g:21693:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:21608:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21697:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:21698:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:21612:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:21613:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:21698:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:21699:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21613:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:21614:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21700:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:21701:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:21615:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21616:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
@@ -70864,17 +70597,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
-    // InternalPerspectiveDsl.g:21712:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
+    // InternalPerspectiveDsl.g:21627:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
     public final void rule__XImportDeclaration__ImportedNamespaceAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21716:1: ( ( ruleQualifiedNameWithWildcard ) )
-            // InternalPerspectiveDsl.g:21717:2: ( ruleQualifiedNameWithWildcard )
+            // InternalPerspectiveDsl.g:21631:1: ( ( ruleQualifiedNameWithWildcard ) )
+            // InternalPerspectiveDsl.g:21632:2: ( ruleQualifiedNameWithWildcard )
             {
-            // InternalPerspectiveDsl.g:21717:2: ( ruleQualifiedNameWithWildcard )
-            // InternalPerspectiveDsl.g:21718:3: ruleQualifiedNameWithWildcard
+            // InternalPerspectiveDsl.g:21632:2: ( ruleQualifiedNameWithWildcard )
+            // InternalPerspectiveDsl.g:21633:3: ruleQualifiedNameWithWildcard
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
@@ -70909,28 +70642,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
-    // InternalPerspectiveDsl.g:21727:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
+    // InternalPerspectiveDsl.g:21642:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
     public final void rule__XImportDeclaration__FqnImportAssignment_2_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21731:1: ( ( ( 'ns' ) ) )
-            // InternalPerspectiveDsl.g:21732:2: ( ( 'ns' ) )
+            // InternalPerspectiveDsl.g:21646:1: ( ( ( 'ns' ) ) )
+            // InternalPerspectiveDsl.g:21647:2: ( ( 'ns' ) )
             {
-            // InternalPerspectiveDsl.g:21732:2: ( ( 'ns' ) )
-            // InternalPerspectiveDsl.g:21733:3: ( 'ns' )
+            // InternalPerspectiveDsl.g:21647:2: ( ( 'ns' ) )
+            // InternalPerspectiveDsl.g:21648:3: ( 'ns' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:21734:3: ( 'ns' )
-            // InternalPerspectiveDsl.g:21735:4: 'ns'
+            // InternalPerspectiveDsl.g:21649:3: ( 'ns' )
+            // InternalPerspectiveDsl.g:21650:4: 'ns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            match(input,120,FOLLOW_2); if (state.failed) return ;
+            match(input,119,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
@@ -70962,17 +70695,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
-    // InternalPerspectiveDsl.g:21746:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
+    // InternalPerspectiveDsl.g:21661:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
     public final void rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21750:1: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:21751:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21665:1: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:21666:2: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:21751:2: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:21752:3: ruleQualifiedName
+            // InternalPerspectiveDsl.g:21666:2: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21667:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
@@ -71007,23 +70740,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__AnnotationTypeAssignment_2"
-    // InternalPerspectiveDsl.g:21761:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:21676:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21765:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:21766:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:21680:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:21681:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:21766:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:21767:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21681:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:21682:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:21768:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:21769:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:21683:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:21684:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
@@ -71064,17 +70797,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
-    // InternalPerspectiveDsl.g:21780:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalPerspectiveDsl.g:21695:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21784:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalPerspectiveDsl.g:21785:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:21699:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalPerspectiveDsl.g:21700:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalPerspectiveDsl.g:21785:2: ( ruleXAnnotationElementValuePair )
-            // InternalPerspectiveDsl.g:21786:3: ruleXAnnotationElementValuePair
+            // InternalPerspectiveDsl.g:21700:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:21701:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
@@ -71109,17 +70842,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
-    // InternalPerspectiveDsl.g:21795:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalPerspectiveDsl.g:21710:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21799:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalPerspectiveDsl.g:21800:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:21714:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalPerspectiveDsl.g:21715:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalPerspectiveDsl.g:21800:2: ( ruleXAnnotationElementValuePair )
-            // InternalPerspectiveDsl.g:21801:3: ruleXAnnotationElementValuePair
+            // InternalPerspectiveDsl.g:21715:2: ( ruleXAnnotationElementValuePair )
+            // InternalPerspectiveDsl.g:21716:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
@@ -71154,17 +70887,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ValueAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:21810:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
+    // InternalPerspectiveDsl.g:21725:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
     public final void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21814:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
-            // InternalPerspectiveDsl.g:21815:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalPerspectiveDsl.g:21729:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
+            // InternalPerspectiveDsl.g:21730:2: ( ruleXAnnotationElementValueOrCommaList )
             {
-            // InternalPerspectiveDsl.g:21815:2: ( ruleXAnnotationElementValueOrCommaList )
-            // InternalPerspectiveDsl.g:21816:3: ruleXAnnotationElementValueOrCommaList
+            // InternalPerspectiveDsl.g:21730:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalPerspectiveDsl.g:21731:3: ruleXAnnotationElementValueOrCommaList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
@@ -71199,23 +70932,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
-    // InternalPerspectiveDsl.g:21825:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
+    // InternalPerspectiveDsl.g:21740:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
     public final void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21829:1: ( ( ( ruleValidID ) ) )
-            // InternalPerspectiveDsl.g:21830:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:21744:1: ( ( ( ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:21745:2: ( ( ruleValidID ) )
             {
-            // InternalPerspectiveDsl.g:21830:2: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:21831:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:21745:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:21746:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:21832:3: ( ruleValidID )
-            // InternalPerspectiveDsl.g:21833:4: ruleValidID
+            // InternalPerspectiveDsl.g:21747:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:21748:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
@@ -71256,17 +70989,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ValueAssignment_1"
-    // InternalPerspectiveDsl.g:21844:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
+    // InternalPerspectiveDsl.g:21759:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
     public final void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21848:1: ( ( ruleXAnnotationElementValue ) )
-            // InternalPerspectiveDsl.g:21849:2: ( ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:21763:1: ( ( ruleXAnnotationElementValue ) )
+            // InternalPerspectiveDsl.g:21764:2: ( ruleXAnnotationElementValue )
             {
-            // InternalPerspectiveDsl.g:21849:2: ( ruleXAnnotationElementValue )
-            // InternalPerspectiveDsl.g:21850:3: ruleXAnnotationElementValue
+            // InternalPerspectiveDsl.g:21764:2: ( ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:21765:3: ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
@@ -71301,17 +71034,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
-    // InternalPerspectiveDsl.g:21859:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:21774:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21863:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:21864:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21778:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:21779:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:21864:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:21865:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:21779:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21780:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -71346,17 +71079,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
-    // InternalPerspectiveDsl.g:21874:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:21789:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21878:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:21879:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21793:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:21794:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:21879:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:21880:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:21794:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21795:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -71391,17 +71124,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
-    // InternalPerspectiveDsl.g:21889:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:21804:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21893:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:21894:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21808:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:21809:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:21894:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:21895:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:21809:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21810:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
@@ -71436,17 +71169,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
-    // InternalPerspectiveDsl.g:21904:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:21819:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21908:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:21909:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21823:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:21824:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:21909:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:21910:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:21824:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21825:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -71481,17 +71214,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
-    // InternalPerspectiveDsl.g:21919:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:21834:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21923:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:21924:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21838:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:21839:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:21924:2: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:21925:3: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:21839:2: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:21840:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -71526,23 +71259,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
-    // InternalPerspectiveDsl.g:21934:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+    // InternalPerspectiveDsl.g:21849:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21938:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalPerspectiveDsl.g:21939:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:21853:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalPerspectiveDsl.g:21854:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalPerspectiveDsl.g:21939:2: ( ( ruleFeatureCallID ) )
-            // InternalPerspectiveDsl.g:21940:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:21854:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:21855:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21941:3: ( ruleFeatureCallID )
-            // InternalPerspectiveDsl.g:21942:4: ruleFeatureCallID
+            // InternalPerspectiveDsl.g:21856:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:21857:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
@@ -71583,17 +71316,17 @@
 
 
     // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
-    // InternalPerspectiveDsl.g:21953:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+    // InternalPerspectiveDsl.g:21868:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21957:1: ( ( ruleXAssignment ) )
-            // InternalPerspectiveDsl.g:21958:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:21872:1: ( ( ruleXAssignment ) )
+            // InternalPerspectiveDsl.g:21873:2: ( ruleXAssignment )
             {
-            // InternalPerspectiveDsl.g:21958:2: ( ruleXAssignment )
-            // InternalPerspectiveDsl.g:21959:3: ruleXAssignment
+            // InternalPerspectiveDsl.g:21873:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:21874:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
@@ -71628,23 +71361,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
-    // InternalPerspectiveDsl.g:21968:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+    // InternalPerspectiveDsl.g:21883:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
     public final void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21972:1: ( ( ( ruleOpMultiAssign ) ) )
-            // InternalPerspectiveDsl.g:21973:2: ( ( ruleOpMultiAssign ) )
+            // InternalPerspectiveDsl.g:21887:1: ( ( ( ruleOpMultiAssign ) ) )
+            // InternalPerspectiveDsl.g:21888:2: ( ( ruleOpMultiAssign ) )
             {
-            // InternalPerspectiveDsl.g:21973:2: ( ( ruleOpMultiAssign ) )
-            // InternalPerspectiveDsl.g:21974:3: ( ruleOpMultiAssign )
+            // InternalPerspectiveDsl.g:21888:2: ( ( ruleOpMultiAssign ) )
+            // InternalPerspectiveDsl.g:21889:3: ( ruleOpMultiAssign )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:21975:3: ( ruleOpMultiAssign )
-            // InternalPerspectiveDsl.g:21976:4: ruleOpMultiAssign
+            // InternalPerspectiveDsl.g:21890:3: ( ruleOpMultiAssign )
+            // InternalPerspectiveDsl.g:21891:4: ruleOpMultiAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
@@ -71685,17 +71418,17 @@
 
 
     // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
-    // InternalPerspectiveDsl.g:21987:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+    // InternalPerspectiveDsl.g:21902:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:21991:1: ( ( ruleXAssignment ) )
-            // InternalPerspectiveDsl.g:21992:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:21906:1: ( ( ruleXAssignment ) )
+            // InternalPerspectiveDsl.g:21907:2: ( ruleXAssignment )
             {
-            // InternalPerspectiveDsl.g:21992:2: ( ruleXAssignment )
-            // InternalPerspectiveDsl.g:21993:3: ruleXAssignment
+            // InternalPerspectiveDsl.g:21907:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:21908:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
@@ -71730,23 +71463,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22002:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+    // InternalPerspectiveDsl.g:21917:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
     public final void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22006:1: ( ( ( ruleOpOr ) ) )
-            // InternalPerspectiveDsl.g:22007:2: ( ( ruleOpOr ) )
+            // InternalPerspectiveDsl.g:21921:1: ( ( ( ruleOpOr ) ) )
+            // InternalPerspectiveDsl.g:21922:2: ( ( ruleOpOr ) )
             {
-            // InternalPerspectiveDsl.g:22007:2: ( ( ruleOpOr ) )
-            // InternalPerspectiveDsl.g:22008:3: ( ruleOpOr )
+            // InternalPerspectiveDsl.g:21922:2: ( ( ruleOpOr ) )
+            // InternalPerspectiveDsl.g:21923:3: ( ruleOpOr )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22009:3: ( ruleOpOr )
-            // InternalPerspectiveDsl.g:22010:4: ruleOpOr
+            // InternalPerspectiveDsl.g:21924:3: ( ruleOpOr )
+            // InternalPerspectiveDsl.g:21925:4: ruleOpOr
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
@@ -71787,17 +71520,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22021:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+    // InternalPerspectiveDsl.g:21936:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22025:1: ( ( ruleXAndExpression ) )
-            // InternalPerspectiveDsl.g:22026:2: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:21940:1: ( ( ruleXAndExpression ) )
+            // InternalPerspectiveDsl.g:21941:2: ( ruleXAndExpression )
             {
-            // InternalPerspectiveDsl.g:22026:2: ( ruleXAndExpression )
-            // InternalPerspectiveDsl.g:22027:3: ruleXAndExpression
+            // InternalPerspectiveDsl.g:21941:2: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:21942:3: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
@@ -71832,23 +71565,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22036:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+    // InternalPerspectiveDsl.g:21951:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
     public final void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22040:1: ( ( ( ruleOpAnd ) ) )
-            // InternalPerspectiveDsl.g:22041:2: ( ( ruleOpAnd ) )
+            // InternalPerspectiveDsl.g:21955:1: ( ( ( ruleOpAnd ) ) )
+            // InternalPerspectiveDsl.g:21956:2: ( ( ruleOpAnd ) )
             {
-            // InternalPerspectiveDsl.g:22041:2: ( ( ruleOpAnd ) )
-            // InternalPerspectiveDsl.g:22042:3: ( ruleOpAnd )
+            // InternalPerspectiveDsl.g:21956:2: ( ( ruleOpAnd ) )
+            // InternalPerspectiveDsl.g:21957:3: ( ruleOpAnd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22043:3: ( ruleOpAnd )
-            // InternalPerspectiveDsl.g:22044:4: ruleOpAnd
+            // InternalPerspectiveDsl.g:21958:3: ( ruleOpAnd )
+            // InternalPerspectiveDsl.g:21959:4: ruleOpAnd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
@@ -71889,17 +71622,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22055:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+    // InternalPerspectiveDsl.g:21970:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22059:1: ( ( ruleXEqualityExpression ) )
-            // InternalPerspectiveDsl.g:22060:2: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:21974:1: ( ( ruleXEqualityExpression ) )
+            // InternalPerspectiveDsl.g:21975:2: ( ruleXEqualityExpression )
             {
-            // InternalPerspectiveDsl.g:22060:2: ( ruleXEqualityExpression )
-            // InternalPerspectiveDsl.g:22061:3: ruleXEqualityExpression
+            // InternalPerspectiveDsl.g:21975:2: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:21976:3: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
@@ -71934,23 +71667,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22070:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+    // InternalPerspectiveDsl.g:21985:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
     public final void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22074:1: ( ( ( ruleOpEquality ) ) )
-            // InternalPerspectiveDsl.g:22075:2: ( ( ruleOpEquality ) )
+            // InternalPerspectiveDsl.g:21989:1: ( ( ( ruleOpEquality ) ) )
+            // InternalPerspectiveDsl.g:21990:2: ( ( ruleOpEquality ) )
             {
-            // InternalPerspectiveDsl.g:22075:2: ( ( ruleOpEquality ) )
-            // InternalPerspectiveDsl.g:22076:3: ( ruleOpEquality )
+            // InternalPerspectiveDsl.g:21990:2: ( ( ruleOpEquality ) )
+            // InternalPerspectiveDsl.g:21991:3: ( ruleOpEquality )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22077:3: ( ruleOpEquality )
-            // InternalPerspectiveDsl.g:22078:4: ruleOpEquality
+            // InternalPerspectiveDsl.g:21992:3: ( ruleOpEquality )
+            // InternalPerspectiveDsl.g:21993:4: ruleOpEquality
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
@@ -71991,17 +71724,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22089:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+    // InternalPerspectiveDsl.g:22004:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22093:1: ( ( ruleXRelationalExpression ) )
-            // InternalPerspectiveDsl.g:22094:2: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:22008:1: ( ( ruleXRelationalExpression ) )
+            // InternalPerspectiveDsl.g:22009:2: ( ruleXRelationalExpression )
             {
-            // InternalPerspectiveDsl.g:22094:2: ( ruleXRelationalExpression )
-            // InternalPerspectiveDsl.g:22095:3: ruleXRelationalExpression
+            // InternalPerspectiveDsl.g:22009:2: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:22010:3: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
@@ -72036,17 +71769,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:22104:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:22019:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22108:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:22109:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:22023:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:22024:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:22109:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:22110:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:22024:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:22025:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
@@ -72081,23 +71814,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
-    // InternalPerspectiveDsl.g:22119:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+    // InternalPerspectiveDsl.g:22034:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
     public final void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22123:1: ( ( ( ruleOpCompare ) ) )
-            // InternalPerspectiveDsl.g:22124:2: ( ( ruleOpCompare ) )
+            // InternalPerspectiveDsl.g:22038:1: ( ( ( ruleOpCompare ) ) )
+            // InternalPerspectiveDsl.g:22039:2: ( ( ruleOpCompare ) )
             {
-            // InternalPerspectiveDsl.g:22124:2: ( ( ruleOpCompare ) )
-            // InternalPerspectiveDsl.g:22125:3: ( ruleOpCompare )
+            // InternalPerspectiveDsl.g:22039:2: ( ( ruleOpCompare ) )
+            // InternalPerspectiveDsl.g:22040:3: ( ruleOpCompare )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22126:3: ( ruleOpCompare )
-            // InternalPerspectiveDsl.g:22127:4: ruleOpCompare
+            // InternalPerspectiveDsl.g:22041:3: ( ruleOpCompare )
+            // InternalPerspectiveDsl.g:22042:4: ruleOpCompare
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
@@ -72138,17 +71871,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
-    // InternalPerspectiveDsl.g:22138:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+    // InternalPerspectiveDsl.g:22053:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22142:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalPerspectiveDsl.g:22143:2: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:22057:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalPerspectiveDsl.g:22058:2: ( ruleXOtherOperatorExpression )
             {
-            // InternalPerspectiveDsl.g:22143:2: ( ruleXOtherOperatorExpression )
-            // InternalPerspectiveDsl.g:22144:3: ruleXOtherOperatorExpression
+            // InternalPerspectiveDsl.g:22058:2: ( ruleXOtherOperatorExpression )
+            // InternalPerspectiveDsl.g:22059:3: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
@@ -72183,23 +71916,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22153:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+    // InternalPerspectiveDsl.g:22068:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
     public final void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22157:1: ( ( ( ruleOpOther ) ) )
-            // InternalPerspectiveDsl.g:22158:2: ( ( ruleOpOther ) )
+            // InternalPerspectiveDsl.g:22072:1: ( ( ( ruleOpOther ) ) )
+            // InternalPerspectiveDsl.g:22073:2: ( ( ruleOpOther ) )
             {
-            // InternalPerspectiveDsl.g:22158:2: ( ( ruleOpOther ) )
-            // InternalPerspectiveDsl.g:22159:3: ( ruleOpOther )
+            // InternalPerspectiveDsl.g:22073:2: ( ( ruleOpOther ) )
+            // InternalPerspectiveDsl.g:22074:3: ( ruleOpOther )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22160:3: ( ruleOpOther )
-            // InternalPerspectiveDsl.g:22161:4: ruleOpOther
+            // InternalPerspectiveDsl.g:22075:3: ( ruleOpOther )
+            // InternalPerspectiveDsl.g:22076:4: ruleOpOther
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
@@ -72240,17 +71973,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22172:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+    // InternalPerspectiveDsl.g:22087:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22176:1: ( ( ruleXAdditiveExpression ) )
-            // InternalPerspectiveDsl.g:22177:2: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:22091:1: ( ( ruleXAdditiveExpression ) )
+            // InternalPerspectiveDsl.g:22092:2: ( ruleXAdditiveExpression )
             {
-            // InternalPerspectiveDsl.g:22177:2: ( ruleXAdditiveExpression )
-            // InternalPerspectiveDsl.g:22178:3: ruleXAdditiveExpression
+            // InternalPerspectiveDsl.g:22092:2: ( ruleXAdditiveExpression )
+            // InternalPerspectiveDsl.g:22093:3: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
@@ -72285,23 +72018,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22187:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+    // InternalPerspectiveDsl.g:22102:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
     public final void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22191:1: ( ( ( ruleOpAdd ) ) )
-            // InternalPerspectiveDsl.g:22192:2: ( ( ruleOpAdd ) )
+            // InternalPerspectiveDsl.g:22106:1: ( ( ( ruleOpAdd ) ) )
+            // InternalPerspectiveDsl.g:22107:2: ( ( ruleOpAdd ) )
             {
-            // InternalPerspectiveDsl.g:22192:2: ( ( ruleOpAdd ) )
-            // InternalPerspectiveDsl.g:22193:3: ( ruleOpAdd )
+            // InternalPerspectiveDsl.g:22107:2: ( ( ruleOpAdd ) )
+            // InternalPerspectiveDsl.g:22108:3: ( ruleOpAdd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22194:3: ( ruleOpAdd )
-            // InternalPerspectiveDsl.g:22195:4: ruleOpAdd
+            // InternalPerspectiveDsl.g:22109:3: ( ruleOpAdd )
+            // InternalPerspectiveDsl.g:22110:4: ruleOpAdd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
@@ -72342,17 +72075,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22206:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+    // InternalPerspectiveDsl.g:22121:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22210:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalPerspectiveDsl.g:22211:2: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:22125:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalPerspectiveDsl.g:22126:2: ( ruleXMultiplicativeExpression )
             {
-            // InternalPerspectiveDsl.g:22211:2: ( ruleXMultiplicativeExpression )
-            // InternalPerspectiveDsl.g:22212:3: ruleXMultiplicativeExpression
+            // InternalPerspectiveDsl.g:22126:2: ( ruleXMultiplicativeExpression )
+            // InternalPerspectiveDsl.g:22127:3: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
@@ -72387,23 +72120,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
-    // InternalPerspectiveDsl.g:22221:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+    // InternalPerspectiveDsl.g:22136:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
     public final void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22225:1: ( ( ( ruleOpMulti ) ) )
-            // InternalPerspectiveDsl.g:22226:2: ( ( ruleOpMulti ) )
+            // InternalPerspectiveDsl.g:22140:1: ( ( ( ruleOpMulti ) ) )
+            // InternalPerspectiveDsl.g:22141:2: ( ( ruleOpMulti ) )
             {
-            // InternalPerspectiveDsl.g:22226:2: ( ( ruleOpMulti ) )
-            // InternalPerspectiveDsl.g:22227:3: ( ruleOpMulti )
+            // InternalPerspectiveDsl.g:22141:2: ( ( ruleOpMulti ) )
+            // InternalPerspectiveDsl.g:22142:3: ( ruleOpMulti )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22228:3: ( ruleOpMulti )
-            // InternalPerspectiveDsl.g:22229:4: ruleOpMulti
+            // InternalPerspectiveDsl.g:22143:3: ( ruleOpMulti )
+            // InternalPerspectiveDsl.g:22144:4: ruleOpMulti
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
@@ -72444,17 +72177,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
-    // InternalPerspectiveDsl.g:22240:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+    // InternalPerspectiveDsl.g:22155:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22244:1: ( ( ruleXUnaryOperation ) )
-            // InternalPerspectiveDsl.g:22245:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:22159:1: ( ( ruleXUnaryOperation ) )
+            // InternalPerspectiveDsl.g:22160:2: ( ruleXUnaryOperation )
             {
-            // InternalPerspectiveDsl.g:22245:2: ( ruleXUnaryOperation )
-            // InternalPerspectiveDsl.g:22246:3: ruleXUnaryOperation
+            // InternalPerspectiveDsl.g:22160:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:22161:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
@@ -72489,23 +72222,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
-    // InternalPerspectiveDsl.g:22255:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+    // InternalPerspectiveDsl.g:22170:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
     public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22259:1: ( ( ( ruleOpUnary ) ) )
-            // InternalPerspectiveDsl.g:22260:2: ( ( ruleOpUnary ) )
+            // InternalPerspectiveDsl.g:22174:1: ( ( ( ruleOpUnary ) ) )
+            // InternalPerspectiveDsl.g:22175:2: ( ( ruleOpUnary ) )
             {
-            // InternalPerspectiveDsl.g:22260:2: ( ( ruleOpUnary ) )
-            // InternalPerspectiveDsl.g:22261:3: ( ruleOpUnary )
+            // InternalPerspectiveDsl.g:22175:2: ( ( ruleOpUnary ) )
+            // InternalPerspectiveDsl.g:22176:3: ( ruleOpUnary )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22262:3: ( ruleOpUnary )
-            // InternalPerspectiveDsl.g:22263:4: ruleOpUnary
+            // InternalPerspectiveDsl.g:22177:3: ( ruleOpUnary )
+            // InternalPerspectiveDsl.g:22178:4: ruleOpUnary
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
@@ -72546,17 +72279,17 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
-    // InternalPerspectiveDsl.g:22274:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+    // InternalPerspectiveDsl.g:22189:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
     public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22278:1: ( ( ruleXUnaryOperation ) )
-            // InternalPerspectiveDsl.g:22279:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:22193:1: ( ( ruleXUnaryOperation ) )
+            // InternalPerspectiveDsl.g:22194:2: ( ruleXUnaryOperation )
             {
-            // InternalPerspectiveDsl.g:22279:2: ( ruleXUnaryOperation )
-            // InternalPerspectiveDsl.g:22280:3: ruleXUnaryOperation
+            // InternalPerspectiveDsl.g:22194:2: ( ruleXUnaryOperation )
+            // InternalPerspectiveDsl.g:22195:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
@@ -72591,17 +72324,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
-    // InternalPerspectiveDsl.g:22289:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:22204:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22293:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:22294:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:22208:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:22209:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:22294:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:22295:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:22209:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:22210:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
@@ -72636,23 +72369,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:22304:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
+    // InternalPerspectiveDsl.g:22219:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
     public final void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22308:1: ( ( ( ruleOpPostfix ) ) )
-            // InternalPerspectiveDsl.g:22309:2: ( ( ruleOpPostfix ) )
+            // InternalPerspectiveDsl.g:22223:1: ( ( ( ruleOpPostfix ) ) )
+            // InternalPerspectiveDsl.g:22224:2: ( ( ruleOpPostfix ) )
             {
-            // InternalPerspectiveDsl.g:22309:2: ( ( ruleOpPostfix ) )
-            // InternalPerspectiveDsl.g:22310:3: ( ruleOpPostfix )
+            // InternalPerspectiveDsl.g:22224:2: ( ( ruleOpPostfix ) )
+            // InternalPerspectiveDsl.g:22225:3: ( ruleOpPostfix )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22311:3: ( ruleOpPostfix )
-            // InternalPerspectiveDsl.g:22312:4: ruleOpPostfix
+            // InternalPerspectiveDsl.g:22226:3: ( ruleOpPostfix )
+            // InternalPerspectiveDsl.g:22227:4: ruleOpPostfix
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
@@ -72693,28 +72426,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
-    // InternalPerspectiveDsl.g:22323:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+    // InternalPerspectiveDsl.g:22238:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22327:1: ( ( ( '::' ) ) )
-            // InternalPerspectiveDsl.g:22328:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:22242:1: ( ( ( '::' ) ) )
+            // InternalPerspectiveDsl.g:22243:2: ( ( '::' ) )
             {
-            // InternalPerspectiveDsl.g:22328:2: ( ( '::' ) )
-            // InternalPerspectiveDsl.g:22329:3: ( '::' )
+            // InternalPerspectiveDsl.g:22243:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:22244:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22330:3: ( '::' )
-            // InternalPerspectiveDsl.g:22331:4: '::'
+            // InternalPerspectiveDsl.g:22245:3: ( '::' )
+            // InternalPerspectiveDsl.g:22246:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            match(input,121,FOLLOW_2); if (state.failed) return ;
+            match(input,120,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
@@ -72746,23 +72479,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
-    // InternalPerspectiveDsl.g:22342:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+    // InternalPerspectiveDsl.g:22257:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22346:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalPerspectiveDsl.g:22347:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:22261:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalPerspectiveDsl.g:22262:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalPerspectiveDsl.g:22347:2: ( ( ruleFeatureCallID ) )
-            // InternalPerspectiveDsl.g:22348:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:22262:2: ( ( ruleFeatureCallID ) )
+            // InternalPerspectiveDsl.g:22263:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22349:3: ( ruleFeatureCallID )
-            // InternalPerspectiveDsl.g:22350:4: ruleFeatureCallID
+            // InternalPerspectiveDsl.g:22264:3: ( ruleFeatureCallID )
+            // InternalPerspectiveDsl.g:22265:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
@@ -72803,17 +72536,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:22361:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+    // InternalPerspectiveDsl.g:22276:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
     public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22365:1: ( ( ruleXAssignment ) )
-            // InternalPerspectiveDsl.g:22366:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:22280:1: ( ( ruleXAssignment ) )
+            // InternalPerspectiveDsl.g:22281:2: ( ruleXAssignment )
             {
-            // InternalPerspectiveDsl.g:22366:2: ( ruleXAssignment )
-            // InternalPerspectiveDsl.g:22367:3: ruleXAssignment
+            // InternalPerspectiveDsl.g:22281:2: ( ruleXAssignment )
+            // InternalPerspectiveDsl.g:22282:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
@@ -72848,28 +72581,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
-    // InternalPerspectiveDsl.g:22376:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+    // InternalPerspectiveDsl.g:22291:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
     public final void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22380:1: ( ( ( '?.' ) ) )
-            // InternalPerspectiveDsl.g:22381:2: ( ( '?.' ) )
+            // InternalPerspectiveDsl.g:22295:1: ( ( ( '?.' ) ) )
+            // InternalPerspectiveDsl.g:22296:2: ( ( '?.' ) )
             {
-            // InternalPerspectiveDsl.g:22381:2: ( ( '?.' ) )
-            // InternalPerspectiveDsl.g:22382:3: ( '?.' )
+            // InternalPerspectiveDsl.g:22296:2: ( ( '?.' ) )
+            // InternalPerspectiveDsl.g:22297:3: ( '?.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22383:3: ( '?.' )
-            // InternalPerspectiveDsl.g:22384:4: '?.'
+            // InternalPerspectiveDsl.g:22298:3: ( '?.' )
+            // InternalPerspectiveDsl.g:22299:4: '?.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            match(input,122,FOLLOW_2); if (state.failed) return ;
+            match(input,121,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
@@ -72901,28 +72634,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
-    // InternalPerspectiveDsl.g:22395:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+    // InternalPerspectiveDsl.g:22310:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22399:1: ( ( ( '::' ) ) )
-            // InternalPerspectiveDsl.g:22400:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:22314:1: ( ( ( '::' ) ) )
+            // InternalPerspectiveDsl.g:22315:2: ( ( '::' ) )
             {
-            // InternalPerspectiveDsl.g:22400:2: ( ( '::' ) )
-            // InternalPerspectiveDsl.g:22401:3: ( '::' )
+            // InternalPerspectiveDsl.g:22315:2: ( ( '::' ) )
+            // InternalPerspectiveDsl.g:22316:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22402:3: ( '::' )
-            // InternalPerspectiveDsl.g:22403:4: '::'
+            // InternalPerspectiveDsl.g:22317:3: ( '::' )
+            // InternalPerspectiveDsl.g:22318:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            match(input,121,FOLLOW_2); if (state.failed) return ;
+            match(input,120,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
@@ -72954,17 +72687,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
-    // InternalPerspectiveDsl.g:22414:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:22329:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22418:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:22419:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:22333:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:22334:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:22419:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:22420:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:22334:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:22335:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
@@ -72999,17 +72732,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
-    // InternalPerspectiveDsl.g:22429:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:22344:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22433:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:22434:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:22348:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:22349:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:22434:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:22435:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:22349:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:22350:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
@@ -73044,23 +72777,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
-    // InternalPerspectiveDsl.g:22444:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalPerspectiveDsl.g:22359:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22448:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalPerspectiveDsl.g:22449:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:22363:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalPerspectiveDsl.g:22364:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalPerspectiveDsl.g:22449:2: ( ( ruleIdOrSuper ) )
-            // InternalPerspectiveDsl.g:22450:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:22364:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:22365:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22451:3: ( ruleIdOrSuper )
-            // InternalPerspectiveDsl.g:22452:4: ruleIdOrSuper
+            // InternalPerspectiveDsl.g:22366:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:22367:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
@@ -73101,28 +72834,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
-    // InternalPerspectiveDsl.g:22463:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:22378:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22467:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:22468:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:22382:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:22383:2: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:22468:2: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:22469:3: ( '(' )
+            // InternalPerspectiveDsl.g:22383:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:22384:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:22470:3: ( '(' )
-            // InternalPerspectiveDsl.g:22471:4: '('
+            // InternalPerspectiveDsl.g:22385:3: ( '(' )
+            // InternalPerspectiveDsl.g:22386:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
@@ -73154,17 +72887,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
-    // InternalPerspectiveDsl.g:22482:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalPerspectiveDsl.g:22397:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22486:1: ( ( ruleXShortClosure ) )
-            // InternalPerspectiveDsl.g:22487:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:22401:1: ( ( ruleXShortClosure ) )
+            // InternalPerspectiveDsl.g:22402:2: ( ruleXShortClosure )
             {
-            // InternalPerspectiveDsl.g:22487:2: ( ruleXShortClosure )
-            // InternalPerspectiveDsl.g:22488:3: ruleXShortClosure
+            // InternalPerspectiveDsl.g:22402:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:22403:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
@@ -73199,17 +72932,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
-    // InternalPerspectiveDsl.g:22497:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22412:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22501:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22502:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22416:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22417:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22502:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22503:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22417:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22418:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
@@ -73244,17 +72977,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
-    // InternalPerspectiveDsl.g:22512:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22427:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22516:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22517:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22431:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22432:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22517:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22518:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22432:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22433:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
@@ -73289,17 +73022,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
-    // InternalPerspectiveDsl.g:22527:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+    // InternalPerspectiveDsl.g:22442:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22531:1: ( ( ruleXClosure ) )
-            // InternalPerspectiveDsl.g:22532:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:22446:1: ( ( ruleXClosure ) )
+            // InternalPerspectiveDsl.g:22447:2: ( ruleXClosure )
             {
-            // InternalPerspectiveDsl.g:22532:2: ( ruleXClosure )
-            // InternalPerspectiveDsl.g:22533:3: ruleXClosure
+            // InternalPerspectiveDsl.g:22447:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:22448:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
@@ -73334,17 +73067,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
-    // InternalPerspectiveDsl.g:22542:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22457:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22546:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22547:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22461:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22462:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22547:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22548:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22462:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22463:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -73379,17 +73112,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:22557:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22472:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22561:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22562:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22476:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22477:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22562:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22563:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22477:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22478:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -73424,17 +73157,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
-    // InternalPerspectiveDsl.g:22572:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22487:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22576:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22577:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22491:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22492:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22577:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22578:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22492:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22493:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -73469,17 +73202,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:22587:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22502:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22591:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22592:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22506:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22507:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22592:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22593:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22507:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22508:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -73514,17 +73247,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
-    // InternalPerspectiveDsl.g:22602:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:22517:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22606:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:22607:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22521:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:22522:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:22607:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:22608:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:22522:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22523:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
@@ -73559,17 +73292,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
-    // InternalPerspectiveDsl.g:22617:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:22532:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22621:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:22622:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22536:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:22537:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:22622:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:22623:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:22537:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22538:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
@@ -73604,28 +73337,28 @@
 
 
     // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
-    // InternalPerspectiveDsl.g:22632:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+    // InternalPerspectiveDsl.g:22547:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
     public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22636:1: ( ( ( '|' ) ) )
-            // InternalPerspectiveDsl.g:22637:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:22551:1: ( ( ( '|' ) ) )
+            // InternalPerspectiveDsl.g:22552:2: ( ( '|' ) )
             {
-            // InternalPerspectiveDsl.g:22637:2: ( ( '|' ) )
-            // InternalPerspectiveDsl.g:22638:3: ( '|' )
+            // InternalPerspectiveDsl.g:22552:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:22553:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22639:3: ( '|' )
-            // InternalPerspectiveDsl.g:22640:4: '|'
+            // InternalPerspectiveDsl.g:22554:3: ( '|' )
+            // InternalPerspectiveDsl.g:22555:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            match(input,123,FOLLOW_2); if (state.failed) return ;
+            match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
@@ -73657,17 +73390,17 @@
 
 
     // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:22651:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+    // InternalPerspectiveDsl.g:22566:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
     public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22655:1: ( ( ruleXExpressionInClosure ) )
-            // InternalPerspectiveDsl.g:22656:2: ( ruleXExpressionInClosure )
+            // InternalPerspectiveDsl.g:22570:1: ( ( ruleXExpressionInClosure ) )
+            // InternalPerspectiveDsl.g:22571:2: ( ruleXExpressionInClosure )
             {
-            // InternalPerspectiveDsl.g:22656:2: ( ruleXExpressionInClosure )
-            // InternalPerspectiveDsl.g:22657:3: ruleXExpressionInClosure
+            // InternalPerspectiveDsl.g:22571:2: ( ruleXExpressionInClosure )
+            // InternalPerspectiveDsl.g:22572:3: ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
@@ -73702,17 +73435,17 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
-    // InternalPerspectiveDsl.g:22666:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:22581:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22670:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:22671:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:22585:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:22586:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:22671:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:22672:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:22586:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:22587:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
@@ -73747,17 +73480,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
-    // InternalPerspectiveDsl.g:22681:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:22596:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22685:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:22686:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22600:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:22601:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:22686:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:22687:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:22601:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22602:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
@@ -73792,17 +73525,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
-    // InternalPerspectiveDsl.g:22696:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:22611:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22700:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:22701:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22615:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:22616:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:22701:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:22702:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:22616:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22617:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
@@ -73837,28 +73570,28 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
-    // InternalPerspectiveDsl.g:22711:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+    // InternalPerspectiveDsl.g:22626:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
     public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22715:1: ( ( ( '|' ) ) )
-            // InternalPerspectiveDsl.g:22716:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:22630:1: ( ( ( '|' ) ) )
+            // InternalPerspectiveDsl.g:22631:2: ( ( '|' ) )
             {
-            // InternalPerspectiveDsl.g:22716:2: ( ( '|' ) )
-            // InternalPerspectiveDsl.g:22717:3: ( '|' )
+            // InternalPerspectiveDsl.g:22631:2: ( ( '|' ) )
+            // InternalPerspectiveDsl.g:22632:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            // InternalPerspectiveDsl.g:22718:3: ( '|' )
-            // InternalPerspectiveDsl.g:22719:4: '|'
+            // InternalPerspectiveDsl.g:22633:3: ( '|' )
+            // InternalPerspectiveDsl.g:22634:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            match(input,123,FOLLOW_2); if (state.failed) return ;
+            match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
@@ -73890,17 +73623,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
-    // InternalPerspectiveDsl.g:22730:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22645:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22734:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22735:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22649:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22650:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22735:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22736:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22650:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22651:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
@@ -73935,17 +73668,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__IfAssignment_3"
-    // InternalPerspectiveDsl.g:22745:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22660:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22749:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22750:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22664:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22665:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22750:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22751:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22665:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22666:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
@@ -73980,17 +73713,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
-    // InternalPerspectiveDsl.g:22760:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22675:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22764:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22765:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22679:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22680:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22765:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22766:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22680:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22681:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
@@ -74025,17 +73758,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
-    // InternalPerspectiveDsl.g:22775:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22690:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22779:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22780:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22694:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22695:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22780:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22781:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22695:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22696:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
@@ -74070,17 +73803,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
-    // InternalPerspectiveDsl.g:22790:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:22705:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22794:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:22795:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22709:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:22710:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:22795:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:22796:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:22710:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22711:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
@@ -74115,17 +73848,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
-    // InternalPerspectiveDsl.g:22805:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22720:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22809:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22810:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22724:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22725:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22810:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22811:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22725:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22726:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
@@ -74160,17 +73893,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
-    // InternalPerspectiveDsl.g:22820:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:22735:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22824:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:22825:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22739:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:22740:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:22825:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:22826:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:22740:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22741:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
@@ -74205,17 +73938,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
-    // InternalPerspectiveDsl.g:22835:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22750:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22839:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22840:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22754:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22755:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22840:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22841:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22755:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22756:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
@@ -74250,17 +73983,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
-    // InternalPerspectiveDsl.g:22850:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+    // InternalPerspectiveDsl.g:22765:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
     public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22854:1: ( ( ruleXCasePart ) )
-            // InternalPerspectiveDsl.g:22855:2: ( ruleXCasePart )
+            // InternalPerspectiveDsl.g:22769:1: ( ( ruleXCasePart ) )
+            // InternalPerspectiveDsl.g:22770:2: ( ruleXCasePart )
             {
-            // InternalPerspectiveDsl.g:22855:2: ( ruleXCasePart )
-            // InternalPerspectiveDsl.g:22856:3: ruleXCasePart
+            // InternalPerspectiveDsl.g:22770:2: ( ruleXCasePart )
+            // InternalPerspectiveDsl.g:22771:3: ruleXCasePart
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
@@ -74295,17 +74028,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
-    // InternalPerspectiveDsl.g:22865:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22780:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22869:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22870:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22784:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22785:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22870:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22871:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22785:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22786:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
@@ -74340,17 +74073,17 @@
 
 
     // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
-    // InternalPerspectiveDsl.g:22880:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:22795:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22884:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:22885:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:22799:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:22800:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:22885:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:22886:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:22800:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:22801:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
@@ -74385,17 +74118,17 @@
 
 
     // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
-    // InternalPerspectiveDsl.g:22895:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22810:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22899:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22900:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22814:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22815:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22900:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22901:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22815:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22816:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
@@ -74430,17 +74163,17 @@
 
 
     // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
-    // InternalPerspectiveDsl.g:22910:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22825:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22914:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22915:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22829:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22830:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22915:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22916:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22830:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22831:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
@@ -74475,28 +74208,28 @@
 
 
     // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
-    // InternalPerspectiveDsl.g:22925:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
+    // InternalPerspectiveDsl.g:22840:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
     public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22929:1: ( ( ( ',' ) ) )
-            // InternalPerspectiveDsl.g:22930:2: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:22844:1: ( ( ( ',' ) ) )
+            // InternalPerspectiveDsl.g:22845:2: ( ( ',' ) )
             {
-            // InternalPerspectiveDsl.g:22930:2: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:22931:3: ( ',' )
+            // InternalPerspectiveDsl.g:22845:2: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:22846:3: ( ',' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            // InternalPerspectiveDsl.g:22932:3: ( ',' )
-            // InternalPerspectiveDsl.g:22933:4: ','
+            // InternalPerspectiveDsl.g:22847:3: ( ',' )
+            // InternalPerspectiveDsl.g:22848:4: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
@@ -74528,17 +74261,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
-    // InternalPerspectiveDsl.g:22944:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:22859:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
     public final void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22948:1: ( ( ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:22949:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22863:1: ( ( ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:22864:2: ( ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:22949:2: ( ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:22950:3: ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:22864:2: ( ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:22865:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
@@ -74573,17 +74306,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
-    // InternalPerspectiveDsl.g:22959:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22874:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22963:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22964:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22878:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22879:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22964:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22965:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22879:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22880:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
@@ -74618,17 +74351,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
-    // InternalPerspectiveDsl.g:22974:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22889:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22978:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:22979:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22893:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22894:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:22979:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:22980:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22894:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22895:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
@@ -74663,17 +74396,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
-    // InternalPerspectiveDsl.g:22989:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:22904:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:22993:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:22994:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:22908:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:22909:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:22994:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:22995:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:22909:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:22910:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
@@ -74708,17 +74441,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:23004:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:22919:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23008:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:23009:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:22923:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:22924:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:23009:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:23010:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:22924:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:22925:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
@@ -74753,17 +74486,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
-    // InternalPerspectiveDsl.g:23019:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22934:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23023:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23024:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22938:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22939:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23024:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23025:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22939:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22940:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
@@ -74798,17 +74531,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
-    // InternalPerspectiveDsl.g:23034:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22949:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23038:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23039:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22953:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22954:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23039:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23040:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22954:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22955:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
@@ -74843,17 +74576,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
-    // InternalPerspectiveDsl.g:23049:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22964:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23053:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23054:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22968:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22969:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23054:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23055:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22969:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22970:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
@@ -74888,17 +74621,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
-    // InternalPerspectiveDsl.g:23064:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22979:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23068:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23069:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22983:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22984:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23069:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23070:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22984:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22985:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
@@ -74933,17 +74666,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
-    // InternalPerspectiveDsl.g:23079:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:22994:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23083:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23084:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:22998:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:22999:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23084:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23085:3: ruleXExpression
+            // InternalPerspectiveDsl.g:22999:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23000:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
@@ -74978,17 +74711,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
-    // InternalPerspectiveDsl.g:23094:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23009:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23098:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23099:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23013:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23014:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23099:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23100:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23014:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23015:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
@@ -75023,17 +74756,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
-    // InternalPerspectiveDsl.g:23109:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23024:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23113:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23114:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23028:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23029:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23114:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23115:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23029:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23030:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
@@ -75068,17 +74801,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
-    // InternalPerspectiveDsl.g:23124:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23039:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23128:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23129:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23043:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23044:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23129:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23130:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23044:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23045:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
@@ -75113,17 +74846,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
-    // InternalPerspectiveDsl.g:23139:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalPerspectiveDsl.g:23054:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23143:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalPerspectiveDsl.g:23144:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23058:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalPerspectiveDsl.g:23059:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalPerspectiveDsl.g:23144:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalPerspectiveDsl.g:23145:3: ruleXExpressionOrVarDeclaration
+            // InternalPerspectiveDsl.g:23059:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalPerspectiveDsl.g:23060:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
@@ -75158,28 +74891,28 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
-    // InternalPerspectiveDsl.g:23154:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+    // InternalPerspectiveDsl.g:23069:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
     public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23158:1: ( ( ( 'var' ) ) )
-            // InternalPerspectiveDsl.g:23159:2: ( ( 'var' ) )
+            // InternalPerspectiveDsl.g:23073:1: ( ( ( 'var' ) ) )
+            // InternalPerspectiveDsl.g:23074:2: ( ( 'var' ) )
             {
-            // InternalPerspectiveDsl.g:23159:2: ( ( 'var' ) )
-            // InternalPerspectiveDsl.g:23160:3: ( 'var' )
+            // InternalPerspectiveDsl.g:23074:2: ( ( 'var' ) )
+            // InternalPerspectiveDsl.g:23075:3: ( 'var' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:23161:3: ( 'var' )
-            // InternalPerspectiveDsl.g:23162:4: 'var'
+            // InternalPerspectiveDsl.g:23076:3: ( 'var' )
+            // InternalPerspectiveDsl.g:23077:4: 'var'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            match(input,124,FOLLOW_2); if (state.failed) return ;
+            match(input,123,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
@@ -75211,17 +74944,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
-    // InternalPerspectiveDsl.g:23173:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23088:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23177:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23178:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23092:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23093:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23178:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23179:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23093:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23094:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
@@ -75256,17 +74989,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
-    // InternalPerspectiveDsl.g:23188:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:23103:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23192:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:23193:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23107:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:23108:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:23193:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:23194:3: ruleValidID
+            // InternalPerspectiveDsl.g:23108:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23109:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
@@ -75301,17 +75034,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
-    // InternalPerspectiveDsl.g:23203:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:23118:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23207:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:23208:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23122:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:23123:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:23208:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:23209:3: ruleValidID
+            // InternalPerspectiveDsl.g:23123:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23124:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
@@ -75346,17 +75079,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
-    // InternalPerspectiveDsl.g:23218:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23133:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
     public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23222:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23223:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23137:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23138:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23223:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23224:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23138:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23139:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
@@ -75391,17 +75124,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalPerspectiveDsl.g:23233:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23148:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23237:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23238:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23152:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23153:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23238:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23239:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23153:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23154:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -75436,17 +75169,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
-    // InternalPerspectiveDsl.g:23248:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:23163:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23252:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:23253:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23167:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:23168:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:23253:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:23254:3: ruleValidID
+            // InternalPerspectiveDsl.g:23168:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23169:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -75481,17 +75214,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalPerspectiveDsl.g:23263:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23178:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23267:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23268:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23182:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23183:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23268:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23269:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23183:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23184:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -75526,17 +75259,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
-    // InternalPerspectiveDsl.g:23278:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalPerspectiveDsl.g:23193:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23282:1: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:23283:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23197:1: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:23198:2: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:23283:2: ( ruleValidID )
-            // InternalPerspectiveDsl.g:23284:3: ruleValidID
+            // InternalPerspectiveDsl.g:23198:2: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23199:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -75571,17 +75304,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
-    // InternalPerspectiveDsl.g:23293:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23208:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23297:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23298:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23212:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23213:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23298:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23299:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23213:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23214:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -75616,17 +75349,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
-    // InternalPerspectiveDsl.g:23308:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23223:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23312:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23313:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23227:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23228:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23313:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23314:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23228:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23229:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -75661,23 +75394,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
-    // InternalPerspectiveDsl.g:23323:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalPerspectiveDsl.g:23238:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23327:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalPerspectiveDsl.g:23328:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:23242:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalPerspectiveDsl.g:23243:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalPerspectiveDsl.g:23328:2: ( ( ruleIdOrSuper ) )
-            // InternalPerspectiveDsl.g:23329:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:23243:2: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:23244:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:23330:3: ( ruleIdOrSuper )
-            // InternalPerspectiveDsl.g:23331:4: ruleIdOrSuper
+            // InternalPerspectiveDsl.g:23245:3: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:23246:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
@@ -75718,28 +75451,28 @@
 
 
     // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
-    // InternalPerspectiveDsl.g:23342:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:23257:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
     public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23346:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:23347:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:23261:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:23262:2: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:23347:2: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:23348:3: ( '(' )
+            // InternalPerspectiveDsl.g:23262:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:23263:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            // InternalPerspectiveDsl.g:23349:3: ( '(' )
-            // InternalPerspectiveDsl.g:23350:4: '('
+            // InternalPerspectiveDsl.g:23264:3: ( '(' )
+            // InternalPerspectiveDsl.g:23265:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
@@ -75771,17 +75504,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
-    // InternalPerspectiveDsl.g:23361:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalPerspectiveDsl.g:23276:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23365:1: ( ( ruleXShortClosure ) )
-            // InternalPerspectiveDsl.g:23366:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:23280:1: ( ( ruleXShortClosure ) )
+            // InternalPerspectiveDsl.g:23281:2: ( ruleXShortClosure )
             {
-            // InternalPerspectiveDsl.g:23366:2: ( ruleXShortClosure )
-            // InternalPerspectiveDsl.g:23367:3: ruleXShortClosure
+            // InternalPerspectiveDsl.g:23281:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:23282:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
@@ -75816,17 +75549,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
-    // InternalPerspectiveDsl.g:23376:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23291:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23380:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23381:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23295:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23296:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23381:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23382:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23296:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23297:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
@@ -75861,17 +75594,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
-    // InternalPerspectiveDsl.g:23391:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23306:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23395:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23396:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23310:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23311:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23396:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23397:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23311:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23312:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
@@ -75906,17 +75639,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
-    // InternalPerspectiveDsl.g:23406:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+    // InternalPerspectiveDsl.g:23321:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23410:1: ( ( ruleXClosure ) )
-            // InternalPerspectiveDsl.g:23411:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:23325:1: ( ( ruleXClosure ) )
+            // InternalPerspectiveDsl.g:23326:2: ( ruleXClosure )
             {
-            // InternalPerspectiveDsl.g:23411:2: ( ruleXClosure )
-            // InternalPerspectiveDsl.g:23412:3: ruleXClosure
+            // InternalPerspectiveDsl.g:23326:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:23327:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
@@ -75951,23 +75684,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
-    // InternalPerspectiveDsl.g:23421:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:23336:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23425:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:23426:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:23340:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:23341:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:23426:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:23427:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:23341:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:23342:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
             }
-            // InternalPerspectiveDsl.g:23428:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:23429:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:23343:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:23344:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
@@ -76008,17 +75741,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
-    // InternalPerspectiveDsl.g:23440:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23355:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23444:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23445:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23359:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23360:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23445:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23446:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23360:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23361:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
@@ -76053,17 +75786,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
-    // InternalPerspectiveDsl.g:23455:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23370:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23459:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23460:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23374:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23375:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23460:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23461:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23375:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23376:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
@@ -76098,28 +75831,28 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
-    // InternalPerspectiveDsl.g:23470:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:23385:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
     public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23474:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:23475:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:23389:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:23390:2: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:23475:2: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:23476:3: ( '(' )
+            // InternalPerspectiveDsl.g:23390:2: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:23391:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            // InternalPerspectiveDsl.g:23477:3: ( '(' )
-            // InternalPerspectiveDsl.g:23478:4: '('
+            // InternalPerspectiveDsl.g:23392:3: ( '(' )
+            // InternalPerspectiveDsl.g:23393:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
@@ -76151,17 +75884,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
-    // InternalPerspectiveDsl.g:23489:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+    // InternalPerspectiveDsl.g:23404:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23493:1: ( ( ruleXShortClosure ) )
-            // InternalPerspectiveDsl.g:23494:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:23408:1: ( ( ruleXShortClosure ) )
+            // InternalPerspectiveDsl.g:23409:2: ( ruleXShortClosure )
             {
-            // InternalPerspectiveDsl.g:23494:2: ( ruleXShortClosure )
-            // InternalPerspectiveDsl.g:23495:3: ruleXShortClosure
+            // InternalPerspectiveDsl.g:23409:2: ( ruleXShortClosure )
+            // InternalPerspectiveDsl.g:23410:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
@@ -76196,17 +75929,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
-    // InternalPerspectiveDsl.g:23504:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23419:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23508:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23509:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23423:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23424:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23509:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23510:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23424:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23425:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
@@ -76241,17 +75974,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
-    // InternalPerspectiveDsl.g:23519:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23434:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23523:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23524:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23438:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23439:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23524:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23525:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23439:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23440:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
@@ -76286,17 +76019,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
-    // InternalPerspectiveDsl.g:23534:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+    // InternalPerspectiveDsl.g:23449:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23538:1: ( ( ruleXClosure ) )
-            // InternalPerspectiveDsl.g:23539:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:23453:1: ( ( ruleXClosure ) )
+            // InternalPerspectiveDsl.g:23454:2: ( ruleXClosure )
             {
-            // InternalPerspectiveDsl.g:23539:2: ( ruleXClosure )
-            // InternalPerspectiveDsl.g:23540:3: ruleXClosure
+            // InternalPerspectiveDsl.g:23454:2: ( ruleXClosure )
+            // InternalPerspectiveDsl.g:23455:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
@@ -76331,28 +76064,28 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
-    // InternalPerspectiveDsl.g:23549:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+    // InternalPerspectiveDsl.g:23464:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
     public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23553:1: ( ( ( 'true' ) ) )
-            // InternalPerspectiveDsl.g:23554:2: ( ( 'true' ) )
+            // InternalPerspectiveDsl.g:23468:1: ( ( ( 'true' ) ) )
+            // InternalPerspectiveDsl.g:23469:2: ( ( 'true' ) )
             {
-            // InternalPerspectiveDsl.g:23554:2: ( ( 'true' ) )
-            // InternalPerspectiveDsl.g:23555:3: ( 'true' )
+            // InternalPerspectiveDsl.g:23469:2: ( ( 'true' ) )
+            // InternalPerspectiveDsl.g:23470:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23556:3: ( 'true' )
-            // InternalPerspectiveDsl.g:23557:4: 'true'
+            // InternalPerspectiveDsl.g:23471:3: ( 'true' )
+            // InternalPerspectiveDsl.g:23472:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            match(input,125,FOLLOW_2); if (state.failed) return ;
+            match(input,124,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
@@ -76384,17 +76117,17 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
-    // InternalPerspectiveDsl.g:23568:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+    // InternalPerspectiveDsl.g:23483:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
     public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23572:1: ( ( ruleNumber ) )
-            // InternalPerspectiveDsl.g:23573:2: ( ruleNumber )
+            // InternalPerspectiveDsl.g:23487:1: ( ( ruleNumber ) )
+            // InternalPerspectiveDsl.g:23488:2: ( ruleNumber )
             {
-            // InternalPerspectiveDsl.g:23573:2: ( ruleNumber )
-            // InternalPerspectiveDsl.g:23574:3: ruleNumber
+            // InternalPerspectiveDsl.g:23488:2: ( ruleNumber )
+            // InternalPerspectiveDsl.g:23489:3: ruleNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
@@ -76429,17 +76162,17 @@
 
 
     // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
-    // InternalPerspectiveDsl.g:23583:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+    // InternalPerspectiveDsl.g:23498:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
     public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23587:1: ( ( RULE_STRING ) )
-            // InternalPerspectiveDsl.g:23588:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:23502:1: ( ( RULE_STRING ) )
+            // InternalPerspectiveDsl.g:23503:2: ( RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:23588:2: ( RULE_STRING )
-            // InternalPerspectiveDsl.g:23589:3: RULE_STRING
+            // InternalPerspectiveDsl.g:23503:2: ( RULE_STRING )
+            // InternalPerspectiveDsl.g:23504:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
@@ -76470,23 +76203,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
-    // InternalPerspectiveDsl.g:23598:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:23513:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23602:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:23603:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:23517:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:23518:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:23603:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:23604:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:23518:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:23519:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
             }
-            // InternalPerspectiveDsl.g:23605:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:23606:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:23520:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:23521:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
@@ -76527,17 +76260,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
-    // InternalPerspectiveDsl.g:23617:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+    // InternalPerspectiveDsl.g:23532:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
     public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23621:1: ( ( ruleArrayBrackets ) )
-            // InternalPerspectiveDsl.g:23622:2: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:23536:1: ( ( ruleArrayBrackets ) )
+            // InternalPerspectiveDsl.g:23537:2: ( ruleArrayBrackets )
             {
-            // InternalPerspectiveDsl.g:23622:2: ( ruleArrayBrackets )
-            // InternalPerspectiveDsl.g:23623:3: ruleArrayBrackets
+            // InternalPerspectiveDsl.g:23537:2: ( ruleArrayBrackets )
+            // InternalPerspectiveDsl.g:23538:3: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
@@ -76572,17 +76305,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:23632:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23547:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23636:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23637:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23551:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23552:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23637:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23638:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23552:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23553:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -76617,17 +76350,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:23647:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23562:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23651:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23652:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23566:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23567:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23652:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23653:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23567:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23568:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -76662,17 +76395,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
-    // InternalPerspectiveDsl.g:23662:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23577:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23666:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23667:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23581:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23582:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23667:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23668:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23582:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23583:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -76707,17 +76440,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
-    // InternalPerspectiveDsl.g:23677:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+    // InternalPerspectiveDsl.g:23592:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
     public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23681:1: ( ( ruleXCatchClause ) )
-            // InternalPerspectiveDsl.g:23682:2: ( ruleXCatchClause )
+            // InternalPerspectiveDsl.g:23596:1: ( ( ruleXCatchClause ) )
+            // InternalPerspectiveDsl.g:23597:2: ( ruleXCatchClause )
             {
-            // InternalPerspectiveDsl.g:23682:2: ( ruleXCatchClause )
-            // InternalPerspectiveDsl.g:23683:3: ruleXCatchClause
+            // InternalPerspectiveDsl.g:23597:2: ( ruleXCatchClause )
+            // InternalPerspectiveDsl.g:23598:3: ruleXCatchClause
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
@@ -76752,17 +76485,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
-    // InternalPerspectiveDsl.g:23692:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23607:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23696:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23697:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23611:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23612:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23697:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23698:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23612:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23613:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
@@ -76797,17 +76530,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
-    // InternalPerspectiveDsl.g:23707:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23622:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23711:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23712:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23626:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23627:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23712:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23713:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23627:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23628:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
@@ -76842,17 +76575,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
-    // InternalPerspectiveDsl.g:23722:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23637:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23726:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23727:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23641:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23642:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23727:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23728:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23642:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23643:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
@@ -76887,17 +76620,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
-    // InternalPerspectiveDsl.g:23737:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23652:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23741:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23742:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23656:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23657:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23742:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23743:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23657:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23658:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
@@ -76932,17 +76665,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
-    // InternalPerspectiveDsl.g:23752:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+    // InternalPerspectiveDsl.g:23667:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
     public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23756:1: ( ( ruleFullJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:23757:2: ( ruleFullJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23671:1: ( ( ruleFullJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:23672:2: ( ruleFullJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:23757:2: ( ruleFullJvmFormalParameter )
-            // InternalPerspectiveDsl.g:23758:3: ruleFullJvmFormalParameter
+            // InternalPerspectiveDsl.g:23672:2: ( ruleFullJvmFormalParameter )
+            // InternalPerspectiveDsl.g:23673:3: ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
@@ -76977,17 +76710,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
-    // InternalPerspectiveDsl.g:23767:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:23682:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
     public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23771:1: ( ( ruleXExpression ) )
-            // InternalPerspectiveDsl.g:23772:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23686:1: ( ( ruleXExpression ) )
+            // InternalPerspectiveDsl.g:23687:2: ( ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:23772:2: ( ruleXExpression )
-            // InternalPerspectiveDsl.g:23773:3: ruleXExpression
+            // InternalPerspectiveDsl.g:23687:2: ( ruleXExpression )
+            // InternalPerspectiveDsl.g:23688:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
@@ -77022,17 +76755,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
-    // InternalPerspectiveDsl.g:23782:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23697:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23786:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23787:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23701:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23702:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23787:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23788:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23702:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23703:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
@@ -77067,17 +76800,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
-    // InternalPerspectiveDsl.g:23797:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23712:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23801:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23802:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23716:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23717:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23802:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23803:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23717:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23718:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
@@ -77112,17 +76845,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
-    // InternalPerspectiveDsl.g:23812:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23727:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23816:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23817:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23731:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23732:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23817:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23818:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23732:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23733:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
@@ -77157,23 +76890,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
-    // InternalPerspectiveDsl.g:23827:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+    // InternalPerspectiveDsl.g:23742:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23831:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalPerspectiveDsl.g:23832:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:23746:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalPerspectiveDsl.g:23747:2: ( ( ruleQualifiedName ) )
             {
-            // InternalPerspectiveDsl.g:23832:2: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:23833:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:23747:2: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:23748:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
             }
-            // InternalPerspectiveDsl.g:23834:3: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:23835:4: ruleQualifiedName
+            // InternalPerspectiveDsl.g:23749:3: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:23750:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
@@ -77214,17 +76947,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
-    // InternalPerspectiveDsl.g:23846:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23761:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23850:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23851:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23765:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23766:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23851:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23852:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23766:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23767:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -77259,17 +76992,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
-    // InternalPerspectiveDsl.g:23861:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23776:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23865:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23866:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23780:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23781:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23866:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23867:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23781:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23782:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -77304,23 +77037,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
-    // InternalPerspectiveDsl.g:23876:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
+    // InternalPerspectiveDsl.g:23791:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23880:1: ( ( ( ruleValidID ) ) )
-            // InternalPerspectiveDsl.g:23881:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:23795:1: ( ( ( ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:23796:2: ( ( ruleValidID ) )
             {
-            // InternalPerspectiveDsl.g:23881:2: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:23882:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23796:2: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:23797:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
             }
-            // InternalPerspectiveDsl.g:23883:3: ( ruleValidID )
-            // InternalPerspectiveDsl.g:23884:4: ruleValidID
+            // InternalPerspectiveDsl.g:23798:3: ( ruleValidID )
+            // InternalPerspectiveDsl.g:23799:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
@@ -77361,17 +77094,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
-    // InternalPerspectiveDsl.g:23895:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23810:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23899:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23900:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23814:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23815:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23900:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23901:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23815:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23816:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
@@ -77406,17 +77139,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
-    // InternalPerspectiveDsl.g:23910:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalPerspectiveDsl.g:23825:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23914:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalPerspectiveDsl.g:23915:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23829:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalPerspectiveDsl.g:23830:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalPerspectiveDsl.g:23915:2: ( ruleJvmArgumentTypeReference )
-            // InternalPerspectiveDsl.g:23916:3: ruleJvmArgumentTypeReference
+            // InternalPerspectiveDsl.g:23830:2: ( ruleJvmArgumentTypeReference )
+            // InternalPerspectiveDsl.g:23831:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
@@ -77451,17 +77184,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
-    // InternalPerspectiveDsl.g:23925:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
+    // InternalPerspectiveDsl.g:23840:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23929:1: ( ( ruleJvmUpperBound ) )
-            // InternalPerspectiveDsl.g:23930:2: ( ruleJvmUpperBound )
+            // InternalPerspectiveDsl.g:23844:1: ( ( ruleJvmUpperBound ) )
+            // InternalPerspectiveDsl.g:23845:2: ( ruleJvmUpperBound )
             {
-            // InternalPerspectiveDsl.g:23930:2: ( ruleJvmUpperBound )
-            // InternalPerspectiveDsl.g:23931:3: ruleJvmUpperBound
+            // InternalPerspectiveDsl.g:23845:2: ( ruleJvmUpperBound )
+            // InternalPerspectiveDsl.g:23846:3: ruleJvmUpperBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
@@ -77496,17 +77229,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
-    // InternalPerspectiveDsl.g:23940:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
+    // InternalPerspectiveDsl.g:23855:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23944:1: ( ( ruleJvmUpperBoundAnded ) )
-            // InternalPerspectiveDsl.g:23945:2: ( ruleJvmUpperBoundAnded )
+            // InternalPerspectiveDsl.g:23859:1: ( ( ruleJvmUpperBoundAnded ) )
+            // InternalPerspectiveDsl.g:23860:2: ( ruleJvmUpperBoundAnded )
             {
-            // InternalPerspectiveDsl.g:23945:2: ( ruleJvmUpperBoundAnded )
-            // InternalPerspectiveDsl.g:23946:3: ruleJvmUpperBoundAnded
+            // InternalPerspectiveDsl.g:23860:2: ( ruleJvmUpperBoundAnded )
+            // InternalPerspectiveDsl.g:23861:3: ruleJvmUpperBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
@@ -77541,17 +77274,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
-    // InternalPerspectiveDsl.g:23955:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
+    // InternalPerspectiveDsl.g:23870:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23959:1: ( ( ruleJvmLowerBound ) )
-            // InternalPerspectiveDsl.g:23960:2: ( ruleJvmLowerBound )
+            // InternalPerspectiveDsl.g:23874:1: ( ( ruleJvmLowerBound ) )
+            // InternalPerspectiveDsl.g:23875:2: ( ruleJvmLowerBound )
             {
-            // InternalPerspectiveDsl.g:23960:2: ( ruleJvmLowerBound )
-            // InternalPerspectiveDsl.g:23961:3: ruleJvmLowerBound
+            // InternalPerspectiveDsl.g:23875:2: ( ruleJvmLowerBound )
+            // InternalPerspectiveDsl.g:23876:3: ruleJvmLowerBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
@@ -77586,17 +77319,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
-    // InternalPerspectiveDsl.g:23970:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
+    // InternalPerspectiveDsl.g:23885:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23974:1: ( ( ruleJvmLowerBoundAnded ) )
-            // InternalPerspectiveDsl.g:23975:2: ( ruleJvmLowerBoundAnded )
+            // InternalPerspectiveDsl.g:23889:1: ( ( ruleJvmLowerBoundAnded ) )
+            // InternalPerspectiveDsl.g:23890:2: ( ruleJvmLowerBoundAnded )
             {
-            // InternalPerspectiveDsl.g:23975:2: ( ruleJvmLowerBoundAnded )
-            // InternalPerspectiveDsl.g:23976:3: ruleJvmLowerBoundAnded
+            // InternalPerspectiveDsl.g:23890:2: ( ruleJvmLowerBoundAnded )
+            // InternalPerspectiveDsl.g:23891:3: ruleJvmLowerBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
@@ -77631,17 +77364,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:23985:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23900:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:23989:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:23990:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23904:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23905:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:23990:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:23991:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23905:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23906:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -77676,17 +77409,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:24000:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23915:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24004:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24005:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23919:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23920:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24005:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24006:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23920:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23921:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -77721,17 +77454,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:24015:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23930:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24019:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24020:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23934:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23935:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24020:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24021:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23935:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23936:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -77766,17 +77499,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
-    // InternalPerspectiveDsl.g:24030:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalPerspectiveDsl.g:23945:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24034:1: ( ( ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:24035:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23949:1: ( ( ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:23950:2: ( ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:24035:2: ( ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:24036:3: ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:23950:2: ( ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:23951:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -77811,17 +77544,17 @@
 
 
     // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
-    // InternalPerspectiveDsl.g:24045:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+    // InternalPerspectiveDsl.g:23960:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
     public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:24049:1: ( ( ruleXImportDeclaration ) )
-            // InternalPerspectiveDsl.g:24050:2: ( ruleXImportDeclaration )
+            // InternalPerspectiveDsl.g:23964:1: ( ( ruleXImportDeclaration ) )
+            // InternalPerspectiveDsl.g:23965:2: ( ruleXImportDeclaration )
             {
-            // InternalPerspectiveDsl.g:24050:2: ( ruleXImportDeclaration )
-            // InternalPerspectiveDsl.g:24051:3: ruleXImportDeclaration
+            // InternalPerspectiveDsl.g:23965:2: ( ruleXImportDeclaration )
+            // InternalPerspectiveDsl.g:23966:3: ruleXImportDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
@@ -77854,19 +77587,19 @@
     }
     // $ANTLR end "rule__XImportSection__ImportDeclarationsAssignment"
 
-    // $ANTLR start synpred22_InternalPerspectiveDsl
-    public final void synpred22_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2908:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
-        // InternalPerspectiveDsl.g:2908:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+    // $ANTLR start synpred21_InternalPerspectiveDsl
+    public final void synpred21_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:2877:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
+        // InternalPerspectiveDsl.g:2877:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:2908:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-        // InternalPerspectiveDsl.g:2909:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalPerspectiveDsl.g:2877:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalPerspectiveDsl.g:2878:3: ( rule__XAnnotation__Group_3_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
         }
-        // InternalPerspectiveDsl.g:2910:3: ( rule__XAnnotation__Group_3_1_0__0 )
-        // InternalPerspectiveDsl.g:2910:4: rule__XAnnotation__Group_3_1_0__0
+        // InternalPerspectiveDsl.g:2879:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalPerspectiveDsl.g:2879:4: rule__XAnnotation__Group_3_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotation__Group_3_1_0__0();
@@ -77882,51 +77615,51 @@
 
         }
     }
+    // $ANTLR end synpred21_InternalPerspectiveDsl
+
+    // $ANTLR start synpred22_InternalPerspectiveDsl
+    public final void synpred22_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:2898:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
+        // InternalPerspectiveDsl.g:2898:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        {
+        // InternalPerspectiveDsl.g:2898:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalPerspectiveDsl.g:2899:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+        }
+        // InternalPerspectiveDsl.g:2900:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalPerspectiveDsl.g:2900:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAnnotationElementValueOrCommaList__Group_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
     // $ANTLR end synpred22_InternalPerspectiveDsl
 
     // $ANTLR start synpred23_InternalPerspectiveDsl
     public final void synpred23_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2929:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
-        // InternalPerspectiveDsl.g:2929:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalPerspectiveDsl.g:2919:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
+        // InternalPerspectiveDsl.g:2919:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:2929:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        // InternalPerspectiveDsl.g:2930:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
-        }
-        // InternalPerspectiveDsl.g:2931:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        // InternalPerspectiveDsl.g:2931:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XAnnotationElementValueOrCommaList__Group_0__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred23_InternalPerspectiveDsl
-
-    // $ANTLR start synpred24_InternalPerspectiveDsl
-    public final void synpred24_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2950:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
-        // InternalPerspectiveDsl.g:2950:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-        {
-        // InternalPerspectiveDsl.g:2950:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-        // InternalPerspectiveDsl.g:2951:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalPerspectiveDsl.g:2919:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalPerspectiveDsl.g:2920:3: ( rule__XAnnotationElementValue__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
         }
-        // InternalPerspectiveDsl.g:2952:3: ( rule__XAnnotationElementValue__Group_0__0 )
-        // InternalPerspectiveDsl.g:2952:4: rule__XAnnotationElementValue__Group_0__0
+        // InternalPerspectiveDsl.g:2921:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalPerspectiveDsl.g:2921:4: rule__XAnnotationElementValue__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValue__Group_0__0();
@@ -77942,21 +77675,21 @@
 
         }
     }
-    // $ANTLR end synpred24_InternalPerspectiveDsl
+    // $ANTLR end synpred23_InternalPerspectiveDsl
 
-    // $ANTLR start synpred49_InternalPerspectiveDsl
-    public final void synpred49_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3235:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3235:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+    // $ANTLR start synpred48_InternalPerspectiveDsl
+    public final void synpred48_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3204:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3204:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3235:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-        // InternalPerspectiveDsl.g:3236:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalPerspectiveDsl.g:3204:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalPerspectiveDsl.g:3205:3: ( rule__OpOther__Group_6_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3237:3: ( rule__OpOther__Group_6_1_0__0 )
-        // InternalPerspectiveDsl.g:3237:4: rule__OpOther__Group_6_1_0__0
+        // InternalPerspectiveDsl.g:3206:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalPerspectiveDsl.g:3206:4: rule__OpOther__Group_6_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__OpOther__Group_6_1_0__0();
@@ -77972,15 +77705,15 @@
 
         }
     }
-    // $ANTLR end synpred49_InternalPerspectiveDsl
+    // $ANTLR end synpred48_InternalPerspectiveDsl
 
-    // $ANTLR start synpred50_InternalPerspectiveDsl
-    public final void synpred50_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3241:2: ( ( '<' ) )
-        // InternalPerspectiveDsl.g:3241:2: ( '<' )
+    // $ANTLR start synpred49_InternalPerspectiveDsl
+    public final void synpred49_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3210:2: ( ( '<' ) )
+        // InternalPerspectiveDsl.g:3210:2: ( '<' )
         {
-        // InternalPerspectiveDsl.g:3241:2: ( '<' )
-        // InternalPerspectiveDsl.g:3242:3: '<'
+        // InternalPerspectiveDsl.g:3210:2: ( '<' )
+        // InternalPerspectiveDsl.g:3211:3: '<'
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -77992,21 +77725,21 @@
 
         }
     }
-    // $ANTLR end synpred50_InternalPerspectiveDsl
+    // $ANTLR end synpred49_InternalPerspectiveDsl
 
-    // $ANTLR start synpred63_InternalPerspectiveDsl
-    public final void synpred63_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3454:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
-        // InternalPerspectiveDsl.g:3454:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+    // $ANTLR start synpred62_InternalPerspectiveDsl
+    public final void synpred62_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3423:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+        // InternalPerspectiveDsl.g:3423:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
         {
-        // InternalPerspectiveDsl.g:3454:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-        // InternalPerspectiveDsl.g:3455:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalPerspectiveDsl.g:3423:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalPerspectiveDsl.g:3424:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3456:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-        // InternalPerspectiveDsl.g:3456:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+        // InternalPerspectiveDsl.g:3425:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalPerspectiveDsl.g:3425:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -78022,21 +77755,21 @@
 
         }
     }
-    // $ANTLR end synpred63_InternalPerspectiveDsl
+    // $ANTLR end synpred62_InternalPerspectiveDsl
 
-    // $ANTLR start synpred71_InternalPerspectiveDsl
-    public final void synpred71_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3517:2: ( ( ( ruleXForLoopExpression ) ) )
-        // InternalPerspectiveDsl.g:3517:2: ( ( ruleXForLoopExpression ) )
+    // $ANTLR start synpred70_InternalPerspectiveDsl
+    public final void synpred70_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3486:2: ( ( ( ruleXForLoopExpression ) ) )
+        // InternalPerspectiveDsl.g:3486:2: ( ( ruleXForLoopExpression ) )
         {
-        // InternalPerspectiveDsl.g:3517:2: ( ( ruleXForLoopExpression ) )
-        // InternalPerspectiveDsl.g:3518:3: ( ruleXForLoopExpression )
+        // InternalPerspectiveDsl.g:3486:2: ( ( ruleXForLoopExpression ) )
+        // InternalPerspectiveDsl.g:3487:3: ( ruleXForLoopExpression )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
         }
-        // InternalPerspectiveDsl.g:3519:3: ( ruleXForLoopExpression )
-        // InternalPerspectiveDsl.g:3519:4: ruleXForLoopExpression
+        // InternalPerspectiveDsl.g:3488:3: ( ruleXForLoopExpression )
+        // InternalPerspectiveDsl.g:3488:4: ruleXForLoopExpression
         {
         pushFollow(FOLLOW_2);
         ruleXForLoopExpression();
@@ -78052,15 +77785,15 @@
 
         }
     }
-    // $ANTLR end synpred71_InternalPerspectiveDsl
+    // $ANTLR end synpred70_InternalPerspectiveDsl
 
-    // $ANTLR start synpred72_InternalPerspectiveDsl
-    public final void synpred72_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3523:2: ( ( ruleXBasicForLoopExpression ) )
-        // InternalPerspectiveDsl.g:3523:2: ( ruleXBasicForLoopExpression )
+    // $ANTLR start synpred71_InternalPerspectiveDsl
+    public final void synpred71_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3492:2: ( ( ruleXBasicForLoopExpression ) )
+        // InternalPerspectiveDsl.g:3492:2: ( ruleXBasicForLoopExpression )
         {
-        // InternalPerspectiveDsl.g:3523:2: ( ruleXBasicForLoopExpression )
-        // InternalPerspectiveDsl.g:3524:3: ruleXBasicForLoopExpression
+        // InternalPerspectiveDsl.g:3492:2: ( ruleXBasicForLoopExpression )
+        // InternalPerspectiveDsl.g:3493:3: ruleXBasicForLoopExpression
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -78076,21 +77809,21 @@
 
         }
     }
-    // $ANTLR end synpred72_InternalPerspectiveDsl
+    // $ANTLR end synpred71_InternalPerspectiveDsl
 
-    // $ANTLR start synpred85_InternalPerspectiveDsl
-    public final void synpred85_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3646:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3646:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+    // $ANTLR start synpred84_InternalPerspectiveDsl
+    public final void synpred84_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3615:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3615:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3646:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-        // InternalPerspectiveDsl.g:3647:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3615:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalPerspectiveDsl.g:3616:3: ( rule__XSwitchExpression__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
         }
-        // InternalPerspectiveDsl.g:3648:3: ( rule__XSwitchExpression__Group_2_0__0 )
-        // InternalPerspectiveDsl.g:3648:4: rule__XSwitchExpression__Group_2_0__0
+        // InternalPerspectiveDsl.g:3617:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3617:4: rule__XSwitchExpression__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_0__0();
@@ -78106,21 +77839,21 @@
 
         }
     }
-    // $ANTLR end synpred85_InternalPerspectiveDsl
+    // $ANTLR end synpred84_InternalPerspectiveDsl
 
-    // $ANTLR start synpred89_InternalPerspectiveDsl
-    public final void synpred89_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3730:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
-        // InternalPerspectiveDsl.g:3730:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+    // $ANTLR start synpred88_InternalPerspectiveDsl
+    public final void synpred88_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3699:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+        // InternalPerspectiveDsl.g:3699:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
         {
-        // InternalPerspectiveDsl.g:3730:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-        // InternalPerspectiveDsl.g:3731:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3699:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalPerspectiveDsl.g:3700:3: ( rule__XVariableDeclaration__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
         }
-        // InternalPerspectiveDsl.g:3732:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-        // InternalPerspectiveDsl.g:3732:4: rule__XVariableDeclaration__Group_2_0__0
+        // InternalPerspectiveDsl.g:3701:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalPerspectiveDsl.g:3701:4: rule__XVariableDeclaration__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XVariableDeclaration__Group_2_0__0();
@@ -78136,21 +77869,21 @@
 
         }
     }
-    // $ANTLR end synpred89_InternalPerspectiveDsl
+    // $ANTLR end synpred88_InternalPerspectiveDsl
 
-    // $ANTLR start synpred90_InternalPerspectiveDsl
-    public final void synpred90_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3751:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
-        // InternalPerspectiveDsl.g:3751:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+    // $ANTLR start synpred89_InternalPerspectiveDsl
+    public final void synpred89_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3720:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+        // InternalPerspectiveDsl.g:3720:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
         {
-        // InternalPerspectiveDsl.g:3751:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-        // InternalPerspectiveDsl.g:3752:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalPerspectiveDsl.g:3720:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalPerspectiveDsl.g:3721:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3753:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-        // InternalPerspectiveDsl.g:3753:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+        // InternalPerspectiveDsl.g:3722:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalPerspectiveDsl.g:3722:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -78166,21 +77899,21 @@
 
         }
     }
-    // $ANTLR end synpred90_InternalPerspectiveDsl
+    // $ANTLR end synpred89_InternalPerspectiveDsl
 
-    // $ANTLR start synpred96_InternalPerspectiveDsl
-    public final void synpred96_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3832:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
-        // InternalPerspectiveDsl.g:3832:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+    // $ANTLR start synpred95_InternalPerspectiveDsl
+    public final void synpred95_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:3801:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+        // InternalPerspectiveDsl.g:3801:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
         {
-        // InternalPerspectiveDsl.g:3832:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-        // InternalPerspectiveDsl.g:3833:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalPerspectiveDsl.g:3801:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalPerspectiveDsl.g:3802:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
         }
-        // InternalPerspectiveDsl.g:3834:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-        // InternalPerspectiveDsl.g:3834:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+        // InternalPerspectiveDsl.g:3803:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalPerspectiveDsl.g:3803:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -78196,12 +77929,12 @@
 
         }
     }
-    // $ANTLR end synpred96_InternalPerspectiveDsl
+    // $ANTLR end synpred95_InternalPerspectiveDsl
 
-    // $ANTLR start synpred126_InternalPerspectiveDsl
-    public final void synpred126_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:8922:3: ( rule__XAssignment__Group_1_1__0 )
-        // InternalPerspectiveDsl.g:8922:3: rule__XAssignment__Group_1_1__0
+    // $ANTLR start synpred125_InternalPerspectiveDsl
+    public final void synpred125_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:8837:3: ( rule__XAssignment__Group_1_1__0 )
+        // InternalPerspectiveDsl.g:8837:3: rule__XAssignment__Group_1_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAssignment__Group_1_1__0();
@@ -78211,12 +77944,12 @@
 
         }
     }
-    // $ANTLR end synpred126_InternalPerspectiveDsl
+    // $ANTLR end synpred125_InternalPerspectiveDsl
 
-    // $ANTLR start synpred128_InternalPerspectiveDsl
-    public final void synpred128_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:9273:3: ( rule__XOrExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:9273:3: rule__XOrExpression__Group_1__0
+    // $ANTLR start synpred127_InternalPerspectiveDsl
+    public final void synpred127_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:9188:3: ( rule__XOrExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:9188:3: rule__XOrExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XOrExpression__Group_1__0();
@@ -78226,15 +77959,30 @@
 
         }
     }
+    // $ANTLR end synpred127_InternalPerspectiveDsl
+
+    // $ANTLR start synpred128_InternalPerspectiveDsl
+    public final void synpred128_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:9377:3: ( rule__XAndExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:9377:3: rule__XAndExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAndExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
     // $ANTLR end synpred128_InternalPerspectiveDsl
 
     // $ANTLR start synpred129_InternalPerspectiveDsl
     public final void synpred129_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:9462:3: ( rule__XAndExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:9462:3: rule__XAndExpression__Group_1__0
+        // InternalPerspectiveDsl.g:9566:3: ( rule__XEqualityExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:9566:3: rule__XEqualityExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAndExpression__Group_1__0();
+        rule__XEqualityExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78245,11 +77993,11 @@
 
     // $ANTLR start synpred130_InternalPerspectiveDsl
     public final void synpred130_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:9651:3: ( rule__XEqualityExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:9651:3: rule__XEqualityExpression__Group_1__0
+        // InternalPerspectiveDsl.g:9755:3: ( rule__XRelationalExpression__Alternatives_1 )
+        // InternalPerspectiveDsl.g:9755:3: rule__XRelationalExpression__Alternatives_1
         {
         pushFollow(FOLLOW_2);
-        rule__XEqualityExpression__Group_1__0();
+        rule__XRelationalExpression__Alternatives_1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78260,11 +78008,11 @@
 
     // $ANTLR start synpred131_InternalPerspectiveDsl
     public final void synpred131_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:9840:3: ( rule__XRelationalExpression__Alternatives_1 )
-        // InternalPerspectiveDsl.g:9840:3: rule__XRelationalExpression__Alternatives_1
+        // InternalPerspectiveDsl.g:10133:3: ( rule__XOtherOperatorExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:10133:3: rule__XOtherOperatorExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XRelationalExpression__Alternatives_1();
+        rule__XOtherOperatorExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78275,11 +78023,11 @@
 
     // $ANTLR start synpred132_InternalPerspectiveDsl
     public final void synpred132_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10218:3: ( rule__XOtherOperatorExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:10218:3: rule__XOtherOperatorExpression__Group_1__0
+        // InternalPerspectiveDsl.g:10646:3: ( rule__XAdditiveExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:10646:3: rule__XAdditiveExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XOtherOperatorExpression__Group_1__0();
+        rule__XAdditiveExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78290,11 +78038,11 @@
 
     // $ANTLR start synpred133_InternalPerspectiveDsl
     public final void synpred133_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10731:3: ( rule__XAdditiveExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:10731:3: rule__XAdditiveExpression__Group_1__0
+        // InternalPerspectiveDsl.g:10835:3: ( rule__XMultiplicativeExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:10835:3: rule__XMultiplicativeExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAdditiveExpression__Group_1__0();
+        rule__XMultiplicativeExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78305,11 +78053,11 @@
 
     // $ANTLR start synpred134_InternalPerspectiveDsl
     public final void synpred134_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:10920:3: ( rule__XMultiplicativeExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:10920:3: rule__XMultiplicativeExpression__Group_1__0
+        // InternalPerspectiveDsl.g:11105:3: ( rule__XCastedExpression__Group_1__0 )
+        // InternalPerspectiveDsl.g:11105:3: rule__XCastedExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XMultiplicativeExpression__Group_1__0();
+        rule__XCastedExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78320,11 +78068,11 @@
 
     // $ANTLR start synpred135_InternalPerspectiveDsl
     public final void synpred135_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11190:3: ( rule__XCastedExpression__Group_1__0 )
-        // InternalPerspectiveDsl.g:11190:3: rule__XCastedExpression__Group_1__0
+        // InternalPerspectiveDsl.g:11294:3: ( rule__XPostfixOperation__Group_1__0 )
+        // InternalPerspectiveDsl.g:11294:3: rule__XPostfixOperation__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XCastedExpression__Group_1__0();
+        rule__XPostfixOperation__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78335,23 +78083,8 @@
 
     // $ANTLR start synpred136_InternalPerspectiveDsl
     public final void synpred136_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11379:3: ( rule__XPostfixOperation__Group_1__0 )
-        // InternalPerspectiveDsl.g:11379:3: rule__XPostfixOperation__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XPostfixOperation__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred136_InternalPerspectiveDsl
-
-    // $ANTLR start synpred137_InternalPerspectiveDsl
-    public final void synpred137_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11514:3: ( rule__XMemberFeatureCall__Alternatives_1 )
-        // InternalPerspectiveDsl.g:11514:3: rule__XMemberFeatureCall__Alternatives_1
+        // InternalPerspectiveDsl.g:11429:3: ( rule__XMemberFeatureCall__Alternatives_1 )
+        // InternalPerspectiveDsl.g:11429:3: rule__XMemberFeatureCall__Alternatives_1
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__Alternatives_1();
@@ -78361,12 +78094,12 @@
 
         }
     }
-    // $ANTLR end synpred137_InternalPerspectiveDsl
+    // $ANTLR end synpred136_InternalPerspectiveDsl
 
-    // $ANTLR start synpred139_InternalPerspectiveDsl
-    public final void synpred139_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11812:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
-        // InternalPerspectiveDsl.g:11812:3: rule__XMemberFeatureCall__Group_1_1_3__0
+    // $ANTLR start synpred138_InternalPerspectiveDsl
+    public final void synpred138_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:11727:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+        // InternalPerspectiveDsl.g:11727:3: rule__XMemberFeatureCall__Group_1_1_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -78376,12 +78109,12 @@
 
         }
     }
-    // $ANTLR end synpred139_InternalPerspectiveDsl
+    // $ANTLR end synpred138_InternalPerspectiveDsl
 
-    // $ANTLR start synpred140_InternalPerspectiveDsl
-    public final void synpred140_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:11838:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
-        // InternalPerspectiveDsl.g:11838:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+    // $ANTLR start synpred139_InternalPerspectiveDsl
+    public final void synpred139_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:11753:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+        // InternalPerspectiveDsl.g:11753:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -78391,12 +78124,12 @@
 
         }
     }
-    // $ANTLR end synpred140_InternalPerspectiveDsl
+    // $ANTLR end synpred139_InternalPerspectiveDsl
 
-    // $ANTLR start synpred148_InternalPerspectiveDsl
-    public final void synpred148_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:12811:3: ( rule__XClosure__Group_1__0 )
-        // InternalPerspectiveDsl.g:12811:3: rule__XClosure__Group_1__0
+    // $ANTLR start synpred147_InternalPerspectiveDsl
+    public final void synpred147_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:12726:3: ( rule__XClosure__Group_1__0 )
+        // InternalPerspectiveDsl.g:12726:3: rule__XClosure__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XClosure__Group_1__0();
@@ -78406,12 +78139,12 @@
 
         }
     }
-    // $ANTLR end synpred148_InternalPerspectiveDsl
+    // $ANTLR end synpred147_InternalPerspectiveDsl
 
-    // $ANTLR start synpred155_InternalPerspectiveDsl
-    public final void synpred155_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:13782:3: ( rule__XIfExpression__Group_6__0 )
-        // InternalPerspectiveDsl.g:13782:3: rule__XIfExpression__Group_6__0
+    // $ANTLR start synpred154_InternalPerspectiveDsl
+    public final void synpred154_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:13697:3: ( rule__XIfExpression__Group_6__0 )
+        // InternalPerspectiveDsl.g:13697:3: rule__XIfExpression__Group_6__0
         {
         pushFollow(FOLLOW_2);
         rule__XIfExpression__Group_6__0();
@@ -78421,12 +78154,12 @@
 
         }
     }
-    // $ANTLR end synpred155_InternalPerspectiveDsl
+    // $ANTLR end synpred154_InternalPerspectiveDsl
 
-    // $ANTLR start synpred158_InternalPerspectiveDsl
-    public final void synpred158_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:14242:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
-        // InternalPerspectiveDsl.g:14242:3: rule__XSwitchExpression__Group_2_1_0__0
+    // $ANTLR start synpred157_InternalPerspectiveDsl
+    public final void synpred157_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:14157:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
+        // InternalPerspectiveDsl.g:14157:3: rule__XSwitchExpression__Group_2_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_1_0__0();
@@ -78436,12 +78169,12 @@
 
         }
     }
-    // $ANTLR end synpred158_InternalPerspectiveDsl
+    // $ANTLR end synpred157_InternalPerspectiveDsl
 
-    // $ANTLR start synpred171_InternalPerspectiveDsl
-    public final void synpred171_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:16375:3: ( rule__XFeatureCall__Group_3__0 )
-        // InternalPerspectiveDsl.g:16375:3: rule__XFeatureCall__Group_3__0
+    // $ANTLR start synpred170_InternalPerspectiveDsl
+    public final void synpred170_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:16290:3: ( rule__XFeatureCall__Group_3__0 )
+        // InternalPerspectiveDsl.g:16290:3: rule__XFeatureCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__Group_3__0();
@@ -78451,12 +78184,12 @@
 
         }
     }
-    // $ANTLR end synpred171_InternalPerspectiveDsl
+    // $ANTLR end synpred170_InternalPerspectiveDsl
 
-    // $ANTLR start synpred172_InternalPerspectiveDsl
-    public final void synpred172_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:16401:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
-        // InternalPerspectiveDsl.g:16401:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+    // $ANTLR start synpred171_InternalPerspectiveDsl
+    public final void synpred171_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:16316:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+        // InternalPerspectiveDsl.g:16316:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -78466,12 +78199,12 @@
 
         }
     }
-    // $ANTLR end synpred172_InternalPerspectiveDsl
+    // $ANTLR end synpred171_InternalPerspectiveDsl
 
-    // $ANTLR start synpred176_InternalPerspectiveDsl
-    public final void synpred176_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:16861:3: ( rule__XConstructorCall__Group_3__0 )
-        // InternalPerspectiveDsl.g:16861:3: rule__XConstructorCall__Group_3__0
+    // $ANTLR start synpred175_InternalPerspectiveDsl
+    public final void synpred175_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:16776:3: ( rule__XConstructorCall__Group_3__0 )
+        // InternalPerspectiveDsl.g:16776:3: rule__XConstructorCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__Group_3__0();
@@ -78481,27 +78214,27 @@
 
         }
     }
+    // $ANTLR end synpred175_InternalPerspectiveDsl
+
+    // $ANTLR start synpred176_InternalPerspectiveDsl
+    public final void synpred176_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:16803:3: ( rule__XConstructorCall__Group_4__0 )
+        // InternalPerspectiveDsl.g:16803:3: rule__XConstructorCall__Group_4__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__Group_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
     // $ANTLR end synpred176_InternalPerspectiveDsl
 
     // $ANTLR start synpred177_InternalPerspectiveDsl
     public final void synpred177_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:16888:3: ( rule__XConstructorCall__Group_4__0 )
-        // InternalPerspectiveDsl.g:16888:3: rule__XConstructorCall__Group_4__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XConstructorCall__Group_4__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred177_InternalPerspectiveDsl
-
-    // $ANTLR start synpred178_InternalPerspectiveDsl
-    public final void synpred178_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:16914:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
-        // InternalPerspectiveDsl.g:16914:3: rule__XConstructorCall__ArgumentsAssignment_5
+        // InternalPerspectiveDsl.g:16829:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+        // InternalPerspectiveDsl.g:16829:3: rule__XConstructorCall__ArgumentsAssignment_5
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_5();
@@ -78511,12 +78244,12 @@
 
         }
     }
-    // $ANTLR end synpred178_InternalPerspectiveDsl
+    // $ANTLR end synpred177_InternalPerspectiveDsl
 
-    // $ANTLR start synpred183_InternalPerspectiveDsl
-    public final void synpred183_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17805:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
-        // InternalPerspectiveDsl.g:17805:3: rule__XReturnExpression__ExpressionAssignment_2
+    // $ANTLR start synpred182_InternalPerspectiveDsl
+    public final void synpred182_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:17720:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
+        // InternalPerspectiveDsl.g:17720:3: rule__XReturnExpression__ExpressionAssignment_2
         {
         pushFollow(FOLLOW_2);
         rule__XReturnExpression__ExpressionAssignment_2();
@@ -78526,15 +78259,30 @@
 
         }
     }
+    // $ANTLR end synpred182_InternalPerspectiveDsl
+
+    // $ANTLR start synpred183_InternalPerspectiveDsl
+    public final void synpred183_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:17862:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+        // InternalPerspectiveDsl.g:17862:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
     // $ANTLR end synpred183_InternalPerspectiveDsl
 
     // $ANTLR start synpred184_InternalPerspectiveDsl
     public final void synpred184_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17947:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-        // InternalPerspectiveDsl.g:17947:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+        // InternalPerspectiveDsl.g:17889:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+        // InternalPerspectiveDsl.g:17889:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+        rule__XTryCatchFinallyExpression__Group_3_0_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78545,23 +78293,8 @@
 
     // $ANTLR start synpred185_InternalPerspectiveDsl
     public final void synpred185_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:17974:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
-        // InternalPerspectiveDsl.g:17974:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XTryCatchFinallyExpression__Group_3_0_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred185_InternalPerspectiveDsl
-
-    // $ANTLR start synpred186_InternalPerspectiveDsl
-    public final void synpred186_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:18487:3: ( rule__QualifiedName__Group_1__0 )
-        // InternalPerspectiveDsl.g:18487:3: rule__QualifiedName__Group_1__0
+        // InternalPerspectiveDsl.g:18402:3: ( rule__QualifiedName__Group_1__0 )
+        // InternalPerspectiveDsl.g:18402:3: rule__QualifiedName__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__QualifiedName__Group_1__0();
@@ -78571,12 +78304,12 @@
 
         }
     }
-    // $ANTLR end synpred186_InternalPerspectiveDsl
+    // $ANTLR end synpred185_InternalPerspectiveDsl
 
-    // $ANTLR start synpred188_InternalPerspectiveDsl
-    public final void synpred188_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:18703:3: ( rule__JvmTypeReference__Group_0_1__0 )
-        // InternalPerspectiveDsl.g:18703:3: rule__JvmTypeReference__Group_0_1__0
+    // $ANTLR start synpred187_InternalPerspectiveDsl
+    public final void synpred187_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:18618:3: ( rule__JvmTypeReference__Group_0_1__0 )
+        // InternalPerspectiveDsl.g:18618:3: rule__JvmTypeReference__Group_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmTypeReference__Group_0_1__0();
@@ -78586,12 +78319,12 @@
 
         }
     }
-    // $ANTLR end synpred188_InternalPerspectiveDsl
+    // $ANTLR end synpred187_InternalPerspectiveDsl
 
-    // $ANTLR start synpred192_InternalPerspectiveDsl
-    public final void synpred192_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:19162:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
-        // InternalPerspectiveDsl.g:19162:3: rule__JvmParameterizedTypeReference__Group_1__0
+    // $ANTLR start synpred191_InternalPerspectiveDsl
+    public final void synpred191_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:19077:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+        // InternalPerspectiveDsl.g:19077:3: rule__JvmParameterizedTypeReference__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1__0();
@@ -78601,12 +78334,12 @@
 
         }
     }
-    // $ANTLR end synpred192_InternalPerspectiveDsl
+    // $ANTLR end synpred191_InternalPerspectiveDsl
 
-    // $ANTLR start synpred194_InternalPerspectiveDsl
-    public final void synpred194_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:19297:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
-        // InternalPerspectiveDsl.g:19297:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+    // $ANTLR start synpred193_InternalPerspectiveDsl
+    public final void synpred193_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:19212:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
+        // InternalPerspectiveDsl.g:19212:3: rule__JvmParameterizedTypeReference__Group_1_4__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4__0();
@@ -78616,12 +78349,12 @@
 
         }
     }
-    // $ANTLR end synpred194_InternalPerspectiveDsl
+    // $ANTLR end synpred193_InternalPerspectiveDsl
 
-    // $ANTLR start synpred195_InternalPerspectiveDsl
-    public final void synpred195_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:19432:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
-        // InternalPerspectiveDsl.g:19432:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+    // $ANTLR start synpred194_InternalPerspectiveDsl
+    public final void synpred194_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:19347:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
+        // InternalPerspectiveDsl.g:19347:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -78631,12 +78364,12 @@
 
         }
     }
-    // $ANTLR end synpred195_InternalPerspectiveDsl
+    // $ANTLR end synpred194_InternalPerspectiveDsl
 
-    // $ANTLR start synpred200_InternalPerspectiveDsl
-    public final void synpred200_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20230:2: ( rule__Perspective__UnorderedGroup_5__0 )
-        // InternalPerspectiveDsl.g:20230:2: rule__Perspective__UnorderedGroup_5__0
+    // $ANTLR start synpred199_InternalPerspectiveDsl
+    public final void synpred199_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:20145:2: ( rule__Perspective__UnorderedGroup_5__0 )
+        // InternalPerspectiveDsl.g:20145:2: rule__Perspective__UnorderedGroup_5__0
         {
         pushFollow(FOLLOW_2);
         rule__Perspective__UnorderedGroup_5__0();
@@ -78646,32 +78379,32 @@
 
         }
     }
-    // $ANTLR end synpred200_InternalPerspectiveDsl
+    // $ANTLR end synpred199_InternalPerspectiveDsl
 
-    // $ANTLR start synpred201_InternalPerspectiveDsl
-    public final void synpred201_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20245:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20245:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
+    // $ANTLR start synpred200_InternalPerspectiveDsl
+    public final void synpred200_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:20160:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20160:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:20245:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20246:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20160:3: ({...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20161:4: {...}? => ( ( ( rule__Perspective__Group_5_0__0 ) ) )
         {
         if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred201_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0)");
+            throw new FailedPredicateException(input, "synpred200_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0)");
         }
-        // InternalPerspectiveDsl.g:20246:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
-        // InternalPerspectiveDsl.g:20247:5: ( ( rule__Perspective__Group_5_0__0 ) )
+        // InternalPerspectiveDsl.g:20161:107: ( ( ( rule__Perspective__Group_5_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20162:5: ( ( rule__Perspective__Group_5_0__0 ) )
         {
         getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 0);
-        // InternalPerspectiveDsl.g:20253:5: ( ( rule__Perspective__Group_5_0__0 ) )
-        // InternalPerspectiveDsl.g:20254:6: ( rule__Perspective__Group_5_0__0 )
+        // InternalPerspectiveDsl.g:20168:5: ( ( rule__Perspective__Group_5_0__0 ) )
+        // InternalPerspectiveDsl.g:20169:6: ( rule__Perspective__Group_5_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getPerspectiveAccess().getGroup_5_0()); 
         }
-        // InternalPerspectiveDsl.g:20255:6: ( rule__Perspective__Group_5_0__0 )
-        // InternalPerspectiveDsl.g:20255:7: rule__Perspective__Group_5_0__0
+        // InternalPerspectiveDsl.g:20170:6: ( rule__Perspective__Group_5_0__0 )
+        // InternalPerspectiveDsl.g:20170:7: rule__Perspective__Group_5_0__0
         {
         pushFollow(FOLLOW_2);
         rule__Perspective__Group_5_0__0();
@@ -78693,62 +78426,77 @@
 
         }
     }
+    // $ANTLR end synpred200_InternalPerspectiveDsl
+
+    // $ANTLR start synpred201_InternalPerspectiveDsl
+    public final void synpred201_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:20175:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20175:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:20175:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20176:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred201_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1)");
+        }
+        // InternalPerspectiveDsl.g:20176:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
+        // InternalPerspectiveDsl.g:20177:5: ( ( rule__Perspective__Group_5_1__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1);
+        // InternalPerspectiveDsl.g:20183:5: ( ( rule__Perspective__Group_5_1__0 ) )
+        // InternalPerspectiveDsl.g:20184:6: ( rule__Perspective__Group_5_1__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectiveAccess().getGroup_5_1()); 
+        }
+        // InternalPerspectiveDsl.g:20185:6: ( rule__Perspective__Group_5_1__0 )
+        // InternalPerspectiveDsl.g:20185:7: rule__Perspective__Group_5_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__Perspective__Group_5_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
     // $ANTLR end synpred201_InternalPerspectiveDsl
 
     // $ANTLR start synpred202_InternalPerspectiveDsl
     public final void synpred202_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20260:3: ( ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20260:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:20260:3: ({...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20261:4: {...}? => ( ( ( rule__Perspective__Group_5_1__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred202_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1)");
-        }
-        // InternalPerspectiveDsl.g:20261:107: ( ( ( rule__Perspective__Group_5_1__0 ) ) )
-        // InternalPerspectiveDsl.g:20262:5: ( ( rule__Perspective__Group_5_1__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), 1);
-        // InternalPerspectiveDsl.g:20268:5: ( ( rule__Perspective__Group_5_1__0 ) )
-        // InternalPerspectiveDsl.g:20269:6: ( rule__Perspective__Group_5_1__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveAccess().getGroup_5_1()); 
-        }
-        // InternalPerspectiveDsl.g:20270:6: ( rule__Perspective__Group_5_1__0 )
-        // InternalPerspectiveDsl.g:20270:7: rule__Perspective__Group_5_1__0
+        // InternalPerspectiveDsl.g:20219:2: ( rule__Perspective__UnorderedGroup_5__1 )
+        // InternalPerspectiveDsl.g:20219:2: rule__Perspective__UnorderedGroup_5__1
         {
         pushFollow(FOLLOW_2);
-        rule__Perspective__Group_5_1__0();
+        rule__Perspective__UnorderedGroup_5__1();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
     }
     // $ANTLR end synpred202_InternalPerspectiveDsl
 
     // $ANTLR start synpred203_InternalPerspectiveDsl
     public final void synpred203_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20304:2: ( rule__Perspective__UnorderedGroup_5__1 )
-        // InternalPerspectiveDsl.g:20304:2: rule__Perspective__UnorderedGroup_5__1
+        // InternalPerspectiveDsl.g:20231:2: ( rule__Perspective__UnorderedGroup_5__2 )
+        // InternalPerspectiveDsl.g:20231:2: rule__Perspective__UnorderedGroup_5__2
         {
         pushFollow(FOLLOW_2);
-        rule__Perspective__UnorderedGroup_5__1();
+        rule__Perspective__UnorderedGroup_5__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78759,11 +78507,11 @@
 
     // $ANTLR start synpred204_InternalPerspectiveDsl
     public final void synpred204_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20316:2: ( rule__Perspective__UnorderedGroup_5__2 )
-        // InternalPerspectiveDsl.g:20316:2: rule__Perspective__UnorderedGroup_5__2
+        // InternalPerspectiveDsl.g:20255:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )
+        // InternalPerspectiveDsl.g:20255:2: rule__PerspectiveSashContainer__UnorderedGroup_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__Perspective__UnorderedGroup_5__2();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78774,46 +78522,78 @@
 
     // $ANTLR start synpred205_InternalPerspectiveDsl
     public final void synpred205_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20340:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__0 )
-        // InternalPerspectiveDsl.g:20340:2: rule__PerspectiveSashContainer__UnorderedGroup_3__0
+        // InternalPerspectiveDsl.g:20270:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20270:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:20270:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20271:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred205_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0)");
+        }
+        // InternalPerspectiveDsl.g:20271:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20272:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0);
+        // InternalPerspectiveDsl.g:20278:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:20279:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_0()); 
+        }
+        // InternalPerspectiveDsl.g:20280:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+        // InternalPerspectiveDsl.g:20280:7: rule__PerspectiveSashContainer__Group_3_0__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__0();
+        rule__PerspectiveSashContainer__Group_3_0__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
     }
     // $ANTLR end synpred205_InternalPerspectiveDsl
 
     // $ANTLR start synpred206_InternalPerspectiveDsl
     public final void synpred206_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20355:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20355:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20285:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20285:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:20355:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20356:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20285:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20286:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred206_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0)");
+            throw new FailedPredicateException(input, "synpred206_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1)");
         }
-        // InternalPerspectiveDsl.g:20356:120: ( ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) ) )
-        // InternalPerspectiveDsl.g:20357:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:20286:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:20287:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 0);
-        // InternalPerspectiveDsl.g:20363:5: ( ( rule__PerspectiveSashContainer__Group_3_0__0 ) )
-        // InternalPerspectiveDsl.g:20364:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1);
+        // InternalPerspectiveDsl.g:20293:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:20294:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_0()); 
+           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_1()); 
         }
-        // InternalPerspectiveDsl.g:20365:6: ( rule__PerspectiveSashContainer__Group_3_0__0 )
-        // InternalPerspectiveDsl.g:20365:7: rule__PerspectiveSashContainer__Group_3_0__0
+        // InternalPerspectiveDsl.g:20295:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+        // InternalPerspectiveDsl.g:20295:7: rule__PerspectiveSashContainer__Group_3_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__Group_3_0__0();
+        rule__PerspectiveSashContainer__Group_3_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78836,31 +78616,31 @@
 
     // $ANTLR start synpred207_InternalPerspectiveDsl
     public final void synpred207_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20370:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20370:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20300:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20300:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:20370:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20371:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:20300:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20301:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred207_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1)");
+            throw new FailedPredicateException(input, "synpred207_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2)");
         }
-        // InternalPerspectiveDsl.g:20371:120: ( ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) ) )
-        // InternalPerspectiveDsl.g:20372:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:20301:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:20302:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 1);
-        // InternalPerspectiveDsl.g:20378:5: ( ( rule__PerspectiveSashContainer__Group_3_1__0 ) )
-        // InternalPerspectiveDsl.g:20379:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2);
+        // InternalPerspectiveDsl.g:20308:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:20309:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_1()); 
+           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_2()); 
         }
-        // InternalPerspectiveDsl.g:20380:6: ( rule__PerspectiveSashContainer__Group_3_1__0 )
-        // InternalPerspectiveDsl.g:20380:7: rule__PerspectiveSashContainer__Group_3_1__0
+        // InternalPerspectiveDsl.g:20310:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
+        // InternalPerspectiveDsl.g:20310:7: rule__PerspectiveSashContainer__Group_3_2__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__Group_3_1__0();
+        rule__PerspectiveSashContainer__Group_3_2__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78883,58 +78663,26 @@
 
     // $ANTLR start synpred208_InternalPerspectiveDsl
     public final void synpred208_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20385:3: ( ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20385:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:20385:3: ({...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20386:4: {...}? => ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred208_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2)");
-        }
-        // InternalPerspectiveDsl.g:20386:120: ( ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) ) )
-        // InternalPerspectiveDsl.g:20387:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), 2);
-        // InternalPerspectiveDsl.g:20393:5: ( ( rule__PerspectiveSashContainer__Group_3_2__0 ) )
-        // InternalPerspectiveDsl.g:20394:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_2()); 
-        }
-        // InternalPerspectiveDsl.g:20395:6: ( rule__PerspectiveSashContainer__Group_3_2__0 )
-        // InternalPerspectiveDsl.g:20395:7: rule__PerspectiveSashContainer__Group_3_2__0
+        // InternalPerspectiveDsl.g:20344:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )
+        // InternalPerspectiveDsl.g:20344:2: rule__PerspectiveSashContainer__UnorderedGroup_3__1
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__Group_3_2__0();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__1();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
     }
     // $ANTLR end synpred208_InternalPerspectiveDsl
 
     // $ANTLR start synpred209_InternalPerspectiveDsl
     public final void synpred209_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20429:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__1 )
-        // InternalPerspectiveDsl.g:20429:2: rule__PerspectiveSashContainer__UnorderedGroup_3__1
+        // InternalPerspectiveDsl.g:20356:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )
+        // InternalPerspectiveDsl.g:20356:2: rule__PerspectiveSashContainer__UnorderedGroup_3__2
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__1();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78945,11 +78693,11 @@
 
     // $ANTLR start synpred210_InternalPerspectiveDsl
     public final void synpred210_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20441:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__2 )
-        // InternalPerspectiveDsl.g:20441:2: rule__PerspectiveSashContainer__UnorderedGroup_3__2
+        // InternalPerspectiveDsl.g:20368:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )
+        // InternalPerspectiveDsl.g:20368:2: rule__PerspectiveSashContainer__UnorderedGroup_3__3
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__2();
+        rule__PerspectiveSashContainer__UnorderedGroup_3__3();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78960,11 +78708,11 @@
 
     // $ANTLR start synpred211_InternalPerspectiveDsl
     public final void synpred211_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20453:2: ( rule__PerspectiveSashContainer__UnorderedGroup_3__3 )
-        // InternalPerspectiveDsl.g:20453:2: rule__PerspectiveSashContainer__UnorderedGroup_3__3
+        // InternalPerspectiveDsl.g:20392:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )
+        // InternalPerspectiveDsl.g:20392:2: rule__PerspectivePartStack__UnorderedGroup_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectiveSashContainer__UnorderedGroup_3__3();
+        rule__PerspectivePartStack__UnorderedGroup_3__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78975,46 +78723,78 @@
 
     // $ANTLR start synpred212_InternalPerspectiveDsl
     public final void synpred212_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20477:2: ( rule__PerspectivePartStack__UnorderedGroup_3__0 )
-        // InternalPerspectiveDsl.g:20477:2: rule__PerspectivePartStack__UnorderedGroup_3__0
+        // InternalPerspectiveDsl.g:20407:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20407:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:20407:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20408:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred212_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0)");
+        }
+        // InternalPerspectiveDsl.g:20408:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20409:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0);
+        // InternalPerspectiveDsl.g:20415:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:20416:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_0()); 
+        }
+        // InternalPerspectiveDsl.g:20417:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+        // InternalPerspectiveDsl.g:20417:7: rule__PerspectivePartStack__Group_3_0__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__UnorderedGroup_3__0();
+        rule__PerspectivePartStack__Group_3_0__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
     }
     // $ANTLR end synpred212_InternalPerspectiveDsl
 
     // $ANTLR start synpred213_InternalPerspectiveDsl
     public final void synpred213_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20492:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20492:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20422:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20422:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:20492:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20493:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20422:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20423:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred213_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0)");
+            throw new FailedPredicateException(input, "synpred213_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1)");
         }
-        // InternalPerspectiveDsl.g:20493:116: ( ( ( rule__PerspectivePartStack__Group_3_0__0 ) ) )
-        // InternalPerspectiveDsl.g:20494:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:20423:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:20424:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 0);
-        // InternalPerspectiveDsl.g:20500:5: ( ( rule__PerspectivePartStack__Group_3_0__0 ) )
-        // InternalPerspectiveDsl.g:20501:6: ( rule__PerspectivePartStack__Group_3_0__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1);
+        // InternalPerspectiveDsl.g:20430:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:20431:6: ( rule__PerspectivePartStack__Group_3_1__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_0()); 
+           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_1()); 
         }
-        // InternalPerspectiveDsl.g:20502:6: ( rule__PerspectivePartStack__Group_3_0__0 )
-        // InternalPerspectiveDsl.g:20502:7: rule__PerspectivePartStack__Group_3_0__0
+        // InternalPerspectiveDsl.g:20432:6: ( rule__PerspectivePartStack__Group_3_1__0 )
+        // InternalPerspectiveDsl.g:20432:7: rule__PerspectivePartStack__Group_3_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__Group_3_0__0();
+        rule__PerspectivePartStack__Group_3_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79037,58 +78817,26 @@
 
     // $ANTLR start synpred214_InternalPerspectiveDsl
     public final void synpred214_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20507:3: ( ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20507:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:20507:3: ({...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20508:4: {...}? => ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred214_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1)");
-        }
-        // InternalPerspectiveDsl.g:20508:116: ( ( ( rule__PerspectivePartStack__Group_3_1__0 ) ) )
-        // InternalPerspectiveDsl.g:20509:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 1);
-        // InternalPerspectiveDsl.g:20515:5: ( ( rule__PerspectivePartStack__Group_3_1__0 ) )
-        // InternalPerspectiveDsl.g:20516:6: ( rule__PerspectivePartStack__Group_3_1__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_1()); 
-        }
-        // InternalPerspectiveDsl.g:20517:6: ( rule__PerspectivePartStack__Group_3_1__0 )
-        // InternalPerspectiveDsl.g:20517:7: rule__PerspectivePartStack__Group_3_1__0
+        // InternalPerspectiveDsl.g:20466:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )
+        // InternalPerspectiveDsl.g:20466:2: rule__PerspectivePartStack__UnorderedGroup_3__1
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__Group_3_1__0();
+        rule__PerspectivePartStack__UnorderedGroup_3__1();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
     }
     // $ANTLR end synpred214_InternalPerspectiveDsl
 
     // $ANTLR start synpred215_InternalPerspectiveDsl
     public final void synpred215_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20551:2: ( rule__PerspectivePartStack__UnorderedGroup_3__1 )
-        // InternalPerspectiveDsl.g:20551:2: rule__PerspectivePartStack__UnorderedGroup_3__1
+        // InternalPerspectiveDsl.g:20478:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )
+        // InternalPerspectiveDsl.g:20478:2: rule__PerspectivePartStack__UnorderedGroup_3__2
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__UnorderedGroup_3__1();
+        rule__PerspectivePartStack__UnorderedGroup_3__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79099,11 +78847,11 @@
 
     // $ANTLR start synpred216_InternalPerspectiveDsl
     public final void synpred216_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20563:2: ( rule__PerspectivePartStack__UnorderedGroup_3__2 )
-        // InternalPerspectiveDsl.g:20563:2: rule__PerspectivePartStack__UnorderedGroup_3__2
+        // InternalPerspectiveDsl.g:20502:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )
+        // InternalPerspectiveDsl.g:20502:2: rule__PerspectivePart__UnorderedGroup_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePartStack__UnorderedGroup_3__2();
+        rule__PerspectivePart__UnorderedGroup_3__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79114,46 +78862,78 @@
 
     // $ANTLR start synpred217_InternalPerspectiveDsl
     public final void synpred217_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20587:2: ( rule__PerspectivePart__UnorderedGroup_3__0 )
-        // InternalPerspectiveDsl.g:20587:2: rule__PerspectivePart__UnorderedGroup_3__0
+        // InternalPerspectiveDsl.g:20517:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20517:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+        {
+        // InternalPerspectiveDsl.g:20517:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20518:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred217_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0)");
+        }
+        // InternalPerspectiveDsl.g:20518:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20519:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0);
+        // InternalPerspectiveDsl.g:20525:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:20526:6: ( rule__PerspectivePart__Group_3_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_0()); 
+        }
+        // InternalPerspectiveDsl.g:20527:6: ( rule__PerspectivePart__Group_3_0__0 )
+        // InternalPerspectiveDsl.g:20527:7: rule__PerspectivePart__Group_3_0__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__0();
+        rule__PerspectivePart__Group_3_0__0();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
     }
     // $ANTLR end synpred217_InternalPerspectiveDsl
 
     // $ANTLR start synpred218_InternalPerspectiveDsl
     public final void synpred218_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20602:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20602:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20532:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20532:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:20602:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20603:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20532:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20533:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred218_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0)");
+            throw new FailedPredicateException(input, "synpred218_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1)");
         }
-        // InternalPerspectiveDsl.g:20603:111: ( ( ( rule__PerspectivePart__Group_3_0__0 ) ) )
-        // InternalPerspectiveDsl.g:20604:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
+        // InternalPerspectiveDsl.g:20533:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:20534:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 0);
-        // InternalPerspectiveDsl.g:20610:5: ( ( rule__PerspectivePart__Group_3_0__0 ) )
-        // InternalPerspectiveDsl.g:20611:6: ( rule__PerspectivePart__Group_3_0__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1);
+        // InternalPerspectiveDsl.g:20540:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:20541:6: ( rule__PerspectivePart__Group_3_1__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_0()); 
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_1()); 
         }
-        // InternalPerspectiveDsl.g:20612:6: ( rule__PerspectivePart__Group_3_0__0 )
-        // InternalPerspectiveDsl.g:20612:7: rule__PerspectivePart__Group_3_0__0
+        // InternalPerspectiveDsl.g:20542:6: ( rule__PerspectivePart__Group_3_1__0 )
+        // InternalPerspectiveDsl.g:20542:7: rule__PerspectivePart__Group_3_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_0__0();
+        rule__PerspectivePart__Group_3_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79176,31 +78956,31 @@
 
     // $ANTLR start synpred219_InternalPerspectiveDsl
     public final void synpred219_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20617:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20617:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20547:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20547:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:20617:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20618:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
+        // InternalPerspectiveDsl.g:20547:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20548:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred219_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1)");
+            throw new FailedPredicateException(input, "synpred219_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2)");
         }
-        // InternalPerspectiveDsl.g:20618:111: ( ( ( rule__PerspectivePart__Group_3_1__0 ) ) )
-        // InternalPerspectiveDsl.g:20619:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
+        // InternalPerspectiveDsl.g:20548:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:20549:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 1);
-        // InternalPerspectiveDsl.g:20625:5: ( ( rule__PerspectivePart__Group_3_1__0 ) )
-        // InternalPerspectiveDsl.g:20626:6: ( rule__PerspectivePart__Group_3_1__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2);
+        // InternalPerspectiveDsl.g:20555:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:20556:6: ( rule__PerspectivePart__Group_3_2__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_1()); 
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_2()); 
         }
-        // InternalPerspectiveDsl.g:20627:6: ( rule__PerspectivePart__Group_3_1__0 )
-        // InternalPerspectiveDsl.g:20627:7: rule__PerspectivePart__Group_3_1__0
+        // InternalPerspectiveDsl.g:20557:6: ( rule__PerspectivePart__Group_3_2__0 )
+        // InternalPerspectiveDsl.g:20557:7: rule__PerspectivePart__Group_3_2__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_1__0();
+        rule__PerspectivePart__Group_3_2__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79223,31 +79003,31 @@
 
     // $ANTLR start synpred220_InternalPerspectiveDsl
     public final void synpred220_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20632:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20632:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20562:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20562:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
         {
-        // InternalPerspectiveDsl.g:20632:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20633:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
+        // InternalPerspectiveDsl.g:20562:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20563:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred220_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2)");
+            throw new FailedPredicateException(input, "synpred220_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3)");
         }
-        // InternalPerspectiveDsl.g:20633:111: ( ( ( rule__PerspectivePart__Group_3_2__0 ) ) )
-        // InternalPerspectiveDsl.g:20634:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
+        // InternalPerspectiveDsl.g:20563:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
+        // InternalPerspectiveDsl.g:20564:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 2);
-        // InternalPerspectiveDsl.g:20640:5: ( ( rule__PerspectivePart__Group_3_2__0 ) )
-        // InternalPerspectiveDsl.g:20641:6: ( rule__PerspectivePart__Group_3_2__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3);
+        // InternalPerspectiveDsl.g:20570:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
+        // InternalPerspectiveDsl.g:20571:6: ( rule__PerspectivePart__Group_3_3__0 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_2()); 
+           before(grammarAccess.getPerspectivePartAccess().getGroup_3_3()); 
         }
-        // InternalPerspectiveDsl.g:20642:6: ( rule__PerspectivePart__Group_3_2__0 )
-        // InternalPerspectiveDsl.g:20642:7: rule__PerspectivePart__Group_3_2__0
+        // InternalPerspectiveDsl.g:20572:6: ( rule__PerspectivePart__Group_3_3__0 )
+        // InternalPerspectiveDsl.g:20572:7: rule__PerspectivePart__Group_3_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_2__0();
+        rule__PerspectivePart__Group_3_3__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79270,58 +79050,26 @@
 
     // $ANTLR start synpred221_InternalPerspectiveDsl
     public final void synpred221_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20647:3: ( ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20647:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:20647:3: ({...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20648:4: {...}? => ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred221_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3)");
-        }
-        // InternalPerspectiveDsl.g:20648:111: ( ( ( rule__PerspectivePart__Group_3_3__0 ) ) )
-        // InternalPerspectiveDsl.g:20649:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), 3);
-        // InternalPerspectiveDsl.g:20655:5: ( ( rule__PerspectivePart__Group_3_3__0 ) )
-        // InternalPerspectiveDsl.g:20656:6: ( rule__PerspectivePart__Group_3_3__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getPerspectivePartAccess().getGroup_3_3()); 
-        }
-        // InternalPerspectiveDsl.g:20657:6: ( rule__PerspectivePart__Group_3_3__0 )
-        // InternalPerspectiveDsl.g:20657:7: rule__PerspectivePart__Group_3_3__0
+        // InternalPerspectiveDsl.g:20606:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )
+        // InternalPerspectiveDsl.g:20606:2: rule__PerspectivePart__UnorderedGroup_3__1
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__Group_3_3__0();
+        rule__PerspectivePart__UnorderedGroup_3__1();
 
         state._fsp--;
         if (state.failed) return ;
 
         }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
     }
     // $ANTLR end synpred221_InternalPerspectiveDsl
 
     // $ANTLR start synpred222_InternalPerspectiveDsl
     public final void synpred222_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20691:2: ( rule__PerspectivePart__UnorderedGroup_3__1 )
-        // InternalPerspectiveDsl.g:20691:2: rule__PerspectivePart__UnorderedGroup_3__1
+        // InternalPerspectiveDsl.g:20618:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )
+        // InternalPerspectiveDsl.g:20618:2: rule__PerspectivePart__UnorderedGroup_3__2
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__1();
+        rule__PerspectivePart__UnorderedGroup_3__2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79332,11 +79080,11 @@
 
     // $ANTLR start synpred223_InternalPerspectiveDsl
     public final void synpred223_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20703:2: ( rule__PerspectivePart__UnorderedGroup_3__2 )
-        // InternalPerspectiveDsl.g:20703:2: rule__PerspectivePart__UnorderedGroup_3__2
+        // InternalPerspectiveDsl.g:20630:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )
+        // InternalPerspectiveDsl.g:20630:2: rule__PerspectivePart__UnorderedGroup_3__3
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__2();
+        rule__PerspectivePart__UnorderedGroup_3__3();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79347,11 +79095,11 @@
 
     // $ANTLR start synpred224_InternalPerspectiveDsl
     public final void synpred224_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20715:2: ( rule__PerspectivePart__UnorderedGroup_3__3 )
-        // InternalPerspectiveDsl.g:20715:2: rule__PerspectivePart__UnorderedGroup_3__3
+        // InternalPerspectiveDsl.g:20642:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )
+        // InternalPerspectiveDsl.g:20642:2: rule__PerspectivePart__UnorderedGroup_3__4
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__3();
+        rule__PerspectivePart__UnorderedGroup_3__4();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79362,11 +79110,11 @@
 
     // $ANTLR start synpred225_InternalPerspectiveDsl
     public final void synpred225_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20727:2: ( rule__PerspectivePart__UnorderedGroup_3__4 )
-        // InternalPerspectiveDsl.g:20727:2: rule__PerspectivePart__UnorderedGroup_3__4
+        // InternalPerspectiveDsl.g:20666:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )
+        // InternalPerspectiveDsl.g:20666:2: rule__PerspectiveSearch__UnorderedGroup_4__0
         {
         pushFollow(FOLLOW_2);
-        rule__PerspectivePart__UnorderedGroup_3__4();
+        rule__PerspectiveSearch__UnorderedGroup_4__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -79377,43 +79125,28 @@
 
     // $ANTLR start synpred226_InternalPerspectiveDsl
     public final void synpred226_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20751:2: ( rule__PerspectiveSearch__UnorderedGroup_4__0 )
-        // InternalPerspectiveDsl.g:20751:2: rule__PerspectiveSearch__UnorderedGroup_4__0
+        // InternalPerspectiveDsl.g:20681:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) )
+        // InternalPerspectiveDsl.g:20681:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
         {
-        pushFollow(FOLLOW_2);
-        rule__PerspectiveSearch__UnorderedGroup_4__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred226_InternalPerspectiveDsl
-
-    // $ANTLR start synpred227_InternalPerspectiveDsl
-    public final void synpred227_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20766:3: ( ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) ) )
-        // InternalPerspectiveDsl.g:20766:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
-        {
-        // InternalPerspectiveDsl.g:20766:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
-        // InternalPerspectiveDsl.g:20767:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20681:3: ({...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) ) )
+        // InternalPerspectiveDsl.g:20682:4: {...}? => ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
         {
         if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred227_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0)");
+            throw new FailedPredicateException(input, "synpred226_InternalPerspectiveDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0)");
         }
-        // InternalPerspectiveDsl.g:20767:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
-        // InternalPerspectiveDsl.g:20768:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+        // InternalPerspectiveDsl.g:20682:113: ( ( ( rule__PerspectiveSearch__Group_4_0__0 ) ) )
+        // InternalPerspectiveDsl.g:20683:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
         {
         getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0);
-        // InternalPerspectiveDsl.g:20774:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
-        // InternalPerspectiveDsl.g:20775:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+        // InternalPerspectiveDsl.g:20689:5: ( ( rule__PerspectiveSearch__Group_4_0__0 ) )
+        // InternalPerspectiveDsl.g:20690:6: ( rule__PerspectiveSearch__Group_4_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getPerspectiveSearchAccess().getGroup_4_0()); 
         }
-        // InternalPerspectiveDsl.g:20776:6: ( rule__PerspectiveSearch__Group_4_0__0 )
-        // InternalPerspectiveDsl.g:20776:7: rule__PerspectiveSearch__Group_4_0__0
+        // InternalPerspectiveDsl.g:20691:6: ( rule__PerspectiveSearch__Group_4_0__0 )
+        // InternalPerspectiveDsl.g:20691:7: rule__PerspectiveSearch__Group_4_0__0
         {
         pushFollow(FOLLOW_2);
         rule__PerspectiveSearch__Group_4_0__0();
@@ -79435,12 +79168,12 @@
 
         }
     }
-    // $ANTLR end synpred227_InternalPerspectiveDsl
+    // $ANTLR end synpred226_InternalPerspectiveDsl
 
-    // $ANTLR start synpred228_InternalPerspectiveDsl
-    public final void synpred228_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:20810:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )
-        // InternalPerspectiveDsl.g:20810:2: rule__PerspectiveSearch__UnorderedGroup_4__1
+    // $ANTLR start synpred227_InternalPerspectiveDsl
+    public final void synpred227_InternalPerspectiveDsl_fragment() throws RecognitionException {   
+        // InternalPerspectiveDsl.g:20725:2: ( rule__PerspectiveSearch__UnorderedGroup_4__1 )
+        // InternalPerspectiveDsl.g:20725:2: rule__PerspectiveSearch__UnorderedGroup_4__1
         {
         pushFollow(FOLLOW_2);
         rule__PerspectiveSearch__UnorderedGroup_4__1();
@@ -79450,7 +79183,7 @@
 
         }
     }
-    // $ANTLR end synpred228_InternalPerspectiveDsl
+    // $ANTLR end synpred227_InternalPerspectiveDsl
 
     // Delegated rules
 
@@ -79482,11 +79215,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred188_InternalPerspectiveDsl() {
+    public final boolean synpred125_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred188_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred125_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79510,11 +79243,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred206_InternalPerspectiveDsl() {
+    public final boolean synpred193_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred206_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred193_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79524,11 +79257,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred172_InternalPerspectiveDsl() {
+    public final boolean synpred206_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred172_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred206_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79566,20 +79299,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred50_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred50_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred184_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -79622,34 +79341,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred96_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred96_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred137_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred137_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred219_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -79678,6 +79369,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred175_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred175_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred202_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -79692,34 +79397,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred24_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred24_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred158_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred158_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred129_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -79734,11 +79411,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred126_InternalPerspectiveDsl() {
+    public final boolean synpred62_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred126_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred62_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79776,6 +79453,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred187_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred187_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred210_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -79818,6 +79509,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred70_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred70_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred222_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -79832,11 +79537,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred63_InternalPerspectiveDsl() {
+    public final boolean synpred218_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred63_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred218_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79846,11 +79551,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred218_InternalPerspectiveDsl() {
+    public final boolean synpred21_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred218_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred21_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred138_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred138_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79888,11 +79607,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred203_InternalPerspectiveDsl() {
+    public final boolean synpred157_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred203_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred157_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79902,11 +79621,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred195_InternalPerspectiveDsl() {
+    public final boolean synpred203_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred195_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred203_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79930,6 +79649,48 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred48_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred48_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred199_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred199_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred191_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred191_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred208_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -79944,25 +79705,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred148_InternalPerspectiveDsl() {
+    public final boolean synpred127_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred148_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred186_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred186_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred127_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79986,6 +79733,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred170_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred170_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred139_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -80014,34 +79775,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred90_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred90_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred140_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred140_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred177_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -80112,6 +79845,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred182_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred182_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred221_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -80182,39 +79929,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred85_InternalPerspectiveDsl() {
+    public final boolean synpred95_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred85_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred228_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred228_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred192_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred192_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred95_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -80238,6 +79957,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred147_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred147_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred205_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -80266,11 +79999,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred72_InternalPerspectiveDsl() {
+    public final boolean synpred154_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred72_InternalPerspectiveDsl_fragment(); // can never throw exception
+            synpred154_InternalPerspectiveDsl_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -80350,34 +80083,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred178_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred178_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred155_InternalPerspectiveDsl() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred155_InternalPerspectiveDsl_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred216_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -80406,6 +80111,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred88_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred88_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred128_InternalPerspectiveDsl() {
         state.backtracking++;
         int start = input.mark();
@@ -80434,6 +80153,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred84_InternalPerspectiveDsl() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred84_InternalPerspectiveDsl_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
 
 
     protected DFA5 dfa5 = new DFA5(this);
@@ -80464,17 +80197,17 @@
     static final String dfa_1s = "\10\uffff";
     static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
     static final String dfa_3s = "\1\4\1\uffff\1\53\1\uffff\1\4\1\uffff\1\53\1\uffff";
-    static final String dfa_4s = "\1\170\1\uffff\1\130\1\uffff\1\44\1\uffff\1\130\1\uffff";
+    static final String dfa_4s = "\1\167\1\uffff\1\127\1\uffff\1\44\1\uffff\1\127\1\uffff";
     static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\51\uffff\1\1\111\uffff\1\3",
+            "\1\2\51\uffff\1\1\110\uffff\1\3",
             "",
-            "\1\4\3\uffff\1\5\5\uffff\1\5\42\uffff\1\5",
+            "\1\4\3\uffff\1\5\5\uffff\1\5\41\uffff\1\5",
             "",
             "\1\6\37\uffff\1\7",
             "",
-            "\1\4\3\uffff\1\5\5\uffff\1\5\42\uffff\1\5",
+            "\1\4\3\uffff\1\5\5\uffff\1\5\41\uffff\1\5",
             ""
     };
 
@@ -80500,16 +80233,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "2849:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
+            return "2818:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
         }
     }
     static final String dfa_8s = "\43\uffff";
     static final String dfa_9s = "\1\4\1\0\41\uffff";
-    static final String dfa_10s = "\1\175\1\0\41\uffff";
+    static final String dfa_10s = "\1\174\1\0\41\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_12s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_13s = {
-            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\42\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
+            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\41\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -80567,7 +80300,7 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "2903:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
+            return "2872:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80580,7 +80313,7 @@
                         int index7_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred22_InternalPerspectiveDsl()) ) {s = 34;}
+                        if ( (synpred21_InternalPerspectiveDsl()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -80597,7 +80330,7 @@
         }
     }
     static final String[] dfa_14s = {
-            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\42\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
+            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\41\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -80649,7 +80382,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2924:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
+            return "2893:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80662,7 +80395,7 @@
                         int index8_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred23_InternalPerspectiveDsl()) ) {s = 34;}
+                        if ( (synpred22_InternalPerspectiveDsl()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -80693,7 +80426,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2945:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+            return "2914:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80706,7 +80439,7 @@
                         int index9_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred24_InternalPerspectiveDsl()) ) {s = 34;}
+                        if ( (synpred23_InternalPerspectiveDsl()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -80762,25 +80495,25 @@
             this.transition = dfa_20;
         }
         public String getDescription() {
-            return "3146:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+            return "3115:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
         }
     }
     static final String dfa_21s = "\12\uffff";
     static final String dfa_22s = "\4\uffff\5\3\1\uffff";
     static final String dfa_23s = "\1\53\2\4\1\uffff\5\4\1\uffff";
-    static final String dfa_24s = "\1\172\2\61\1\uffff\5\175\1\uffff";
+    static final String dfa_24s = "\1\171\2\61\1\uffff\5\174\1\uffff";
     static final String dfa_25s = "\3\uffff\1\2\5\uffff\1\1";
     static final String dfa_26s = "\12\uffff}>";
     static final String[] dfa_27s = {
-            "\1\1\115\uffff\1\2\1\3",
+            "\1\1\114\uffff\1\2\1\3",
             "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
             "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
             "",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\40\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\40\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\40\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\40\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\40\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\37\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\37\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\37\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\37\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\3\uffff\2\3\37\uffff\1\3\1\uffff\32\3\5\uffff\2\3\1\uffff\2\3",
             ""
     };
 
@@ -80806,15 +80539,15 @@
             this.transition = dfa_27;
         }
         public String getDescription() {
-            return "3380:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+            return "3349:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
         }
     }
     static final String dfa_28s = "\1\4\2\0\40\uffff";
-    static final String dfa_29s = "\1\175\2\0\40\uffff";
+    static final String dfa_29s = "\1\174\2\0\40\uffff";
     static final String dfa_30s = "\3\uffff\1\1\1\uffff\1\2\35\uffff";
     static final String dfa_31s = "\1\uffff\1\0\1\1\40\uffff}>";
     static final String[] dfa_32s = {
-            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\3\uffff\1\5\43\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\1\uffff\1\5",
+            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\3\uffff\1\5\42\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -80870,7 +80603,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3449:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
+            return "3418:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80883,7 +80616,7 @@
                         int index27_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred63_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred62_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -80898,7 +80631,7 @@
                         int index27_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred63_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred62_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -80916,11 +80649,11 @@
     }
     static final String dfa_33s = "\40\uffff";
     static final String dfa_34s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_35s = "\1\175\26\uffff\1\0\10\uffff";
+    static final String dfa_35s = "\1\174\26\uffff\1\0\10\uffff";
     static final String dfa_36s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_37s = "\27\uffff\1\0\10\uffff}>";
     static final String[] dfa_38s = {
-            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\3\uffff\1\2\43\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\12\uffff\1\14",
+            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\3\uffff\1\2\42\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\12\uffff\1\14",
             "",
             "",
             "",
@@ -80975,7 +80708,7 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "3470:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
+            return "3439:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80988,9 +80721,9 @@
                         int index28_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred71_InternalPerspectiveDsl()) ) {s = 30;}
+                        if ( (synpred70_InternalPerspectiveDsl()) ) {s = 30;}
 
-                        else if ( (synpred72_InternalPerspectiveDsl()) ) {s = 31;}
+                        else if ( (synpred71_InternalPerspectiveDsl()) ) {s = 31;}
 
                          
                         input.seek(index28_23);
@@ -81005,7 +80738,7 @@
         }
     }
     static final String[] dfa_39s = {
-            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\43\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
+            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\3\uffff\1\2\42\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -81057,7 +80790,7 @@
             this.transition = dfa_39;
         }
         public String getDescription() {
-            return "3641:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
+            return "3610:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -81070,7 +80803,7 @@
                         int index31_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred85_InternalPerspectiveDsl()) ) {s = 34;}
+                        if ( (synpred84_InternalPerspectiveDsl()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -81101,7 +80834,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3746:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+            return "3715:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -81114,7 +80847,7 @@
                         int index36_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred90_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred89_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -81129,7 +80862,7 @@
                         int index36_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred90_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred89_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -81160,7 +80893,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3827:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+            return "3796:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -81173,7 +80906,7 @@
                         int index39_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred96_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred95_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -81188,7 +80921,7 @@
                         int index39_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred96_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred95_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -81206,11 +80939,11 @@
     }
     static final String dfa_40s = "\1\10\11\uffff";
     static final String dfa_41s = "\1\4\7\0\2\uffff";
-    static final String dfa_42s = "\1\175\7\0\2\uffff";
+    static final String dfa_42s = "\1\174\7\0\2\uffff";
     static final String dfa_43s = "\10\uffff\1\2\1\1";
-    static final String dfa_44s = "\1\uffff\1\2\1\5\1\0\1\1\1\3\1\6\1\4\2\uffff}>";
+    static final String dfa_44s = "\1\uffff\1\3\1\0\1\6\1\5\1\4\1\1\1\2\2\uffff}>";
     static final String[] dfa_45s = {
-            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\3\uffff\2\10\40\uffff\1\10\1\uffff\32\10\5\uffff\2\10\1\uffff\2\10",
+            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\3\uffff\2\10\37\uffff\1\10\1\uffff\32\10\5\uffff\2\10\1\uffff\2\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -81242,95 +80975,20 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "8922:2: ( rule__XAssignment__Group_1_1__0 )?";
+            return "8837:2: ( rule__XAssignment__Group_1_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA69_3 = input.LA(1);
-
-                         
-                        int index69_3 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred126_InternalPerspectiveDsl()) ) {s = 9;}
-
-                        else if ( (true) ) {s = 8;}
-
-                         
-                        input.seek(index69_3);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
-                        int LA69_4 = input.LA(1);
-
-                         
-                        int index69_4 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred126_InternalPerspectiveDsl()) ) {s = 9;}
-
-                        else if ( (true) ) {s = 8;}
-
-                         
-                        input.seek(index69_4);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA69_1 = input.LA(1);
-
-                         
-                        int index69_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred126_InternalPerspectiveDsl()) ) {s = 9;}
-
-                        else if ( (true) ) {s = 8;}
-
-                         
-                        input.seek(index69_1);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 3 : 
-                        int LA69_5 = input.LA(1);
-
-                         
-                        int index69_5 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred126_InternalPerspectiveDsl()) ) {s = 9;}
-
-                        else if ( (true) ) {s = 8;}
-
-                         
-                        input.seek(index69_5);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 4 : 
-                        int LA69_7 = input.LA(1);
-
-                         
-                        int index69_7 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred126_InternalPerspectiveDsl()) ) {s = 9;}
-
-                        else if ( (true) ) {s = 8;}
-
-                         
-                        input.seek(index69_7);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 5 : 
                         int LA69_2 = input.LA(1);
 
                          
                         int index69_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred126_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred125_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
@@ -81338,14 +80996,14 @@
                         input.seek(index69_2);
                         if ( s>=0 ) return s;
                         break;
-                    case 6 : 
+                    case 1 : 
                         int LA69_6 = input.LA(1);
 
                          
                         int index69_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred126_InternalPerspectiveDsl()) ) {s = 9;}
+                        if ( (synpred125_InternalPerspectiveDsl()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
@@ -81353,6 +81011,81 @@
                         input.seek(index69_6);
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA69_7 = input.LA(1);
+
+                         
+                        int index69_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred125_InternalPerspectiveDsl()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA69_1 = input.LA(1);
+
+                         
+                        int index69_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred125_InternalPerspectiveDsl()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA69_5 = input.LA(1);
+
+                         
+                        int index69_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred125_InternalPerspectiveDsl()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA69_4 = input.LA(1);
+
+                         
+                        int index69_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred125_InternalPerspectiveDsl()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA69_3 = input.LA(1);
+
+                         
+                        int index69_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred125_InternalPerspectiveDsl()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_3);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -81363,11 +81096,11 @@
     }
     static final String dfa_46s = "\1\1\12\uffff";
     static final String dfa_47s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_48s = "\1\175\1\uffff\10\0\1\uffff";
+    static final String dfa_48s = "\1\174\1\uffff\10\0\1\uffff";
     static final String dfa_49s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_50s = "\2\uffff\1\1\1\2\1\7\1\3\1\5\1\4\1\6\1\0\1\uffff}>";
+    static final String dfa_50s = "\2\uffff\1\5\1\4\1\3\1\6\1\0\1\2\1\1\1\7\1\uffff}>";
     static final String[] dfa_51s = {
-            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\3\uffff\2\1\40\uffff\1\1\1\uffff\32\1\5\uffff\2\1\1\uffff\2\1",
+            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\3\uffff\2\1\37\uffff\1\1\1\uffff\32\1\5\uffff\2\1\1\uffff\2\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -81400,95 +81133,20 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "()* loopback of 10218:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+            return "()* loopback of 10133:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA75_9 = input.LA(1);
-
-                         
-                        int index75_9 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index75_9);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
-                        int LA75_2 = input.LA(1);
-
-                         
-                        int index75_2 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index75_2);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA75_3 = input.LA(1);
-
-                         
-                        int index75_3 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index75_3);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 3 : 
-                        int LA75_5 = input.LA(1);
-
-                         
-                        int index75_5 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index75_5);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 4 : 
-                        int LA75_7 = input.LA(1);
-
-                         
-                        int index75_7 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index75_7);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 5 : 
                         int LA75_6 = input.LA(1);
 
                          
                         int index75_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
@@ -81496,14 +81154,14 @@
                         input.seek(index75_6);
                         if ( s>=0 ) return s;
                         break;
-                    case 6 : 
+                    case 1 : 
                         int LA75_8 = input.LA(1);
 
                          
                         int index75_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
@@ -81511,14 +81169,29 @@
                         input.seek(index75_8);
                         if ( s>=0 ) return s;
                         break;
-                    case 7 : 
+                    case 2 : 
+                        int LA75_7 = input.LA(1);
+
+                         
+                        int index75_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index75_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
                         int LA75_4 = input.LA(1);
 
                          
                         int index75_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred132_InternalPerspectiveDsl()) ) {s = 10;}
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
@@ -81526,6 +81199,66 @@
                         input.seek(index75_4);
                         if ( s>=0 ) return s;
                         break;
+                    case 4 : 
+                        int LA75_3 = input.LA(1);
+
+                         
+                        int index75_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index75_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA75_2 = input.LA(1);
+
+                         
+                        int index75_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index75_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA75_5 = input.LA(1);
+
+                         
+                        int index75_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index75_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA75_9 = input.LA(1);
+
+                         
+                        int index75_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred131_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index75_9);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -81537,11 +81270,11 @@
     static final String dfa_52s = "\116\uffff";
     static final String dfa_53s = "\1\2\115\uffff";
     static final String dfa_54s = "\1\4\1\0\114\uffff";
-    static final String dfa_55s = "\1\175\1\0\114\uffff";
+    static final String dfa_55s = "\1\174\1\0\114\uffff";
     static final String dfa_56s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_57s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_58s = {
-            "\5\2\5\uffff\45\2\3\uffff\2\2\40\uffff\1\2\1\uffff\1\1\31\2\5\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\3\uffff\2\2\37\uffff\1\2\1\uffff\1\1\31\2\5\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -81643,7 +81376,7 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "11812:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+            return "11727:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -81656,7 +81389,7 @@
                         int index82_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred139_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred138_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -81673,7 +81406,7 @@
         }
     }
     static final String[] dfa_59s = {
-            "\5\2\5\uffff\45\2\3\uffff\2\2\40\uffff\1\2\1\uffff\5\2\1\1\24\2\5\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\3\uffff\2\2\37\uffff\1\2\1\uffff\5\2\1\1\24\2\5\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -81768,7 +81501,7 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "11838:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+            return "11753:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -81781,7 +81514,7 @@
                         int index83_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred140_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred139_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -81799,11 +81532,11 @@
     }
     static final String dfa_60s = "\46\uffff";
     static final String dfa_61s = "\1\4\2\0\43\uffff";
-    static final String dfa_62s = "\1\175\2\0\43\uffff";
+    static final String dfa_62s = "\1\174\2\0\43\uffff";
     static final String dfa_63s = "\3\uffff\1\1\1\uffff\1\2\40\uffff";
     static final String dfa_64s = "\1\uffff\1\0\1\1\43\uffff}>";
     static final String[] dfa_65s = {
-            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\3\uffff\1\5\43\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\2\5",
+            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\3\uffff\1\5\42\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\2\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -81864,7 +81597,7 @@
             this.transition = dfa_65;
         }
         public String getDescription() {
-            return "12811:2: ( rule__XClosure__Group_1__0 )?";
+            return "12726:2: ( rule__XClosure__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -81877,7 +81610,7 @@
                         int index91_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred148_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred147_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -81892,7 +81625,7 @@
                         int index91_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred148_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred147_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
@@ -81910,11 +81643,11 @@
     }
     static final String dfa_66s = "\42\uffff";
     static final String dfa_67s = "\1\4\2\0\37\uffff";
-    static final String dfa_68s = "\1\175\2\0\37\uffff";
+    static final String dfa_68s = "\1\174\2\0\37\uffff";
     static final String dfa_69s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_70s = "\1\uffff\1\0\1\1\37\uffff}>";
     static final String[] dfa_71s = {
-            "\1\1\4\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\3\uffff\1\4\43\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\12\uffff\1\4",
+            "\1\1\4\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\3\uffff\1\4\42\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\12\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -81971,7 +81704,7 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "14242:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
+            return "14157:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -81984,7 +81717,7 @@
                         int index101_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred158_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred157_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
@@ -81999,7 +81732,7 @@
                         int index101_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred158_InternalPerspectiveDsl()) ) {s = 3;}
+                        if ( (synpred157_InternalPerspectiveDsl()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
@@ -82030,7 +81763,7 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "16375:2: ( rule__XFeatureCall__Group_3__0 )?";
+            return "16290:2: ( rule__XFeatureCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82043,7 +81776,7 @@
                         int index114_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred171_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred170_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -82074,7 +81807,7 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "16401:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+            return "16316:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82087,7 +81820,7 @@
                         int index115_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred172_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred171_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -82104,7 +81837,7 @@
         }
     }
     static final String[] dfa_72s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\3\uffff\2\2\40\uffff\1\2\1\uffff\32\2\5\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\3\uffff\2\2\37\uffff\1\2\1\uffff\32\2\5\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -82199,7 +81932,7 @@
             this.transition = dfa_72;
         }
         public String getDescription() {
-            return "16861:2: ( rule__XConstructorCall__Group_3__0 )?";
+            return "16776:2: ( rule__XConstructorCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82212,7 +81945,7 @@
                         int index119_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred175_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -82243,7 +81976,7 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "16888:2: ( rule__XConstructorCall__Group_4__0 )?";
+            return "16803:2: ( rule__XConstructorCall__Group_4__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82256,7 +81989,7 @@
                         int index120_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred177_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred176_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -82287,7 +82020,7 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "16914:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+            return "16829:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82300,7 +82033,7 @@
                         int index121_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred178_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred177_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -82318,11 +82051,11 @@
     }
     static final String dfa_73s = "\1\41\115\uffff";
     static final String dfa_74s = "\1\4\40\0\55\uffff";
-    static final String dfa_75s = "\1\175\40\0\55\uffff";
+    static final String dfa_75s = "\1\174\40\0\55\uffff";
     static final String dfa_76s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_77s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_78s = {
-            "\1\1\1\27\1\23\1\24\1\25\5\uffff\15\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\3\uffff\1\12\1\41\40\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\5\uffff\2\41\1\uffff\1\41\1\22",
+            "\1\1\1\27\1\23\1\24\1\25\5\uffff\15\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\3\uffff\1\12\1\41\37\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\5\uffff\2\41\1\uffff\1\41\1\22",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -82422,7 +82155,7 @@
             this.transition = dfa_78;
         }
         public String getDescription() {
-            return "17805:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+            return "17720:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82435,7 +82168,7 @@
                         int index126_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82450,7 +82183,7 @@
                         int index126_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82465,7 +82198,7 @@
                         int index126_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82480,7 +82213,7 @@
                         int index126_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82495,7 +82228,7 @@
                         int index126_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82510,7 +82243,7 @@
                         int index126_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82525,7 +82258,7 @@
                         int index126_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82540,7 +82273,7 @@
                         int index126_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82555,7 +82288,7 @@
                         int index126_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82570,7 +82303,7 @@
                         int index126_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82585,7 +82318,7 @@
                         int index126_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82600,7 +82333,7 @@
                         int index126_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82615,7 +82348,7 @@
                         int index126_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82630,7 +82363,7 @@
                         int index126_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82645,7 +82378,7 @@
                         int index126_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82660,7 +82393,7 @@
                         int index126_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82675,7 +82408,7 @@
                         int index126_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82690,7 +82423,7 @@
                         int index126_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82705,7 +82438,7 @@
                         int index126_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82720,7 +82453,7 @@
                         int index126_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82735,7 +82468,7 @@
                         int index126_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82750,7 +82483,7 @@
                         int index126_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82765,7 +82498,7 @@
                         int index126_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82780,7 +82513,7 @@
                         int index126_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82795,7 +82528,7 @@
                         int index126_25 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82810,7 +82543,7 @@
                         int index126_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82825,7 +82558,7 @@
                         int index126_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82840,7 +82573,7 @@
                         int index126_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82855,7 +82588,7 @@
                         int index126_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82870,7 +82603,7 @@
                         int index126_30 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82885,7 +82618,7 @@
                         int index126_31 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82900,7 +82633,7 @@
                         int index126_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred183_InternalPerspectiveDsl()) ) {s = 77;}
+                        if ( (synpred182_InternalPerspectiveDsl()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
@@ -82919,11 +82652,11 @@
     static final String dfa_79s = "\117\uffff";
     static final String dfa_80s = "\1\2\116\uffff";
     static final String dfa_81s = "\1\4\1\0\115\uffff";
-    static final String dfa_82s = "\1\175\1\0\115\uffff";
+    static final String dfa_82s = "\1\174\1\0\115\uffff";
     static final String dfa_83s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_84s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_85s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\3\uffff\2\2\40\uffff\1\2\1\uffff\32\2\1\uffff\1\2\3\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\3\uffff\2\2\37\uffff\1\2\1\uffff\32\2\1\uffff\1\2\3\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -83026,7 +82759,7 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "19162:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
+            return "19077:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -83039,7 +82772,7 @@
                         int index135_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred192_InternalPerspectiveDsl()) ) {s = 78;}
+                        if ( (synpred191_InternalPerspectiveDsl()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -83070,7 +82803,7 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "19432:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+            return "19347:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -83083,7 +82816,7 @@
                         int index138_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred195_InternalPerspectiveDsl()) ) {s = 78;}
+                        if ( (synpred194_InternalPerspectiveDsl()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -83112,7 +82845,7 @@
     public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0180000000000000L});
     public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0100000000000002L});
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0100000000000000L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x3A00000000000000L,0x0040000000000000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x3A00000000000000L,0x0020000000000000L});
     public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x4080000000000000L,0x000000000000000CL});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x4000000000000002L,0x000000000000000CL});
     public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000020L});
@@ -83123,8 +82856,8 @@
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x1000000000000000L,0x0000000000000003L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x4000000000000000L,0x000000000000000CL});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x1800000000000000L,0x0080000000000012L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x00000000008CFFE0L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x1800000000000000L,0x0040000000000012L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x0000000000467FE0L});
     public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
     public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
@@ -83134,114 +82867,113 @@
     public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
     public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
     public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
     public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
     public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
     public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000600000L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000400000000010L,0x0100000000000000L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0001000000000010L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000001000000010L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000300000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000400000000010L,0x0080000000000000L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0001000000000010L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000001000000010L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
     public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0047E10C080001F0L,0x2005FF14CE000000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000002L,0x0000000010000000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0047E10C080001F0L,0x2005FF14C6000000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0047E10C080001F0L,0x2005FF14E6000000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0047E10C080001F0L,0x1002FF8A67000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0047E10C080001F0L,0x1002FF8A63000000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0047E10C080001F0L,0x1002FF8A73000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
     public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0001E00000000010L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x000000000C1F0000L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000006000000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000008002L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000001E00000L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000001E00002L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x000000000E000000L,0x0000000100000000L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x000000000E000002L,0x0000000100000000L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000080000010L,0x0000000004000000L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x00000003FC000000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x00000003FC000002L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000088000000L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000C00000000L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000C00000002L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x000000F000000000L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x000000F000000002L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000010C00000000L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000060000000000L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000080000000000L,0x0600000000000000L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000080000000002L,0x0600000000000000L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000080000000000L,0x0200000000000000L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0003E00008000010L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000000L,0x0000000084000000L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000080000010L,0x0010000004000000L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000004000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0047E10C880001F0L,0x2805FF14CE000000L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x00C7E10C080001F0L,0x2005FF14C6000000L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0047F10C880001F0L,0x3805FF14C6000000L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000080000010L,0x0800000004000000L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0047F10C080001F2L,0x3005FF14C6000000L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0001E00000000010L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x000000000C1F0000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000006000000L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000008002L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000001E00000L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000001E00002L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x000000000E000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x000000000E000002L,0x0000000080000000L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000080000010L,0x0000000002000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x00000003FC000000L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x00000003FC000002L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000088000000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000C00000000L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000C00000002L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x000000F000000000L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x000000F000000002L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000010C00000000L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000060000000000L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000080000000000L,0x0300000000000000L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000080000000002L,0x0300000000000000L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000080000000000L,0x0100000000000000L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0003E00008000010L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000000000L,0x0000000042000000L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000080000010L,0x0008000002000000L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000004000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0047E10C880001F0L,0x1402FF8A67000000L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x00C7E10C080001F0L,0x1002FF8A63000000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0047F10C880001F0L,0x1C02FF8A63000000L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000080000010L,0x0400000002000000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0047F10C080001F2L,0x1802FF8A63000000L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
     public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
     public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0047E10C880001F0L,0x2005FF14C6000000L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0080000080000010L,0x000000E014000000L});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000080000012L,0x000000A014000000L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000080000010L,0x000000A014000000L});
-    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0047F10C080001F0L,0x3005FF14C7000000L});
-    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0047E10C080001F0L,0x2005FF14C7000000L});
-    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0047F10C080001F0L,0x3005FF14C6000000L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0047E10C880001F0L,0x1002FF8A63000000L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0080000080000010L,0x000000700A000000L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000080000012L,0x000000500A000000L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000080000010L,0x000000500A000000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0047F10C080001F0L,0x1802FF8A63800000L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0047E10C080001F0L,0x1002FF8A63800000L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0047F10C080001F0L,0x1802FF8A63000000L});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
     public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
-    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x00C7F10C080001F0L,0x3005FF14C6000000L});
-    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000100000000000L,0x1000000000000000L});
-    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000008000000L,0x0000000084000000L});
-    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0004000000000000L,0x2000000000000000L});
-    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x00000000000001C0L});
-    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x00040000000001E0L,0x20003000C0000000L});
-    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000000000000000L,0x0000000088000000L});
-    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x00C7F10C080001F0L,0x1802FF8A63000000L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000100000000000L,0x0800000000000000L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000008000000L,0x0000000042000000L});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0004000000000000L,0x1000000000000000L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x00000000000001C0L});
+    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x00040000000001E0L,0x1000180060000000L});
+    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x0000000044000000L});
+    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L});
+    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
     public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
     public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
-    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000000L,0x000A000000000000L});
-    public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
-    public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000000000180L});
-    public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000080000010L,0x000000000C000000L});
-    public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0002200000000000L});
-    public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
-    public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000002L,0x0020000000000000L});
-    public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000001000000000L});
-    public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x3800000000000002L});
-    public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x9000000000000002L,0x0000000000000003L});
-    public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x1000000000000002L,0x0000000000000003L});
-    public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x1800000000000002L,0x0080000000000012L});
-    public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000000000000002L,0x0000000000600000L});
+    public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000000000000000L,0x0005000000000000L});
+    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+    public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
+    public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000000180L});
+    public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000080000010L,0x0000000006000000L});
+    public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0002200000000000L});
+    public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
+    public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x3800000000000002L});
+    public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x9000000000000002L,0x0000000000000003L});
+    public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x1000000000000002L,0x0000000000000003L});
+    public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x1800000000000002L,0x0040000000000012L});
+    public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x0000000000000002L,0x0000000000300000L});
 
 }
diff --git a/org.eclipse.osbp.xtext.perspective.tests/org.eclipse.osbp.xtext.perspective.tests.launch b/org.eclipse.osbp.xtext.perspective.tests/org.eclipse.osbp.xtext.perspective.tests.launch
deleted file mode 100644
index 14921c1..0000000
--- a/org.eclipse.osbp.xtext.perspective.tests/org.eclipse.osbp.xtext.perspective.tests.launch
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.osbp.xtext.perspective.tests"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.osbp.xtext.perspective.tests"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osbp.xtext.perspective.tests"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>
diff --git a/org.eclipse.osbp.xtext.perspective.tests/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslInjectorProvider.java b/org.eclipse.osbp.xtext.perspective.tests/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslInjectorProvider.java
deleted file mode 100644
index d6e9ea1..0000000
--- a/org.eclipse.osbp.xtext.perspective.tests/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslInjectorProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.perspective;
-
-import org.eclipse.xtext.junit4.GlobalRegistries;
-import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
-import org.eclipse.xtext.junit4.IInjectorProvider;
-import org.eclipse.xtext.junit4.IRegistryConfigurator;
-
-import com.google.inject.Injector;
-
-public class PerspectiveDslInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
-	
-    protected GlobalStateMemento stateBeforeInjectorCreation;
-	protected GlobalStateMemento stateAfterInjectorCreation;
-	protected Injector injector;
-
-	static {
-		GlobalRegistries.initializeDefaults();
-	}
-
-	public Injector getInjector()
-	{
-		if (injector == null) {
-			stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
-			this.injector = internalCreateInjector();
-			stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
-		}
-		return injector;
-	}
-	
-	protected Injector internalCreateInjector() {
-	    return new PerspectiveDslStandaloneSetup().createInjectorAndDoEMFRegistration();
-	}
-
-	public void restoreRegistry() {
-		stateBeforeInjectorCreation.restoreGlobalState();
-	}
-
-	public void setupRegistry() {
-		getInjector();
-		stateAfterInjectorCreation.restoreGlobalState();
-	}
-}
diff --git a/org.eclipse.osbp.xtext.perspective.tests/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslUiInjectorProvider.java b/org.eclipse.osbp.xtext.perspective.tests/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslUiInjectorProvider.java
deleted file mode 100644
index 9392a75..0000000
--- a/org.eclipse.osbp.xtext.perspective.tests/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslUiInjectorProvider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.perspective;
-
-import org.eclipse.xtext.junit4.IInjectorProvider;
-
-import com.google.inject.Injector;
-
-public class PerspectiveDslUiInjectorProvider implements IInjectorProvider {
-	
-	public Injector getInjector() {
-		return org.eclipse.osbp.xtext.perspective.ui.internal.PerspectiveDslActivator.getInstance().getInjector("org.eclipse.osbp.xtext.perspective.PerspectiveDsl");
-	}
-	
-}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java
index 51fe739..51f6198 100644
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java
+++ b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/AbstractPerspectiveDslProposalProvider.java
@@ -221,9 +221,6 @@
 	public void complete_PerspectiveDialog(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_PerspectiveBPMN(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 	public void complete_PerspectiveKanban(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/PartialPerspectiveDslContentAssistParser.java b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/PartialPerspectiveDslContentAssistParser.java
deleted file mode 100644
index af985d4..0000000
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/PartialPerspectiveDslContentAssistParser.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.xtext.AbstractRule;
-import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.util.PolymorphicDispatcher;
-
-/**
- * @author Sebastian Zarnekow - Initial contribution and API
- */
-@SuppressWarnings("restriction")
-public class PartialPerspectiveDslContentAssistParser extends PerspectiveDslParser implements IPartialContentAssistParser {
-
-	private AbstractRule rule;
-
-	public void initializeFor(AbstractRule rule) {
-		this.rule = rule;
-	}
-	
-	@Override
-	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
-		if (rule == null || rule.eIsProxy())
-			return Collections.emptyList();
-		String methodName = "entryRule" + rule.getName();
-		PolymorphicDispatcher<Collection<FollowElement>> dispatcher = 
-			new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
-		dispatcher.invoke();
-		return parser.getFollowElements();
-	}
-
-}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/PerspectiveDslParser.java b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/PerspectiveDslParser.java
deleted file mode 100644
index 9d9544b..0000000
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/PerspectiveDslParser.java
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.HashMap;
-
-import org.antlr.runtime.RecognitionException;
-import org.eclipse.xtext.AbstractElement;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-
-import com.google.inject.Inject;
-
-import org.eclipse.osbp.xtext.perspective.services.PerspectiveDslGrammarAccess;
-
-public class PerspectiveDslParser extends AbstractContentAssistParser {
-	
-	@Inject
-	private PerspectiveDslGrammarAccess grammarAccess;
-	
-	private Map<AbstractElement, String> nameMappings;
-	
-	@Override
-	protected org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal.InternalPerspectiveDslParser createParser() {
-		org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal.InternalPerspectiveDslParser result = new org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal.InternalPerspectiveDslParser(null);
-		result.setGrammarAccess(grammarAccess);
-		return result;
-	}
-	
-	@Override
-	protected String getRuleName(AbstractElement element) {
-		if (nameMappings == null) {
-			nameMappings = new HashMap<AbstractElement, String>() {
-				private static final long serialVersionUID = 1L;
-				{
-					put(grammarAccess.getPerspectiveElementAccess().getAlternatives(), "rule__PerspectiveElement__Alternatives");
-					put(grammarAccess.getPerspectiveViewAccess().getAlternatives(), "rule__PerspectiveView__Alternatives");
-					put(grammarAccess.getXAnnotationAccess().getAlternatives_3_1(), "rule__XAnnotation__Alternatives_3_1");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives(), "rule__XAnnotationElementValueOrCommaList__Alternatives");
-					put(grammarAccess.getXAnnotationElementValueAccess().getAlternatives(), "rule__XAnnotationElementValue__Alternatives");
-					put(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives(), "rule__XAnnotationOrExpression__Alternatives");
-					put(grammarAccess.getXAssignmentAccess().getAlternatives(), "rule__XAssignment__Alternatives");
-					put(grammarAccess.getOpMultiAssignAccess().getAlternatives(), "rule__OpMultiAssign__Alternatives");
-					put(grammarAccess.getOpEqualityAccess().getAlternatives(), "rule__OpEquality__Alternatives");
-					put(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1(), "rule__XRelationalExpression__Alternatives_1");
-					put(grammarAccess.getOpCompareAccess().getAlternatives(), "rule__OpCompare__Alternatives");
-					put(grammarAccess.getOpOtherAccess().getAlternatives(), "rule__OpOther__Alternatives");
-					put(grammarAccess.getOpOtherAccess().getAlternatives_5_1(), "rule__OpOther__Alternatives_5_1");
-					put(grammarAccess.getOpOtherAccess().getAlternatives_6_1(), "rule__OpOther__Alternatives_6_1");
-					put(grammarAccess.getOpAddAccess().getAlternatives(), "rule__OpAdd__Alternatives");
-					put(grammarAccess.getOpMultiAccess().getAlternatives(), "rule__OpMulti__Alternatives");
-					put(grammarAccess.getXUnaryOperationAccess().getAlternatives(), "rule__XUnaryOperation__Alternatives");
-					put(grammarAccess.getOpUnaryAccess().getAlternatives(), "rule__OpUnary__Alternatives");
-					put(grammarAccess.getOpPostfixAccess().getAlternatives(), "rule__OpPostfix__Alternatives");
-					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1(), "rule__XMemberFeatureCall__Alternatives_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1(), "rule__XMemberFeatureCall__Alternatives_1_1_3_1");
-					put(grammarAccess.getXPrimaryExpressionAccess().getAlternatives(), "rule__XPrimaryExpression__Alternatives");
-					put(grammarAccess.getXLiteralAccess().getAlternatives(), "rule__XLiteral__Alternatives");
-					put(grammarAccess.getXCollectionLiteralAccess().getAlternatives(), "rule__XCollectionLiteral__Alternatives");
-					put(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2(), "rule__XSwitchExpression__Alternatives_2");
-					put(grammarAccess.getXCasePartAccess().getAlternatives_3(), "rule__XCasePart__Alternatives_3");
-					put(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives(), "rule__XExpressionOrVarDeclaration__Alternatives");
-					put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1(), "rule__XVariableDeclaration__Alternatives_1");
-					put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2(), "rule__XVariableDeclaration__Alternatives_2");
-					put(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1(), "rule__XFeatureCall__Alternatives_3_1");
-					put(grammarAccess.getFeatureCallIDAccess().getAlternatives(), "rule__FeatureCallID__Alternatives");
-					put(grammarAccess.getIdOrSuperAccess().getAlternatives(), "rule__IdOrSuper__Alternatives");
-					put(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1(), "rule__XConstructorCall__Alternatives_4_1");
-					put(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1(), "rule__XBooleanLiteral__Alternatives_1");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3(), "rule__XTryCatchFinallyExpression__Alternatives_3");
-					put(grammarAccess.getNumberAccess().getAlternatives(), "rule__Number__Alternatives");
-					put(grammarAccess.getNumberAccess().getAlternatives_1_0(), "rule__Number__Alternatives_1_0");
-					put(grammarAccess.getNumberAccess().getAlternatives_1_1_1(), "rule__Number__Alternatives_1_1_1");
-					put(grammarAccess.getJvmTypeReferenceAccess().getAlternatives(), "rule__JvmTypeReference__Alternatives");
-					put(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives(), "rule__JvmArgumentTypeReference__Alternatives");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2(), "rule__JvmWildcardTypeReference__Alternatives_2");
-					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_1(), "rule__XImportDeclaration__Alternatives_1");
-					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3(), "rule__XImportDeclaration__Alternatives_1_0_3");
-					put(grammarAccess.getSashOrientationAccess().getAlternatives(), "rule__SashOrientation__Alternatives");
-					put(grammarAccess.getPerspectivePackageAccess().getGroup(), "rule__PerspectivePackage__Group__0");
-					put(grammarAccess.getPerspectivePackageAccess().getGroup_3(), "rule__PerspectivePackage__Group_3__0");
-					put(grammarAccess.getPerspectiveImportAccess().getGroup(), "rule__PerspectiveImport__Group__0");
-					put(grammarAccess.getPerspectiveAccess().getGroup(), "rule__Perspective__Group__0");
-					put(grammarAccess.getPerspectiveAccess().getGroup_3(), "rule__Perspective__Group_3__0");
-					put(grammarAccess.getPerspectiveAccess().getGroup_4(), "rule__Perspective__Group_4__0");
-					put(grammarAccess.getPerspectiveAccess().getGroup_5_0(), "rule__Perspective__Group_5_0__0");
-					put(grammarAccess.getPerspectiveAccess().getGroup_5_1(), "rule__Perspective__Group_5_1__0");
-					put(grammarAccess.getPerspectiveAccess().getGroup_5_2(), "rule__Perspective__Group_5_2__0");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getGroup(), "rule__PerspectiveSashContainer__Group__0");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_0(), "rule__PerspectiveSashContainer__Group_3_0__0");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_1(), "rule__PerspectiveSashContainer__Group_3_1__0");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_2(), "rule__PerspectiveSashContainer__Group_3_2__0");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getGroup_3_3(), "rule__PerspectiveSashContainer__Group_3_3__0");
-					put(grammarAccess.getPerspectivePartStackAccess().getGroup(), "rule__PerspectivePartStack__Group__0");
-					put(grammarAccess.getPerspectivePartStackAccess().getGroup_3_0(), "rule__PerspectivePartStack__Group_3_0__0");
-					put(grammarAccess.getPerspectivePartStackAccess().getGroup_3_1(), "rule__PerspectivePartStack__Group_3_1__0");
-					put(grammarAccess.getPerspectivePartStackAccess().getGroup_3_2(), "rule__PerspectivePartStack__Group_3_2__0");
-					put(grammarAccess.getPerspectivePartAccess().getGroup(), "rule__PerspectivePart__Group__0");
-					put(grammarAccess.getPerspectivePartAccess().getGroup_3_0(), "rule__PerspectivePart__Group_3_0__0");
-					put(grammarAccess.getPerspectivePartAccess().getGroup_3_1(), "rule__PerspectivePart__Group_3_1__0");
-					put(grammarAccess.getPerspectivePartAccess().getGroup_3_2(), "rule__PerspectivePart__Group_3_2__0");
-					put(grammarAccess.getPerspectivePartAccess().getGroup_3_3(), "rule__PerspectivePart__Group_3_3__0");
-					put(grammarAccess.getPerspectivePartAccess().getGroup_3_4(), "rule__PerspectivePart__Group_3_4__0");
-					put(grammarAccess.getPerspectiveSelectionAccess().getGroup(), "rule__PerspectiveSelection__Group__0");
-					put(grammarAccess.getPerspectiveTableAccess().getGroup(), "rule__PerspectiveTable__Group__0");
-					put(grammarAccess.getPerspectiveGridAccess().getGroup(), "rule__PerspectiveGrid__Group__0");
-					put(grammarAccess.getPerspectiveChartAccess().getGroup(), "rule__PerspectiveChart__Group__0");
-					put(grammarAccess.getPerspectiveReportAccess().getGroup(), "rule__PerspectiveReport__Group__0");
-					put(grammarAccess.getPerspectiveOrganizationAccess().getGroup(), "rule__PerspectiveOrganization__Group__0");
-					put(grammarAccess.getPerspectiveTopologyAccess().getGroup(), "rule__PerspectiveTopology__Group__0");
-					put(grammarAccess.getPerspectiveDialogAccess().getGroup(), "rule__PerspectiveDialog__Group__0");
-					put(grammarAccess.getPerspectiveBPMNAccess().getGroup(), "rule__PerspectiveBPMN__Group__0");
-					put(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup(), "rule__PerspectiveQualifiedNameWithWildCard__Group__0");
-					put(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup_1(), "rule__PerspectiveQualifiedNameWithWildCard__Group_1__0");
-					put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
-					put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
-					put(grammarAccess.getXAnnotationAccess().getGroup(), "rule__XAnnotation__Group__0");
-					put(grammarAccess.getXAnnotationAccess().getGroup_3(), "rule__XAnnotation__Group_3__0");
-					put(grammarAccess.getXAnnotationAccess().getGroup_3_1_0(), "rule__XAnnotation__Group_3_1_0__0");
-					put(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1(), "rule__XAnnotation__Group_3_1_0_1__0");
-					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup(), "rule__XAnnotationElementValuePair__Group__0");
-					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0(), "rule__XAnnotationElementValuePair__Group_0__0");
-					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0(), "rule__XAnnotationElementValuePair__Group_0_0__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0(), "rule__XAnnotationElementValueOrCommaList__Group_0__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0(), "rule__XAnnotationElementValueOrCommaList__Group_0_0__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0(), "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1(), "rule__XAnnotationElementValueOrCommaList__Group_0_1__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1(), "rule__XAnnotationElementValueOrCommaList__Group_1__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_1_1__0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0");
-					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0(), "rule__XAnnotationElementValue__Group_0__0");
-					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0(), "rule__XAnnotationElementValue__Group_0_0__0");
-					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0(), "rule__XAnnotationElementValue__Group_0_0_0__0");
-					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1(), "rule__XAnnotationElementValue__Group_0_1__0");
-					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1(), "rule__XAnnotationElementValue__Group_0_1_1__0");
-					put(grammarAccess.getXAssignmentAccess().getGroup_0(), "rule__XAssignment__Group_0__0");
-					put(grammarAccess.getXAssignmentAccess().getGroup_1(), "rule__XAssignment__Group_1__0");
-					put(grammarAccess.getXAssignmentAccess().getGroup_1_1(), "rule__XAssignment__Group_1_1__0");
-					put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0(), "rule__XAssignment__Group_1_1_0__0");
-					put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0(), "rule__XAssignment__Group_1_1_0_0__0");
-					put(grammarAccess.getOpMultiAssignAccess().getGroup_5(), "rule__OpMultiAssign__Group_5__0");
-					put(grammarAccess.getOpMultiAssignAccess().getGroup_6(), "rule__OpMultiAssign__Group_6__0");
-					put(grammarAccess.getXOrExpressionAccess().getGroup(), "rule__XOrExpression__Group__0");
-					put(grammarAccess.getXOrExpressionAccess().getGroup_1(), "rule__XOrExpression__Group_1__0");
-					put(grammarAccess.getXOrExpressionAccess().getGroup_1_0(), "rule__XOrExpression__Group_1_0__0");
-					put(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0(), "rule__XOrExpression__Group_1_0_0__0");
-					put(grammarAccess.getXAndExpressionAccess().getGroup(), "rule__XAndExpression__Group__0");
-					put(grammarAccess.getXAndExpressionAccess().getGroup_1(), "rule__XAndExpression__Group_1__0");
-					put(grammarAccess.getXAndExpressionAccess().getGroup_1_0(), "rule__XAndExpression__Group_1_0__0");
-					put(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0(), "rule__XAndExpression__Group_1_0_0__0");
-					put(grammarAccess.getXEqualityExpressionAccess().getGroup(), "rule__XEqualityExpression__Group__0");
-					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1(), "rule__XEqualityExpression__Group_1__0");
-					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0(), "rule__XEqualityExpression__Group_1_0__0");
-					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0(), "rule__XEqualityExpression__Group_1_0_0__0");
-					put(grammarAccess.getXRelationalExpressionAccess().getGroup(), "rule__XRelationalExpression__Group__0");
-					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0(), "rule__XRelationalExpression__Group_1_0__0");
-					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0(), "rule__XRelationalExpression__Group_1_0_0__0");
-					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0(), "rule__XRelationalExpression__Group_1_0_0_0__0");
-					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1(), "rule__XRelationalExpression__Group_1_1__0");
-					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0(), "rule__XRelationalExpression__Group_1_1_0__0");
-					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0(), "rule__XRelationalExpression__Group_1_1_0_0__0");
-					put(grammarAccess.getOpCompareAccess().getGroup_1(), "rule__OpCompare__Group_1__0");
-					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup(), "rule__XOtherOperatorExpression__Group__0");
-					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1(), "rule__XOtherOperatorExpression__Group_1__0");
-					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0(), "rule__XOtherOperatorExpression__Group_1_0__0");
-					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0(), "rule__XOtherOperatorExpression__Group_1_0_0__0");
-					put(grammarAccess.getOpOtherAccess().getGroup_2(), "rule__OpOther__Group_2__0");
-					put(grammarAccess.getOpOtherAccess().getGroup_5(), "rule__OpOther__Group_5__0");
-					put(grammarAccess.getOpOtherAccess().getGroup_5_1_0(), "rule__OpOther__Group_5_1_0__0");
-					put(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0(), "rule__OpOther__Group_5_1_0_0__0");
-					put(grammarAccess.getOpOtherAccess().getGroup_6(), "rule__OpOther__Group_6__0");
-					put(grammarAccess.getOpOtherAccess().getGroup_6_1_0(), "rule__OpOther__Group_6_1_0__0");
-					put(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0(), "rule__OpOther__Group_6_1_0_0__0");
-					put(grammarAccess.getXAdditiveExpressionAccess().getGroup(), "rule__XAdditiveExpression__Group__0");
-					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1(), "rule__XAdditiveExpression__Group_1__0");
-					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0(), "rule__XAdditiveExpression__Group_1_0__0");
-					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0(), "rule__XAdditiveExpression__Group_1_0_0__0");
-					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup(), "rule__XMultiplicativeExpression__Group__0");
-					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1(), "rule__XMultiplicativeExpression__Group_1__0");
-					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0(), "rule__XMultiplicativeExpression__Group_1_0__0");
-					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0(), "rule__XMultiplicativeExpression__Group_1_0_0__0");
-					put(grammarAccess.getXUnaryOperationAccess().getGroup_0(), "rule__XUnaryOperation__Group_0__0");
-					put(grammarAccess.getXCastedExpressionAccess().getGroup(), "rule__XCastedExpression__Group__0");
-					put(grammarAccess.getXCastedExpressionAccess().getGroup_1(), "rule__XCastedExpression__Group_1__0");
-					put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0(), "rule__XCastedExpression__Group_1_0__0");
-					put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0(), "rule__XCastedExpression__Group_1_0_0__0");
-					put(grammarAccess.getXPostfixOperationAccess().getGroup(), "rule__XPostfixOperation__Group__0");
-					put(grammarAccess.getXPostfixOperationAccess().getGroup_1(), "rule__XPostfixOperation__Group_1__0");
-					put(grammarAccess.getXPostfixOperationAccess().getGroup_1_0(), "rule__XPostfixOperation__Group_1_0__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup(), "rule__XMemberFeatureCall__Group__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0(), "rule__XMemberFeatureCall__Group_1_0__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0(), "rule__XMemberFeatureCall__Group_1_0_0__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0(), "rule__XMemberFeatureCall__Group_1_0_0_0__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1(), "rule__XMemberFeatureCall__Group_1_1__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0(), "rule__XMemberFeatureCall__Group_1_1_0__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0(), "rule__XMemberFeatureCall__Group_1_1_0_0__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_1__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2(), "rule__XMemberFeatureCall__Group_1_1_1_2__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3(), "rule__XMemberFeatureCall__Group_1_1_3__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1__0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0");
-					put(grammarAccess.getXSetLiteralAccess().getGroup(), "rule__XSetLiteral__Group__0");
-					put(grammarAccess.getXSetLiteralAccess().getGroup_3(), "rule__XSetLiteral__Group_3__0");
-					put(grammarAccess.getXSetLiteralAccess().getGroup_3_1(), "rule__XSetLiteral__Group_3_1__0");
-					put(grammarAccess.getXListLiteralAccess().getGroup(), "rule__XListLiteral__Group__0");
-					put(grammarAccess.getXListLiteralAccess().getGroup_3(), "rule__XListLiteral__Group_3__0");
-					put(grammarAccess.getXListLiteralAccess().getGroup_3_1(), "rule__XListLiteral__Group_3_1__0");
-					put(grammarAccess.getXClosureAccess().getGroup(), "rule__XClosure__Group__0");
-					put(grammarAccess.getXClosureAccess().getGroup_0(), "rule__XClosure__Group_0__0");
-					put(grammarAccess.getXClosureAccess().getGroup_0_0(), "rule__XClosure__Group_0_0__0");
-					put(grammarAccess.getXClosureAccess().getGroup_1(), "rule__XClosure__Group_1__0");
-					put(grammarAccess.getXClosureAccess().getGroup_1_0(), "rule__XClosure__Group_1_0__0");
-					put(grammarAccess.getXClosureAccess().getGroup_1_0_0(), "rule__XClosure__Group_1_0_0__0");
-					put(grammarAccess.getXClosureAccess().getGroup_1_0_0_1(), "rule__XClosure__Group_1_0_0_1__0");
-					put(grammarAccess.getXExpressionInClosureAccess().getGroup(), "rule__XExpressionInClosure__Group__0");
-					put(grammarAccess.getXExpressionInClosureAccess().getGroup_1(), "rule__XExpressionInClosure__Group_1__0");
-					put(grammarAccess.getXShortClosureAccess().getGroup(), "rule__XShortClosure__Group__0");
-					put(grammarAccess.getXShortClosureAccess().getGroup_0(), "rule__XShortClosure__Group_0__0");
-					put(grammarAccess.getXShortClosureAccess().getGroup_0_0(), "rule__XShortClosure__Group_0_0__0");
-					put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1(), "rule__XShortClosure__Group_0_0_1__0");
-					put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1(), "rule__XShortClosure__Group_0_0_1_1__0");
-					put(grammarAccess.getXParenthesizedExpressionAccess().getGroup(), "rule__XParenthesizedExpression__Group__0");
-					put(grammarAccess.getXIfExpressionAccess().getGroup(), "rule__XIfExpression__Group__0");
-					put(grammarAccess.getXIfExpressionAccess().getGroup_6(), "rule__XIfExpression__Group_6__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup(), "rule__XSwitchExpression__Group__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0(), "rule__XSwitchExpression__Group_2_0__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0(), "rule__XSwitchExpression__Group_2_0_0__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0(), "rule__XSwitchExpression__Group_2_0_0_0__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1(), "rule__XSwitchExpression__Group_2_1__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0(), "rule__XSwitchExpression__Group_2_1_0__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0(), "rule__XSwitchExpression__Group_2_1_0_0__0");
-					put(grammarAccess.getXSwitchExpressionAccess().getGroup_5(), "rule__XSwitchExpression__Group_5__0");
-					put(grammarAccess.getXCasePartAccess().getGroup(), "rule__XCasePart__Group__0");
-					put(grammarAccess.getXCasePartAccess().getGroup_2(), "rule__XCasePart__Group_2__0");
-					put(grammarAccess.getXCasePartAccess().getGroup_3_0(), "rule__XCasePart__Group_3_0__0");
-					put(grammarAccess.getXForLoopExpressionAccess().getGroup(), "rule__XForLoopExpression__Group__0");
-					put(grammarAccess.getXForLoopExpressionAccess().getGroup_0(), "rule__XForLoopExpression__Group_0__0");
-					put(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0(), "rule__XForLoopExpression__Group_0_0__0");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup(), "rule__XBasicForLoopExpression__Group__0");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3(), "rule__XBasicForLoopExpression__Group_3__0");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1(), "rule__XBasicForLoopExpression__Group_3_1__0");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7(), "rule__XBasicForLoopExpression__Group_7__0");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1(), "rule__XBasicForLoopExpression__Group_7_1__0");
-					put(grammarAccess.getXWhileExpressionAccess().getGroup(), "rule__XWhileExpression__Group__0");
-					put(grammarAccess.getXDoWhileExpressionAccess().getGroup(), "rule__XDoWhileExpression__Group__0");
-					put(grammarAccess.getXBlockExpressionAccess().getGroup(), "rule__XBlockExpression__Group__0");
-					put(grammarAccess.getXBlockExpressionAccess().getGroup_2(), "rule__XBlockExpression__Group_2__0");
-					put(grammarAccess.getXVariableDeclarationAccess().getGroup(), "rule__XVariableDeclaration__Group__0");
-					put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0(), "rule__XVariableDeclaration__Group_2_0__0");
-					put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0(), "rule__XVariableDeclaration__Group_2_0_0__0");
-					put(grammarAccess.getXVariableDeclarationAccess().getGroup_3(), "rule__XVariableDeclaration__Group_3__0");
-					put(grammarAccess.getJvmFormalParameterAccess().getGroup(), "rule__JvmFormalParameter__Group__0");
-					put(grammarAccess.getFullJvmFormalParameterAccess().getGroup(), "rule__FullJvmFormalParameter__Group__0");
-					put(grammarAccess.getXFeatureCallAccess().getGroup(), "rule__XFeatureCall__Group__0");
-					put(grammarAccess.getXFeatureCallAccess().getGroup_1(), "rule__XFeatureCall__Group_1__0");
-					put(grammarAccess.getXFeatureCallAccess().getGroup_1_2(), "rule__XFeatureCall__Group_1_2__0");
-					put(grammarAccess.getXFeatureCallAccess().getGroup_3(), "rule__XFeatureCall__Group_3__0");
-					put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1(), "rule__XFeatureCall__Group_3_1_1__0");
-					put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1(), "rule__XFeatureCall__Group_3_1_1_1__0");
-					put(grammarAccess.getXConstructorCallAccess().getGroup(), "rule__XConstructorCall__Group__0");
-					put(grammarAccess.getXConstructorCallAccess().getGroup_3(), "rule__XConstructorCall__Group_3__0");
-					put(grammarAccess.getXConstructorCallAccess().getGroup_3_2(), "rule__XConstructorCall__Group_3_2__0");
-					put(grammarAccess.getXConstructorCallAccess().getGroup_4(), "rule__XConstructorCall__Group_4__0");
-					put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1(), "rule__XConstructorCall__Group_4_1_1__0");
-					put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1(), "rule__XConstructorCall__Group_4_1_1_1__0");
-					put(grammarAccess.getXBooleanLiteralAccess().getGroup(), "rule__XBooleanLiteral__Group__0");
-					put(grammarAccess.getXNullLiteralAccess().getGroup(), "rule__XNullLiteral__Group__0");
-					put(grammarAccess.getXNumberLiteralAccess().getGroup(), "rule__XNumberLiteral__Group__0");
-					put(grammarAccess.getXStringLiteralAccess().getGroup(), "rule__XStringLiteral__Group__0");
-					put(grammarAccess.getXTypeLiteralAccess().getGroup(), "rule__XTypeLiteral__Group__0");
-					put(grammarAccess.getXThrowExpressionAccess().getGroup(), "rule__XThrowExpression__Group__0");
-					put(grammarAccess.getXReturnExpressionAccess().getGroup(), "rule__XReturnExpression__Group__0");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup(), "rule__XTryCatchFinallyExpression__Group__0");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0(), "rule__XTryCatchFinallyExpression__Group_3_0__0");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1(), "rule__XTryCatchFinallyExpression__Group_3_0_1__0");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1(), "rule__XTryCatchFinallyExpression__Group_3_1__0");
-					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup(), "rule__XSynchronizedExpression__Group__0");
-					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0(), "rule__XSynchronizedExpression__Group_0__0");
-					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0(), "rule__XSynchronizedExpression__Group_0_0__0");
-					put(grammarAccess.getXCatchClauseAccess().getGroup(), "rule__XCatchClause__Group__0");
-					put(grammarAccess.getNumberAccess().getGroup_1(), "rule__Number__Group_1__0");
-					put(grammarAccess.getNumberAccess().getGroup_1_1(), "rule__Number__Group_1_1__0");
-					put(grammarAccess.getStaticQualifierAccess().getGroup(), "rule__StaticQualifier__Group__0");
-					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0(), "rule__JvmTypeReference__Group_0__0");
-					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1(), "rule__JvmTypeReference__Group_0_1__0");
-					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0(), "rule__JvmTypeReference__Group_0_1_0__0");
-					put(grammarAccess.getArrayBracketsAccess().getGroup(), "rule__ArrayBrackets__Group__0");
-					put(grammarAccess.getXFunctionTypeRefAccess().getGroup(), "rule__XFunctionTypeRef__Group__0");
-					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0(), "rule__XFunctionTypeRef__Group_0__0");
-					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1(), "rule__XFunctionTypeRef__Group_0_1__0");
-					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1(), "rule__XFunctionTypeRef__Group_0_1_1__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup(), "rule__JvmParameterizedTypeReference__Group__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1(), "rule__JvmParameterizedTypeReference__Group_1__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2(), "rule__JvmParameterizedTypeReference__Group_1_2__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4(), "rule__JvmParameterizedTypeReference__Group_1_4__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0(), "rule__JvmParameterizedTypeReference__Group_1_4_0__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0(), "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2(), "rule__JvmParameterizedTypeReference__Group_1_4_2__0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2(), "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup(), "rule__JvmWildcardTypeReference__Group__0");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0(), "rule__JvmWildcardTypeReference__Group_2_0__0");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1(), "rule__JvmWildcardTypeReference__Group_2_1__0");
-					put(grammarAccess.getJvmUpperBoundAccess().getGroup(), "rule__JvmUpperBound__Group__0");
-					put(grammarAccess.getJvmUpperBoundAndedAccess().getGroup(), "rule__JvmUpperBoundAnded__Group__0");
-					put(grammarAccess.getJvmLowerBoundAccess().getGroup(), "rule__JvmLowerBound__Group__0");
-					put(grammarAccess.getJvmLowerBoundAndedAccess().getGroup(), "rule__JvmLowerBoundAnded__Group__0");
-					put(grammarAccess.getJvmTypeParameterAccess().getGroup(), "rule__JvmTypeParameter__Group__0");
-					put(grammarAccess.getJvmTypeParameterAccess().getGroup_1(), "rule__JvmTypeParameter__Group_1__0");
-					put(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup(), "rule__QualifiedNameWithWildcard__Group__0");
-					put(grammarAccess.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
-					put(grammarAccess.getXImportDeclarationAccess().getGroup_1_0(), "rule__XImportDeclaration__Group_1_0__0");
-					put(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup(), "rule__QualifiedNameInStaticImport__Group__0");
-					put(grammarAccess.getPerspectiveModelAccess().getPackagesAssignment(), "rule__PerspectiveModel__PackagesAssignment");
-					put(grammarAccess.getPerspectivePackageAccess().getNameAssignment_2(), "rule__PerspectivePackage__NameAssignment_2");
-					put(grammarAccess.getPerspectivePackageAccess().getImportsAssignment_3_1(), "rule__PerspectivePackage__ImportsAssignment_3_1");
-					put(grammarAccess.getPerspectivePackageAccess().getPerspectivesAssignment_3_2(), "rule__PerspectivePackage__PerspectivesAssignment_3_2");
-					put(grammarAccess.getPerspectiveImportAccess().getImportedNamespaceAssignment_1(), "rule__PerspectiveImport__ImportedNamespaceAssignment_1");
-					put(grammarAccess.getPerspectiveAccess().getNameAssignment_2(), "rule__Perspective__NameAssignment_2");
-					put(grammarAccess.getPerspectiveAccess().getDescriptionAssignment_3_0(), "rule__Perspective__DescriptionAssignment_3_0");
-					put(grammarAccess.getPerspectiveAccess().getDescriptionValueAssignment_3_1(), "rule__Perspective__DescriptionValueAssignment_3_1");
-					put(grammarAccess.getPerspectiveAccess().getProcessAssignment_4_1(), "rule__Perspective__ProcessAssignment_4_1");
-					put(grammarAccess.getPerspectiveAccess().getUserTaskAssignment_4_3(), "rule__Perspective__UserTaskAssignment_4_3");
-					put(grammarAccess.getPerspectiveAccess().getIconURIAssignment_5_0_1(), "rule__Perspective__IconURIAssignment_5_0_1");
-					put(grammarAccess.getPerspectiveAccess().getAccessibilityPhraseAssignment_5_1_1(), "rule__Perspective__AccessibilityPhraseAssignment_5_1_1");
-					put(grammarAccess.getPerspectiveAccess().getToolbarAssignment_5_2_1(), "rule__Perspective__ToolbarAssignment_5_2_1");
-					put(grammarAccess.getPerspectiveAccess().getElementsAssignment_7(), "rule__Perspective__ElementsAssignment_7");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getElementIdAssignment_2(), "rule__PerspectiveSashContainer__ElementIdAssignment_2");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getOrientationAssignment_3_0_1(), "rule__PerspectiveSashContainer__OrientationAssignment_3_0_1");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementAssignment_3_1_1(), "rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getContainerDataAssignment_3_2_1(), "rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityPhraseAssignment_3_3_1(), "rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getElementsAssignment_5(), "rule__PerspectiveSashContainer__ElementsAssignment_5");
-					put(grammarAccess.getPerspectivePartStackAccess().getElementIdAssignment_2(), "rule__PerspectivePartStack__ElementIdAssignment_2");
-					put(grammarAccess.getPerspectivePartStackAccess().getSelectedElementAssignment_3_0_1(), "rule__PerspectivePartStack__SelectedElementAssignment_3_0_1");
-					put(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1(), "rule__PerspectivePartStack__ContainerDataAssignment_3_1_1");
-					put(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1(), "rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1");
-					put(grammarAccess.getPerspectivePartStackAccess().getElementsAssignment_5(), "rule__PerspectivePartStack__ElementsAssignment_5");
-					put(grammarAccess.getPerspectivePartAccess().getElementIdAssignment_2(), "rule__PerspectivePart__ElementIdAssignment_2");
-					put(grammarAccess.getPerspectivePartAccess().getDescriptionAssignment_3_0_0(), "rule__PerspectivePart__DescriptionAssignment_3_0_0");
-					put(grammarAccess.getPerspectivePartAccess().getDescriptionValueAssignment_3_0_1(), "rule__PerspectivePart__DescriptionValueAssignment_3_0_1");
-					put(grammarAccess.getPerspectivePartAccess().getContainerDataAssignment_3_1_1(), "rule__PerspectivePart__ContainerDataAssignment_3_1_1");
-					put(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseAssignment_3_2_1(), "rule__PerspectivePart__AccessibilityPhraseAssignment_3_2_1");
-					put(grammarAccess.getPerspectivePartAccess().getIconURIAssignment_3_3_1(), "rule__PerspectivePart__IconURIAssignment_3_3_1");
-					put(grammarAccess.getPerspectivePartAccess().getViewAssignment_3_4_1(), "rule__PerspectivePart__ViewAssignment_3_4_1");
-					put(grammarAccess.getPerspectivePartAccess().getIsClosableAssignment_3_5(), "rule__PerspectivePart__IsClosableAssignment_3_5");
-					put(grammarAccess.getPerspectiveSelectionAccess().getRefAssignment_2(), "rule__PerspectiveSelection__RefAssignment_2");
-					put(grammarAccess.getPerspectiveTableAccess().getRefAssignment_2(), "rule__PerspectiveTable__RefAssignment_2");
-					put(grammarAccess.getPerspectiveGridAccess().getRefAssignment_2(), "rule__PerspectiveGrid__RefAssignment_2");
-					put(grammarAccess.getPerspectiveChartAccess().getRefAssignment_2(), "rule__PerspectiveChart__RefAssignment_2");
-					put(grammarAccess.getPerspectiveReportAccess().getRefAssignment_2(), "rule__PerspectiveReport__RefAssignment_2");
-					put(grammarAccess.getPerspectiveOrganizationAccess().getRefAssignment_2(), "rule__PerspectiveOrganization__RefAssignment_2");
-					put(grammarAccess.getPerspectiveTopologyAccess().getRefAssignment_2(), "rule__PerspectiveTopology__RefAssignment_2");
-					put(grammarAccess.getPerspectiveDialogAccess().getRefAssignment_2(), "rule__PerspectiveDialog__RefAssignment_2");
-					put(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2(), "rule__XAnnotation__AnnotationTypeAssignment_2");
-					put(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0(), "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0");
-					put(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1(), "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1");
-					put(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1(), "rule__XAnnotation__ValueAssignment_3_1_1");
-					put(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0(), "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0");
-					put(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1(), "rule__XAnnotationElementValuePair__ValueAssignment_1");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1");
-					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1");
-					put(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0(), "rule__XAnnotationElementValue__ElementsAssignment_0_1_0");
-					put(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1(), "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1");
-					put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1(), "rule__XAssignment__FeatureAssignment_0_1");
-					put(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3(), "rule__XAssignment__ValueAssignment_0_3");
-					put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XAssignment__FeatureAssignment_1_1_0_0_1");
-					put(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1(), "rule__XAssignment__RightOperandAssignment_1_1_1");
-					put(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOrExpression__FeatureAssignment_1_0_0_1");
-					put(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOrExpression__RightOperandAssignment_1_1");
-					put(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAndExpression__FeatureAssignment_1_0_0_1");
-					put(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAndExpression__RightOperandAssignment_1_1");
-					put(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XEqualityExpression__FeatureAssignment_1_0_0_1");
-					put(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1(), "rule__XEqualityExpression__RightOperandAssignment_1_1");
-					put(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1(), "rule__XRelationalExpression__TypeAssignment_1_0_1");
-					put(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1");
-					put(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1(), "rule__XRelationalExpression__RightOperandAssignment_1_1_1");
-					put(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1");
-					put(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOtherOperatorExpression__RightOperandAssignment_1_1");
-					put(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1");
-					put(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAdditiveExpression__RightOperandAssignment_1_1");
-					put(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1");
-					put(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1(), "rule__XMultiplicativeExpression__RightOperandAssignment_1_1");
-					put(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1(), "rule__XUnaryOperation__FeatureAssignment_0_1");
-					put(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2(), "rule__XUnaryOperation__OperandAssignment_0_2");
-					put(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1(), "rule__XCastedExpression__TypeAssignment_1_1");
-					put(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1(), "rule__XPostfixOperation__FeatureAssignment_1_0_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2");
-					put(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1(), "rule__XMemberFeatureCall__ValueAssignment_1_0_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1(), "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2");
-					put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_1_2");
-					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0(), "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0");
-					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1");
-					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4");
-					put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0(), "rule__XSetLiteral__ElementsAssignment_3_0");
-					put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1(), "rule__XSetLiteral__ElementsAssignment_3_1_1");
-					put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0(), "rule__XListLiteral__ElementsAssignment_3_0");
-					put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1(), "rule__XListLiteral__ElementsAssignment_3_1_1");
-					put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0");
-					put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1");
-					put(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1(), "rule__XClosure__ExplicitSyntaxAssignment_1_0_1");
-					put(grammarAccess.getXClosureAccess().getExpressionAssignment_2(), "rule__XClosure__ExpressionAssignment_2");
-					put(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0(), "rule__XExpressionInClosure__ExpressionsAssignment_1_0");
-					put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0");
-					put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1");
-					put(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2(), "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2");
-					put(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1(), "rule__XShortClosure__ExpressionAssignment_1");
-					put(grammarAccess.getXIfExpressionAccess().getIfAssignment_3(), "rule__XIfExpression__IfAssignment_3");
-					put(grammarAccess.getXIfExpressionAccess().getThenAssignment_5(), "rule__XIfExpression__ThenAssignment_5");
-					put(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1(), "rule__XIfExpression__ElseAssignment_6_1");
-					put(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1(), "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1");
-					put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1(), "rule__XSwitchExpression__SwitchAssignment_2_0_1");
-					put(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0(), "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0");
-					put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1(), "rule__XSwitchExpression__SwitchAssignment_2_1_1");
-					put(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4(), "rule__XSwitchExpression__CasesAssignment_4");
-					put(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2(), "rule__XSwitchExpression__DefaultAssignment_5_2");
-					put(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1(), "rule__XCasePart__TypeGuardAssignment_1");
-					put(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1(), "rule__XCasePart__CaseAssignment_2_1");
-					put(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1(), "rule__XCasePart__ThenAssignment_3_0_1");
-					put(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1(), "rule__XCasePart__FallThroughAssignment_3_1");
-					put(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3(), "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3");
-					put(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1(), "rule__XForLoopExpression__ForExpressionAssignment_1");
-					put(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3(), "rule__XForLoopExpression__EachExpressionAssignment_3");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0(), "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1(), "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5(), "rule__XBasicForLoopExpression__ExpressionAssignment_5");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0(), "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1(), "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1");
-					put(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9(), "rule__XBasicForLoopExpression__EachExpressionAssignment_9");
-					put(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3(), "rule__XWhileExpression__PredicateAssignment_3");
-					put(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5(), "rule__XWhileExpression__BodyAssignment_5");
-					put(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2(), "rule__XDoWhileExpression__BodyAssignment_2");
-					put(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5(), "rule__XDoWhileExpression__PredicateAssignment_5");
-					put(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0(), "rule__XBlockExpression__ExpressionsAssignment_2_0");
-					put(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0(), "rule__XVariableDeclaration__WriteableAssignment_1_0");
-					put(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0(), "rule__XVariableDeclaration__TypeAssignment_2_0_0_0");
-					put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1(), "rule__XVariableDeclaration__NameAssignment_2_0_0_1");
-					put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1(), "rule__XVariableDeclaration__NameAssignment_2_1");
-					put(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1(), "rule__XVariableDeclaration__RightAssignment_3_1");
-					put(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__JvmFormalParameter__ParameterTypeAssignment_0");
-					put(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1(), "rule__JvmFormalParameter__NameAssignment_1");
-					put(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__FullJvmFormalParameter__ParameterTypeAssignment_0");
-					put(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1(), "rule__FullJvmFormalParameter__NameAssignment_1");
-					put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_1");
-					put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1");
-					put(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2(), "rule__XFeatureCall__FeatureAssignment_2");
-					put(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0(), "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0");
-					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0");
-					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0");
-					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1");
-					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_4");
-					put(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2(), "rule__XConstructorCall__ConstructorAssignment_2");
-					put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_1");
-					put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1");
-					put(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0(), "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0");
-					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_0");
-					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0");
-					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1");
-					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5(), "rule__XConstructorCall__ArgumentsAssignment_5");
-					put(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1(), "rule__XBooleanLiteral__IsTrueAssignment_1_1");
-					put(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1(), "rule__XNumberLiteral__ValueAssignment_1");
-					put(grammarAccess.getXStringLiteralAccess().getValueAssignment_1(), "rule__XStringLiteral__ValueAssignment_1");
-					put(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3(), "rule__XTypeLiteral__TypeAssignment_3");
-					put(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4(), "rule__XTypeLiteral__ArrayDimensionsAssignment_4");
-					put(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2(), "rule__XThrowExpression__ExpressionAssignment_2");
-					put(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2(), "rule__XReturnExpression__ExpressionAssignment_2");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2(), "rule__XTryCatchFinallyExpression__ExpressionAssignment_2");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0(), "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1");
-					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1");
-					put(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1(), "rule__XSynchronizedExpression__ParamAssignment_1");
-					put(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3(), "rule__XSynchronizedExpression__ExpressionAssignment_3");
-					put(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2(), "rule__XCatchClause__DeclaredParamAssignment_2");
-					put(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4(), "rule__XCatchClause__ExpressionAssignment_4");
-					put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0");
-					put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1");
-					put(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2(), "rule__XFunctionTypeRef__ReturnTypeAssignment_2");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0(), "rule__JvmParameterizedTypeReference__TypeAssignment_0");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1(), "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1");
-					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0");
-					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1");
-					put(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBound__TypeReferenceAssignment_1");
-					put(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1");
-					put(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmLowerBound__TypeReferenceAssignment_1");
-					put(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1(), "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1");
-					put(grammarAccess.getJvmTypeParameterAccess().getNameAssignment_0(), "rule__JvmTypeParameter__NameAssignment_0");
-					put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_0(), "rule__JvmTypeParameter__ConstraintsAssignment_1_0");
-					put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_1(), "rule__JvmTypeParameter__ConstraintsAssignment_1_1");
-					put(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment(), "rule__XImportSection__ImportDeclarationsAssignment");
-					put(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0(), "rule__XImportDeclaration__StaticAssignment_1_0_0");
-					put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1(), "rule__XImportDeclaration__ExtensionAssignment_1_0_1");
-					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2(), "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2");
-					put(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0(), "rule__XImportDeclaration__WildcardAssignment_1_0_3_0");
-					put(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1(), "rule__XImportDeclaration__MemberNameAssignment_1_0_3_1");
-					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1(), "rule__XImportDeclaration__ImportedTypeAssignment_1_1");
-					put(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2(), "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2");
-					put(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5(), "rule__Perspective__UnorderedGroup_5");
-					put(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3(), "rule__PerspectiveSashContainer__UnorderedGroup_3");
-					put(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), "rule__PerspectivePartStack__UnorderedGroup_3");
-					put(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3(), "rule__PerspectivePart__UnorderedGroup_3");
-				}
-			};
-		}
-		return nameMappings.get(element);
-	}
-	
-	@Override
-	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
-		try {
-			org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal.InternalPerspectiveDslParser typedParser = (org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal.InternalPerspectiveDslParser) parser;
-			typedParser.entryRulePerspectiveModel();
-			return typedParser.getFollowElements();
-		} catch(RecognitionException ex) {
-			throw new RuntimeException(ex);
-		}		
-	}
-	
-	@Override
-	protected String[] getInitialHiddenTokens() {
-		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
-	}
-	
-	public PerspectiveDslGrammarAccess getGrammarAccess() {
-		return this.grammarAccess;
-	}
-	
-	public void setGrammarAccess(PerspectiveDslGrammarAccess grammarAccess) {
-		this.grammarAccess = grammarAccess;
-	}
-}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g
deleted file mode 100644
index 34f43d1..0000000
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g
+++ /dev/null
@@ -1,10014 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-grammar InternalPerspectiveDsl;
-
-options {
-	superClass=AbstractInternalContentAssistParser;
-	backtrack=true;
-	
-}
-
-@lexer::header {
-package org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal;
-
-// Hack: Use our own Lexer superclass by means of import. 
-// Currently there is no other way to specify the superclass for the lexer.
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
-}
-
-@parser::header {
-package org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal; 
-
-import java.io.InputStream;
-import org.eclipse.xtext.*;
-import org.eclipse.xtext.parser.*;
-import org.eclipse.xtext.parser.impl.*;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.parser.antlr.XtextTokenStream;
-import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
-import org.eclipse.osbp.xtext.perspective.services.PerspectiveDslGrammarAccess;
-
-}
-
-@parser::members {
- 
- 	private PerspectiveDslGrammarAccess grammarAccess;
- 	
-    public void setGrammarAccess(PerspectiveDslGrammarAccess grammarAccess) {
-    	this.grammarAccess = grammarAccess;
-    }
-    
-    @Override
-    protected Grammar getGrammar() {
-    	return grammarAccess.getGrammar();
-    }
-    
-    @Override
-    protected String getValueForTokenName(String tokenName) {
-    	return tokenName;
-    }
-
-}
-
-
-
-
-// Entry rule entryRulePerspectiveModel
-entryRulePerspectiveModel 
-:
-{ before(grammarAccess.getPerspectiveModelRule()); }
-	 rulePerspectiveModel
-{ after(grammarAccess.getPerspectiveModelRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveModel
-rulePerspectiveModel
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveModelAccess().getPackagesAssignment()); }
-(rule__PerspectiveModel__PackagesAssignment)*
-{ after(grammarAccess.getPerspectiveModelAccess().getPackagesAssignment()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectivePackage
-entryRulePerspectivePackage 
-:
-{ before(grammarAccess.getPerspectivePackageRule()); }
-	 rulePerspectivePackage
-{ after(grammarAccess.getPerspectivePackageRule()); } 
-	 EOF 
-;
-
-// Rule PerspectivePackage
-rulePerspectivePackage
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getGroup()); }
-(rule__PerspectivePackage__Group__0)
-{ after(grammarAccess.getPerspectivePackageAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveImport
-entryRulePerspectiveImport 
-:
-{ before(grammarAccess.getPerspectiveImportRule()); }
-	 rulePerspectiveImport
-{ after(grammarAccess.getPerspectiveImportRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveImport
-rulePerspectiveImport
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveImportAccess().getGroup()); }
-(rule__PerspectiveImport__Group__0)
-{ after(grammarAccess.getPerspectiveImportAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspective
-entryRulePerspective 
-:
-{ before(grammarAccess.getPerspectiveRule()); }
-	 rulePerspective
-{ after(grammarAccess.getPerspectiveRule()); } 
-	 EOF 
-;
-
-// Rule Perspective
-rulePerspective
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveAccess().getGroup()); }
-(rule__Perspective__Group__0)
-{ after(grammarAccess.getPerspectiveAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveElement
-entryRulePerspectiveElement 
-:
-{ before(grammarAccess.getPerspectiveElementRule()); }
-	 rulePerspectiveElement
-{ after(grammarAccess.getPerspectiveElementRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveElement
-rulePerspectiveElement
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveElementAccess().getAlternatives()); }
-(rule__PerspectiveElement__Alternatives)
-{ after(grammarAccess.getPerspectiveElementAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveSashContainer
-entryRulePerspectiveSashContainer 
-:
-{ before(grammarAccess.getPerspectiveSashContainerRule()); }
-	 rulePerspectiveSashContainer
-{ after(grammarAccess.getPerspectiveSashContainerRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveSashContainer
-rulePerspectiveSashContainer
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getGroup()); }
-(rule__PerspectiveSashContainer__Group__0)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectivePartStack
-entryRulePerspectivePartStack 
-:
-{ before(grammarAccess.getPerspectivePartStackRule()); }
-	 rulePerspectivePartStack
-{ after(grammarAccess.getPerspectivePartStackRule()); } 
-	 EOF 
-;
-
-// Rule PerspectivePartStack
-rulePerspectivePartStack
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getGroup()); }
-(rule__PerspectivePartStack__Group__0)
-{ after(grammarAccess.getPerspectivePartStackAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectivePart
-entryRulePerspectivePart 
-:
-{ before(grammarAccess.getPerspectivePartRule()); }
-	 rulePerspectivePart
-{ after(grammarAccess.getPerspectivePartRule()); } 
-	 EOF 
-;
-
-// Rule PerspectivePart
-rulePerspectivePart
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getGroup()); }
-(rule__PerspectivePart__Group__0)
-{ after(grammarAccess.getPerspectivePartAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveView
-entryRulePerspectiveView 
-:
-{ before(grammarAccess.getPerspectiveViewRule()); }
-	 rulePerspectiveView
-{ after(grammarAccess.getPerspectiveViewRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveView
-rulePerspectiveView
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveViewAccess().getAlternatives()); }
-(rule__PerspectiveView__Alternatives)
-{ after(grammarAccess.getPerspectiveViewAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveSelection
-entryRulePerspectiveSelection 
-:
-{ before(grammarAccess.getPerspectiveSelectionRule()); }
-	 rulePerspectiveSelection
-{ after(grammarAccess.getPerspectiveSelectionRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveSelection
-rulePerspectiveSelection
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveSelectionAccess().getGroup()); }
-(rule__PerspectiveSelection__Group__0)
-{ after(grammarAccess.getPerspectiveSelectionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveTable
-entryRulePerspectiveTable 
-:
-{ before(grammarAccess.getPerspectiveTableRule()); }
-	 rulePerspectiveTable
-{ after(grammarAccess.getPerspectiveTableRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveTable
-rulePerspectiveTable
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveTableAccess().getGroup()); }
-(rule__PerspectiveTable__Group__0)
-{ after(grammarAccess.getPerspectiveTableAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveGrid
-entryRulePerspectiveGrid 
-:
-{ before(grammarAccess.getPerspectiveGridRule()); }
-	 rulePerspectiveGrid
-{ after(grammarAccess.getPerspectiveGridRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveGrid
-rulePerspectiveGrid
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveGridAccess().getGroup()); }
-(rule__PerspectiveGrid__Group__0)
-{ after(grammarAccess.getPerspectiveGridAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveChart
-entryRulePerspectiveChart 
-:
-{ before(grammarAccess.getPerspectiveChartRule()); }
-	 rulePerspectiveChart
-{ after(grammarAccess.getPerspectiveChartRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveChart
-rulePerspectiveChart
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveChartAccess().getGroup()); }
-(rule__PerspectiveChart__Group__0)
-{ after(grammarAccess.getPerspectiveChartAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveReport
-entryRulePerspectiveReport 
-:
-{ before(grammarAccess.getPerspectiveReportRule()); }
-	 rulePerspectiveReport
-{ after(grammarAccess.getPerspectiveReportRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveReport
-rulePerspectiveReport
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveReportAccess().getGroup()); }
-(rule__PerspectiveReport__Group__0)
-{ after(grammarAccess.getPerspectiveReportAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveOrganization
-entryRulePerspectiveOrganization 
-:
-{ before(grammarAccess.getPerspectiveOrganizationRule()); }
-	 rulePerspectiveOrganization
-{ after(grammarAccess.getPerspectiveOrganizationRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveOrganization
-rulePerspectiveOrganization
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveOrganizationAccess().getGroup()); }
-(rule__PerspectiveOrganization__Group__0)
-{ after(grammarAccess.getPerspectiveOrganizationAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveTopology
-entryRulePerspectiveTopology 
-:
-{ before(grammarAccess.getPerspectiveTopologyRule()); }
-	 rulePerspectiveTopology
-{ after(grammarAccess.getPerspectiveTopologyRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveTopology
-rulePerspectiveTopology
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveTopologyAccess().getGroup()); }
-(rule__PerspectiveTopology__Group__0)
-{ after(grammarAccess.getPerspectiveTopologyAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveDialog
-entryRulePerspectiveDialog 
-:
-{ before(grammarAccess.getPerspectiveDialogRule()); }
-	 rulePerspectiveDialog
-{ after(grammarAccess.getPerspectiveDialogRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveDialog
-rulePerspectiveDialog
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveDialogAccess().getGroup()); }
-(rule__PerspectiveDialog__Group__0)
-{ after(grammarAccess.getPerspectiveDialogAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveBPMN
-entryRulePerspectiveBPMN 
-:
-{ before(grammarAccess.getPerspectiveBPMNRule()); }
-	 rulePerspectiveBPMN
-{ after(grammarAccess.getPerspectiveBPMNRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveBPMN
-rulePerspectiveBPMN
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveBPMNAccess().getGroup()); }
-(rule__PerspectiveBPMN__Group__0)
-{ after(grammarAccess.getPerspectiveBPMNAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRulePerspectiveQualifiedNameWithWildCard
-entryRulePerspectiveQualifiedNameWithWildCard 
-:
-{ before(grammarAccess.getPerspectiveQualifiedNameWithWildCardRule()); }
-	 rulePerspectiveQualifiedNameWithWildCard
-{ after(grammarAccess.getPerspectiveQualifiedNameWithWildCardRule()); } 
-	 EOF 
-;
-
-// Rule PerspectiveQualifiedNameWithWildCard
-rulePerspectiveQualifiedNameWithWildCard
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup()); }
-(rule__PerspectiveQualifiedNameWithWildCard__Group__0)
-{ after(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleQualifiedName
-entryRuleQualifiedName 
-:
-{ before(grammarAccess.getQualifiedNameRule()); }
-	 ruleQualifiedName
-{ after(grammarAccess.getQualifiedNameRule()); } 
-	 EOF 
-;
-
-// Rule QualifiedName
-ruleQualifiedName
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getQualifiedNameAccess().getGroup()); }
-(rule__QualifiedName__Group__0)
-{ after(grammarAccess.getQualifiedNameAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleValidID
-entryRuleValidID 
-:
-{ before(grammarAccess.getValidIDRule()); }
-	 ruleValidID
-{ after(grammarAccess.getValidIDRule()); } 
-	 EOF 
-;
-
-// Rule ValidID
-ruleValidID
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
-	RULE_ID
-{ after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleTRANSLATABLEID
-entryRuleTRANSLATABLEID 
-:
-{ before(grammarAccess.getTRANSLATABLEIDRule()); }
-	 ruleTRANSLATABLEID
-{ after(grammarAccess.getTRANSLATABLEIDRule()); } 
-	 EOF 
-;
-
-// Rule TRANSLATABLEID
-ruleTRANSLATABLEID
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
-	RULE_ID
-{ after(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleTRANSLATABLESTRING
-entryRuleTRANSLATABLESTRING 
-:
-{ before(grammarAccess.getTRANSLATABLESTRINGRule()); }
-	 ruleTRANSLATABLESTRING
-{ after(grammarAccess.getTRANSLATABLESTRINGRule()); } 
-	 EOF 
-;
-
-// Rule TRANSLATABLESTRING
-ruleTRANSLATABLESTRING
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); }
-	RULE_STRING
-{ after(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAnnotation
-entryRuleXAnnotation 
-:
-{ before(grammarAccess.getXAnnotationRule()); }
-	 ruleXAnnotation
-{ after(grammarAccess.getXAnnotationRule()); } 
-	 EOF 
-;
-
-// Rule XAnnotation
-ruleXAnnotation
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAnnotationAccess().getGroup()); }
-(rule__XAnnotation__Group__0)
-{ after(grammarAccess.getXAnnotationAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAnnotationElementValuePair
-entryRuleXAnnotationElementValuePair 
-:
-{ before(grammarAccess.getXAnnotationElementValuePairRule()); }
-	 ruleXAnnotationElementValuePair
-{ after(grammarAccess.getXAnnotationElementValuePairRule()); } 
-	 EOF 
-;
-
-// Rule XAnnotationElementValuePair
-ruleXAnnotationElementValuePair
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); }
-(rule__XAnnotationElementValuePair__Group__0)
-{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAnnotationElementValueOrCommaList
-entryRuleXAnnotationElementValueOrCommaList 
-:
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); }
-	 ruleXAnnotationElementValueOrCommaList
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListRule()); } 
-	 EOF 
-;
-
-// Rule XAnnotationElementValueOrCommaList
-ruleXAnnotationElementValueOrCommaList
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); }
-(rule__XAnnotationElementValueOrCommaList__Alternatives)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAnnotationElementValue
-entryRuleXAnnotationElementValue 
-:
-{ before(grammarAccess.getXAnnotationElementValueRule()); }
-	 ruleXAnnotationElementValue
-{ after(grammarAccess.getXAnnotationElementValueRule()); } 
-	 EOF 
-;
-
-// Rule XAnnotationElementValue
-ruleXAnnotationElementValue
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); }
-(rule__XAnnotationElementValue__Alternatives)
-{ after(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAnnotationOrExpression
-entryRuleXAnnotationOrExpression 
-:
-{ before(grammarAccess.getXAnnotationOrExpressionRule()); }
-	 ruleXAnnotationOrExpression
-{ after(grammarAccess.getXAnnotationOrExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XAnnotationOrExpression
-ruleXAnnotationOrExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); }
-(rule__XAnnotationOrExpression__Alternatives)
-{ after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXExpression
-entryRuleXExpression 
-:
-{ before(grammarAccess.getXExpressionRule()); }
-	 ruleXExpression
-{ after(grammarAccess.getXExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XExpression
-ruleXExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
-	ruleXAssignment
-{ after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAssignment
-entryRuleXAssignment 
-:
-{ before(grammarAccess.getXAssignmentRule()); }
-	 ruleXAssignment
-{ after(grammarAccess.getXAssignmentRule()); } 
-	 EOF 
-;
-
-// Rule XAssignment
-ruleXAssignment
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAssignmentAccess().getAlternatives()); }
-(rule__XAssignment__Alternatives)
-{ after(grammarAccess.getXAssignmentAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpSingleAssign
-entryRuleOpSingleAssign 
-:
-{ before(grammarAccess.getOpSingleAssignRule()); }
-	 ruleOpSingleAssign
-{ after(grammarAccess.getOpSingleAssignRule()); } 
-	 EOF 
-;
-
-// Rule OpSingleAssign
-ruleOpSingleAssign
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
-
-	'=' 
-
-{ after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpMultiAssign
-entryRuleOpMultiAssign 
-:
-{ before(grammarAccess.getOpMultiAssignRule()); }
-	 ruleOpMultiAssign
-{ after(grammarAccess.getOpMultiAssignRule()); } 
-	 EOF 
-;
-
-// Rule OpMultiAssign
-ruleOpMultiAssign
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
-(rule__OpMultiAssign__Alternatives)
-{ after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXOrExpression
-entryRuleXOrExpression 
-:
-{ before(grammarAccess.getXOrExpressionRule()); }
-	 ruleXOrExpression
-{ after(grammarAccess.getXOrExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XOrExpression
-ruleXOrExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getGroup()); }
-(rule__XOrExpression__Group__0)
-{ after(grammarAccess.getXOrExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpOr
-entryRuleOpOr 
-:
-{ before(grammarAccess.getOpOrRule()); }
-	 ruleOpOr
-{ after(grammarAccess.getOpOrRule()); } 
-	 EOF 
-;
-
-// Rule OpOr
-ruleOpOr
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
-
-	'||' 
-
-{ after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAndExpression
-entryRuleXAndExpression 
-:
-{ before(grammarAccess.getXAndExpressionRule()); }
-	 ruleXAndExpression
-{ after(grammarAccess.getXAndExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XAndExpression
-ruleXAndExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAndExpressionAccess().getGroup()); }
-(rule__XAndExpression__Group__0)
-{ after(grammarAccess.getXAndExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpAnd
-entryRuleOpAnd 
-:
-{ before(grammarAccess.getOpAndRule()); }
-	 ruleOpAnd
-{ after(grammarAccess.getOpAndRule()); } 
-	 EOF 
-;
-
-// Rule OpAnd
-ruleOpAnd
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
-
-	'&&' 
-
-{ after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXEqualityExpression
-entryRuleXEqualityExpression 
-:
-{ before(grammarAccess.getXEqualityExpressionRule()); }
-	 ruleXEqualityExpression
-{ after(grammarAccess.getXEqualityExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XEqualityExpression
-ruleXEqualityExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
-(rule__XEqualityExpression__Group__0)
-{ after(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpEquality
-entryRuleOpEquality 
-:
-{ before(grammarAccess.getOpEqualityRule()); }
-	 ruleOpEquality
-{ after(grammarAccess.getOpEqualityRule()); } 
-	 EOF 
-;
-
-// Rule OpEquality
-ruleOpEquality
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpEqualityAccess().getAlternatives()); }
-(rule__OpEquality__Alternatives)
-{ after(grammarAccess.getOpEqualityAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXRelationalExpression
-entryRuleXRelationalExpression 
-:
-{ before(grammarAccess.getXRelationalExpressionRule()); }
-	 ruleXRelationalExpression
-{ after(grammarAccess.getXRelationalExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XRelationalExpression
-ruleXRelationalExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
-(rule__XRelationalExpression__Group__0)
-{ after(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpCompare
-entryRuleOpCompare 
-:
-{ before(grammarAccess.getOpCompareRule()); }
-	 ruleOpCompare
-{ after(grammarAccess.getOpCompareRule()); } 
-	 EOF 
-;
-
-// Rule OpCompare
-ruleOpCompare
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpCompareAccess().getAlternatives()); }
-(rule__OpCompare__Alternatives)
-{ after(grammarAccess.getOpCompareAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXOtherOperatorExpression
-entryRuleXOtherOperatorExpression 
-:
-{ before(grammarAccess.getXOtherOperatorExpressionRule()); }
-	 ruleXOtherOperatorExpression
-{ after(grammarAccess.getXOtherOperatorExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XOtherOperatorExpression
-ruleXOtherOperatorExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
-(rule__XOtherOperatorExpression__Group__0)
-{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpOther
-entryRuleOpOther 
-:
-{ before(grammarAccess.getOpOtherRule()); }
-	 ruleOpOther
-{ after(grammarAccess.getOpOtherRule()); } 
-	 EOF 
-;
-
-// Rule OpOther
-ruleOpOther
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpOtherAccess().getAlternatives()); }
-(rule__OpOther__Alternatives)
-{ after(grammarAccess.getOpOtherAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXAdditiveExpression
-entryRuleXAdditiveExpression 
-:
-{ before(grammarAccess.getXAdditiveExpressionRule()); }
-	 ruleXAdditiveExpression
-{ after(grammarAccess.getXAdditiveExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XAdditiveExpression
-ruleXAdditiveExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
-(rule__XAdditiveExpression__Group__0)
-{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpAdd
-entryRuleOpAdd 
-:
-{ before(grammarAccess.getOpAddRule()); }
-	 ruleOpAdd
-{ after(grammarAccess.getOpAddRule()); } 
-	 EOF 
-;
-
-// Rule OpAdd
-ruleOpAdd
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpAddAccess().getAlternatives()); }
-(rule__OpAdd__Alternatives)
-{ after(grammarAccess.getOpAddAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXMultiplicativeExpression
-entryRuleXMultiplicativeExpression 
-:
-{ before(grammarAccess.getXMultiplicativeExpressionRule()); }
-	 ruleXMultiplicativeExpression
-{ after(grammarAccess.getXMultiplicativeExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XMultiplicativeExpression
-ruleXMultiplicativeExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
-(rule__XMultiplicativeExpression__Group__0)
-{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpMulti
-entryRuleOpMulti 
-:
-{ before(grammarAccess.getOpMultiRule()); }
-	 ruleOpMulti
-{ after(grammarAccess.getOpMultiRule()); } 
-	 EOF 
-;
-
-// Rule OpMulti
-ruleOpMulti
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpMultiAccess().getAlternatives()); }
-(rule__OpMulti__Alternatives)
-{ after(grammarAccess.getOpMultiAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXUnaryOperation
-entryRuleXUnaryOperation 
-:
-{ before(grammarAccess.getXUnaryOperationRule()); }
-	 ruleXUnaryOperation
-{ after(grammarAccess.getXUnaryOperationRule()); } 
-	 EOF 
-;
-
-// Rule XUnaryOperation
-ruleXUnaryOperation
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
-(rule__XUnaryOperation__Alternatives)
-{ after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpUnary
-entryRuleOpUnary 
-:
-{ before(grammarAccess.getOpUnaryRule()); }
-	 ruleOpUnary
-{ after(grammarAccess.getOpUnaryRule()); } 
-	 EOF 
-;
-
-// Rule OpUnary
-ruleOpUnary
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpUnaryAccess().getAlternatives()); }
-(rule__OpUnary__Alternatives)
-{ after(grammarAccess.getOpUnaryAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXCastedExpression
-entryRuleXCastedExpression 
-:
-{ before(grammarAccess.getXCastedExpressionRule()); }
-	 ruleXCastedExpression
-{ after(grammarAccess.getXCastedExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XCastedExpression
-ruleXCastedExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXCastedExpressionAccess().getGroup()); }
-(rule__XCastedExpression__Group__0)
-{ after(grammarAccess.getXCastedExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXPostfixOperation
-entryRuleXPostfixOperation 
-:
-{ before(grammarAccess.getXPostfixOperationRule()); }
-	 ruleXPostfixOperation
-{ after(grammarAccess.getXPostfixOperationRule()); } 
-	 EOF 
-;
-
-// Rule XPostfixOperation
-ruleXPostfixOperation
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXPostfixOperationAccess().getGroup()); }
-(rule__XPostfixOperation__Group__0)
-{ after(grammarAccess.getXPostfixOperationAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleOpPostfix
-entryRuleOpPostfix 
-:
-{ before(grammarAccess.getOpPostfixRule()); }
-	 ruleOpPostfix
-{ after(grammarAccess.getOpPostfixRule()); } 
-	 EOF 
-;
-
-// Rule OpPostfix
-ruleOpPostfix
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getOpPostfixAccess().getAlternatives()); }
-(rule__OpPostfix__Alternatives)
-{ after(grammarAccess.getOpPostfixAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXMemberFeatureCall
-entryRuleXMemberFeatureCall 
-:
-{ before(grammarAccess.getXMemberFeatureCallRule()); }
-	 ruleXMemberFeatureCall
-{ after(grammarAccess.getXMemberFeatureCallRule()); } 
-	 EOF 
-;
-
-// Rule XMemberFeatureCall
-ruleXMemberFeatureCall
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
-(rule__XMemberFeatureCall__Group__0)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXPrimaryExpression
-entryRuleXPrimaryExpression 
-:
-{ before(grammarAccess.getXPrimaryExpressionRule()); }
-	 ruleXPrimaryExpression
-{ after(grammarAccess.getXPrimaryExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XPrimaryExpression
-ruleXPrimaryExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
-(rule__XPrimaryExpression__Alternatives)
-{ after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXLiteral
-entryRuleXLiteral 
-:
-{ before(grammarAccess.getXLiteralRule()); }
-	 ruleXLiteral
-{ after(grammarAccess.getXLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XLiteral
-ruleXLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXLiteralAccess().getAlternatives()); }
-(rule__XLiteral__Alternatives)
-{ after(grammarAccess.getXLiteralAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXCollectionLiteral
-entryRuleXCollectionLiteral 
-:
-{ before(grammarAccess.getXCollectionLiteralRule()); }
-	 ruleXCollectionLiteral
-{ after(grammarAccess.getXCollectionLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XCollectionLiteral
-ruleXCollectionLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
-(rule__XCollectionLiteral__Alternatives)
-{ after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXSetLiteral
-entryRuleXSetLiteral 
-:
-{ before(grammarAccess.getXSetLiteralRule()); }
-	 ruleXSetLiteral
-{ after(grammarAccess.getXSetLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XSetLiteral
-ruleXSetLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXSetLiteralAccess().getGroup()); }
-(rule__XSetLiteral__Group__0)
-{ after(grammarAccess.getXSetLiteralAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXListLiteral
-entryRuleXListLiteral 
-:
-{ before(grammarAccess.getXListLiteralRule()); }
-	 ruleXListLiteral
-{ after(grammarAccess.getXListLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XListLiteral
-ruleXListLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXListLiteralAccess().getGroup()); }
-(rule__XListLiteral__Group__0)
-{ after(grammarAccess.getXListLiteralAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXClosure
-entryRuleXClosure 
-:
-{ before(grammarAccess.getXClosureRule()); }
-	 ruleXClosure
-{ after(grammarAccess.getXClosureRule()); } 
-	 EOF 
-;
-
-// Rule XClosure
-ruleXClosure
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXClosureAccess().getGroup()); }
-(rule__XClosure__Group__0)
-{ after(grammarAccess.getXClosureAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXExpressionInClosure
-entryRuleXExpressionInClosure 
-:
-{ before(grammarAccess.getXExpressionInClosureRule()); }
-	 ruleXExpressionInClosure
-{ after(grammarAccess.getXExpressionInClosureRule()); } 
-	 EOF 
-;
-
-// Rule XExpressionInClosure
-ruleXExpressionInClosure
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
-(rule__XExpressionInClosure__Group__0)
-{ after(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXShortClosure
-entryRuleXShortClosure 
-:
-{ before(grammarAccess.getXShortClosureRule()); }
-	 ruleXShortClosure
-{ after(grammarAccess.getXShortClosureRule()); } 
-	 EOF 
-;
-
-// Rule XShortClosure
-ruleXShortClosure
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXShortClosureAccess().getGroup()); }
-(rule__XShortClosure__Group__0)
-{ after(grammarAccess.getXShortClosureAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXParenthesizedExpression
-entryRuleXParenthesizedExpression 
-:
-{ before(grammarAccess.getXParenthesizedExpressionRule()); }
-	 ruleXParenthesizedExpression
-{ after(grammarAccess.getXParenthesizedExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XParenthesizedExpression
-ruleXParenthesizedExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
-(rule__XParenthesizedExpression__Group__0)
-{ after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXIfExpression
-entryRuleXIfExpression 
-:
-{ before(grammarAccess.getXIfExpressionRule()); }
-	 ruleXIfExpression
-{ after(grammarAccess.getXIfExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XIfExpression
-ruleXIfExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXIfExpressionAccess().getGroup()); }
-(rule__XIfExpression__Group__0)
-{ after(grammarAccess.getXIfExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXSwitchExpression
-entryRuleXSwitchExpression 
-:
-{ before(grammarAccess.getXSwitchExpressionRule()); }
-	 ruleXSwitchExpression
-{ after(grammarAccess.getXSwitchExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XSwitchExpression
-ruleXSwitchExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
-(rule__XSwitchExpression__Group__0)
-{ after(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXCasePart
-entryRuleXCasePart 
-:
-{ before(grammarAccess.getXCasePartRule()); }
-	 ruleXCasePart
-{ after(grammarAccess.getXCasePartRule()); } 
-	 EOF 
-;
-
-// Rule XCasePart
-ruleXCasePart
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXCasePartAccess().getGroup()); }
-(rule__XCasePart__Group__0)
-{ after(grammarAccess.getXCasePartAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXForLoopExpression
-entryRuleXForLoopExpression 
-:
-{ before(grammarAccess.getXForLoopExpressionRule()); }
-	 ruleXForLoopExpression
-{ after(grammarAccess.getXForLoopExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XForLoopExpression
-ruleXForLoopExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
-(rule__XForLoopExpression__Group__0)
-{ after(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXBasicForLoopExpression
-entryRuleXBasicForLoopExpression 
-:
-{ before(grammarAccess.getXBasicForLoopExpressionRule()); }
-	 ruleXBasicForLoopExpression
-{ after(grammarAccess.getXBasicForLoopExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XBasicForLoopExpression
-ruleXBasicForLoopExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
-(rule__XBasicForLoopExpression__Group__0)
-{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXWhileExpression
-entryRuleXWhileExpression 
-:
-{ before(grammarAccess.getXWhileExpressionRule()); }
-	 ruleXWhileExpression
-{ after(grammarAccess.getXWhileExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XWhileExpression
-ruleXWhileExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXWhileExpressionAccess().getGroup()); }
-(rule__XWhileExpression__Group__0)
-{ after(grammarAccess.getXWhileExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXDoWhileExpression
-entryRuleXDoWhileExpression 
-:
-{ before(grammarAccess.getXDoWhileExpressionRule()); }
-	 ruleXDoWhileExpression
-{ after(grammarAccess.getXDoWhileExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XDoWhileExpression
-ruleXDoWhileExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
-(rule__XDoWhileExpression__Group__0)
-{ after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXBlockExpression
-entryRuleXBlockExpression 
-:
-{ before(grammarAccess.getXBlockExpressionRule()); }
-	 ruleXBlockExpression
-{ after(grammarAccess.getXBlockExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XBlockExpression
-ruleXBlockExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXBlockExpressionAccess().getGroup()); }
-(rule__XBlockExpression__Group__0)
-{ after(grammarAccess.getXBlockExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXExpressionOrVarDeclaration
-entryRuleXExpressionOrVarDeclaration 
-:
-{ before(grammarAccess.getXExpressionOrVarDeclarationRule()); }
-	 ruleXExpressionOrVarDeclaration
-{ after(grammarAccess.getXExpressionOrVarDeclarationRule()); } 
-	 EOF 
-;
-
-// Rule XExpressionOrVarDeclaration
-ruleXExpressionOrVarDeclaration
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
-(rule__XExpressionOrVarDeclaration__Alternatives)
-{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXVariableDeclaration
-entryRuleXVariableDeclaration 
-:
-{ before(grammarAccess.getXVariableDeclarationRule()); }
-	 ruleXVariableDeclaration
-{ after(grammarAccess.getXVariableDeclarationRule()); } 
-	 EOF 
-;
-
-// Rule XVariableDeclaration
-ruleXVariableDeclaration
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
-(rule__XVariableDeclaration__Group__0)
-{ after(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmFormalParameter
-entryRuleJvmFormalParameter 
-:
-{ before(grammarAccess.getJvmFormalParameterRule()); }
-	 ruleJvmFormalParameter
-{ after(grammarAccess.getJvmFormalParameterRule()); } 
-	 EOF 
-;
-
-// Rule JvmFormalParameter
-ruleJvmFormalParameter
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
-(rule__JvmFormalParameter__Group__0)
-{ after(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleFullJvmFormalParameter
-entryRuleFullJvmFormalParameter 
-:
-{ before(grammarAccess.getFullJvmFormalParameterRule()); }
-	 ruleFullJvmFormalParameter
-{ after(grammarAccess.getFullJvmFormalParameterRule()); } 
-	 EOF 
-;
-
-// Rule FullJvmFormalParameter
-ruleFullJvmFormalParameter
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
-(rule__FullJvmFormalParameter__Group__0)
-{ after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXFeatureCall
-entryRuleXFeatureCall 
-:
-{ before(grammarAccess.getXFeatureCallRule()); }
-	 ruleXFeatureCall
-{ after(grammarAccess.getXFeatureCallRule()); } 
-	 EOF 
-;
-
-// Rule XFeatureCall
-ruleXFeatureCall
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXFeatureCallAccess().getGroup()); }
-(rule__XFeatureCall__Group__0)
-{ after(grammarAccess.getXFeatureCallAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleFeatureCallID
-entryRuleFeatureCallID 
-:
-{ before(grammarAccess.getFeatureCallIDRule()); }
-	 ruleFeatureCallID
-{ after(grammarAccess.getFeatureCallIDRule()); } 
-	 EOF 
-;
-
-// Rule FeatureCallID
-ruleFeatureCallID
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
-(rule__FeatureCallID__Alternatives)
-{ after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleIdOrSuper
-entryRuleIdOrSuper 
-:
-{ before(grammarAccess.getIdOrSuperRule()); }
-	 ruleIdOrSuper
-{ after(grammarAccess.getIdOrSuperRule()); } 
-	 EOF 
-;
-
-// Rule IdOrSuper
-ruleIdOrSuper
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
-(rule__IdOrSuper__Alternatives)
-{ after(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXConstructorCall
-entryRuleXConstructorCall 
-:
-{ before(grammarAccess.getXConstructorCallRule()); }
-	 ruleXConstructorCall
-{ after(grammarAccess.getXConstructorCallRule()); } 
-	 EOF 
-;
-
-// Rule XConstructorCall
-ruleXConstructorCall
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXConstructorCallAccess().getGroup()); }
-(rule__XConstructorCall__Group__0)
-{ after(grammarAccess.getXConstructorCallAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXBooleanLiteral
-entryRuleXBooleanLiteral 
-:
-{ before(grammarAccess.getXBooleanLiteralRule()); }
-	 ruleXBooleanLiteral
-{ after(grammarAccess.getXBooleanLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XBooleanLiteral
-ruleXBooleanLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
-(rule__XBooleanLiteral__Group__0)
-{ after(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXNullLiteral
-entryRuleXNullLiteral 
-:
-{ before(grammarAccess.getXNullLiteralRule()); }
-	 ruleXNullLiteral
-{ after(grammarAccess.getXNullLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XNullLiteral
-ruleXNullLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXNullLiteralAccess().getGroup()); }
-(rule__XNullLiteral__Group__0)
-{ after(grammarAccess.getXNullLiteralAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXNumberLiteral
-entryRuleXNumberLiteral 
-:
-{ before(grammarAccess.getXNumberLiteralRule()); }
-	 ruleXNumberLiteral
-{ after(grammarAccess.getXNumberLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XNumberLiteral
-ruleXNumberLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXNumberLiteralAccess().getGroup()); }
-(rule__XNumberLiteral__Group__0)
-{ after(grammarAccess.getXNumberLiteralAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXStringLiteral
-entryRuleXStringLiteral 
-:
-{ before(grammarAccess.getXStringLiteralRule()); }
-	 ruleXStringLiteral
-{ after(grammarAccess.getXStringLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XStringLiteral
-ruleXStringLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXStringLiteralAccess().getGroup()); }
-(rule__XStringLiteral__Group__0)
-{ after(grammarAccess.getXStringLiteralAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXTypeLiteral
-entryRuleXTypeLiteral 
-:
-{ before(grammarAccess.getXTypeLiteralRule()); }
-	 ruleXTypeLiteral
-{ after(grammarAccess.getXTypeLiteralRule()); } 
-	 EOF 
-;
-
-// Rule XTypeLiteral
-ruleXTypeLiteral
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXTypeLiteralAccess().getGroup()); }
-(rule__XTypeLiteral__Group__0)
-{ after(grammarAccess.getXTypeLiteralAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXThrowExpression
-entryRuleXThrowExpression 
-:
-{ before(grammarAccess.getXThrowExpressionRule()); }
-	 ruleXThrowExpression
-{ after(grammarAccess.getXThrowExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XThrowExpression
-ruleXThrowExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXThrowExpressionAccess().getGroup()); }
-(rule__XThrowExpression__Group__0)
-{ after(grammarAccess.getXThrowExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXReturnExpression
-entryRuleXReturnExpression 
-:
-{ before(grammarAccess.getXReturnExpressionRule()); }
-	 ruleXReturnExpression
-{ after(grammarAccess.getXReturnExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XReturnExpression
-ruleXReturnExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXReturnExpressionAccess().getGroup()); }
-(rule__XReturnExpression__Group__0)
-{ after(grammarAccess.getXReturnExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXTryCatchFinallyExpression
-entryRuleXTryCatchFinallyExpression 
-:
-{ before(grammarAccess.getXTryCatchFinallyExpressionRule()); }
-	 ruleXTryCatchFinallyExpression
-{ after(grammarAccess.getXTryCatchFinallyExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XTryCatchFinallyExpression
-ruleXTryCatchFinallyExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
-(rule__XTryCatchFinallyExpression__Group__0)
-{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXSynchronizedExpression
-entryRuleXSynchronizedExpression 
-:
-{ before(grammarAccess.getXSynchronizedExpressionRule()); }
-	 ruleXSynchronizedExpression
-{ after(grammarAccess.getXSynchronizedExpressionRule()); } 
-	 EOF 
-;
-
-// Rule XSynchronizedExpression
-ruleXSynchronizedExpression
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
-(rule__XSynchronizedExpression__Group__0)
-{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXCatchClause
-entryRuleXCatchClause 
-:
-{ before(grammarAccess.getXCatchClauseRule()); }
-	 ruleXCatchClause
-{ after(grammarAccess.getXCatchClauseRule()); } 
-	 EOF 
-;
-
-// Rule XCatchClause
-ruleXCatchClause
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXCatchClauseAccess().getGroup()); }
-(rule__XCatchClause__Group__0)
-{ after(grammarAccess.getXCatchClauseAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleNumber
-entryRuleNumber 
-@init {
-	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
-}
-:
-{ before(grammarAccess.getNumberRule()); }
-	 ruleNumber
-{ after(grammarAccess.getNumberRule()); } 
-	 EOF 
-;
-finally {
-	myHiddenTokenState.restore();
-}
-
-// Rule Number
-ruleNumber
-    @init {
-		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getNumberAccess().getAlternatives()); }
-(rule__Number__Alternatives)
-{ after(grammarAccess.getNumberAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-	myHiddenTokenState.restore();
-}
-
-
-
-
-
-// Entry rule entryRuleJvmTypeReference
-entryRuleJvmTypeReference 
-:
-{ before(grammarAccess.getJvmTypeReferenceRule()); }
-	 ruleJvmTypeReference
-{ after(grammarAccess.getJvmTypeReferenceRule()); } 
-	 EOF 
-;
-
-// Rule JvmTypeReference
-ruleJvmTypeReference
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
-(rule__JvmTypeReference__Alternatives)
-{ after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleArrayBrackets
-entryRuleArrayBrackets 
-:
-{ before(grammarAccess.getArrayBracketsRule()); }
-	 ruleArrayBrackets
-{ after(grammarAccess.getArrayBracketsRule()); } 
-	 EOF 
-;
-
-// Rule ArrayBrackets
-ruleArrayBrackets
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getArrayBracketsAccess().getGroup()); }
-(rule__ArrayBrackets__Group__0)
-{ after(grammarAccess.getArrayBracketsAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleXFunctionTypeRef
-entryRuleXFunctionTypeRef 
-:
-{ before(grammarAccess.getXFunctionTypeRefRule()); }
-	 ruleXFunctionTypeRef
-{ after(grammarAccess.getXFunctionTypeRefRule()); } 
-	 EOF 
-;
-
-// Rule XFunctionTypeRef
-ruleXFunctionTypeRef
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
-(rule__XFunctionTypeRef__Group__0)
-{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmParameterizedTypeReference
-entryRuleJvmParameterizedTypeReference 
-:
-{ before(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
-	 ruleJvmParameterizedTypeReference
-{ after(grammarAccess.getJvmParameterizedTypeReferenceRule()); } 
-	 EOF 
-;
-
-// Rule JvmParameterizedTypeReference
-ruleJvmParameterizedTypeReference
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
-(rule__JvmParameterizedTypeReference__Group__0)
-{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmArgumentTypeReference
-entryRuleJvmArgumentTypeReference 
-:
-{ before(grammarAccess.getJvmArgumentTypeReferenceRule()); }
-	 ruleJvmArgumentTypeReference
-{ after(grammarAccess.getJvmArgumentTypeReferenceRule()); } 
-	 EOF 
-;
-
-// Rule JvmArgumentTypeReference
-ruleJvmArgumentTypeReference
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
-(rule__JvmArgumentTypeReference__Alternatives)
-{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmWildcardTypeReference
-entryRuleJvmWildcardTypeReference 
-:
-{ before(grammarAccess.getJvmWildcardTypeReferenceRule()); }
-	 ruleJvmWildcardTypeReference
-{ after(grammarAccess.getJvmWildcardTypeReferenceRule()); } 
-	 EOF 
-;
-
-// Rule JvmWildcardTypeReference
-ruleJvmWildcardTypeReference
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
-(rule__JvmWildcardTypeReference__Group__0)
-{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmUpperBound
-entryRuleJvmUpperBound 
-:
-{ before(grammarAccess.getJvmUpperBoundRule()); }
-	 ruleJvmUpperBound
-{ after(grammarAccess.getJvmUpperBoundRule()); } 
-	 EOF 
-;
-
-// Rule JvmUpperBound
-ruleJvmUpperBound
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
-(rule__JvmUpperBound__Group__0)
-{ after(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmUpperBoundAnded
-entryRuleJvmUpperBoundAnded 
-:
-{ before(grammarAccess.getJvmUpperBoundAndedRule()); }
-	 ruleJvmUpperBoundAnded
-{ after(grammarAccess.getJvmUpperBoundAndedRule()); } 
-	 EOF 
-;
-
-// Rule JvmUpperBoundAnded
-ruleJvmUpperBoundAnded
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
-(rule__JvmUpperBoundAnded__Group__0)
-{ after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmLowerBound
-entryRuleJvmLowerBound 
-:
-{ before(grammarAccess.getJvmLowerBoundRule()); }
-	 ruleJvmLowerBound
-{ after(grammarAccess.getJvmLowerBoundRule()); } 
-	 EOF 
-;
-
-// Rule JvmLowerBound
-ruleJvmLowerBound
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
-(rule__JvmLowerBound__Group__0)
-{ after(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleJvmLowerBoundAnded
-entryRuleJvmLowerBoundAnded 
-:
-{ before(grammarAccess.getJvmLowerBoundAndedRule()); }
-	 ruleJvmLowerBoundAnded
-{ after(grammarAccess.getJvmLowerBoundAndedRule()); } 
-	 EOF 
-;
-
-// Rule JvmLowerBoundAnded
-ruleJvmLowerBoundAnded
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
-(rule__JvmLowerBoundAnded__Group__0)
-{ after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-// Entry rule entryRuleQualifiedNameWithWildcard
-entryRuleQualifiedNameWithWildcard 
-:
-{ before(grammarAccess.getQualifiedNameWithWildcardRule()); }
-	 ruleQualifiedNameWithWildcard
-{ after(grammarAccess.getQualifiedNameWithWildcardRule()); } 
-	 EOF 
-;
-
-// Rule QualifiedNameWithWildcard
-ruleQualifiedNameWithWildcard
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
-(rule__QualifiedNameWithWildcard__Group__0)
-{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-// Entry rule entryRuleXImportDeclaration
-entryRuleXImportDeclaration 
-:
-{ before(grammarAccess.getXImportDeclarationRule()); }
-	 ruleXImportDeclaration
-{ after(grammarAccess.getXImportDeclarationRule()); } 
-	 EOF 
-;
-
-// Rule XImportDeclaration
-ruleXImportDeclaration
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getXImportDeclarationAccess().getGroup()); }
-(rule__XImportDeclaration__Group__0)
-{ after(grammarAccess.getXImportDeclarationAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-// Entry rule entryRuleQualifiedNameInStaticImport
-entryRuleQualifiedNameInStaticImport 
-:
-{ before(grammarAccess.getQualifiedNameInStaticImportRule()); }
-	 ruleQualifiedNameInStaticImport
-{ after(grammarAccess.getQualifiedNameInStaticImportRule()); } 
-	 EOF 
-;
-
-// Rule QualifiedNameInStaticImport
-ruleQualifiedNameInStaticImport
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-(
-{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
-(rule__QualifiedNameInStaticImport__Group__0)
-{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
-)
-(
-{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
-(rule__QualifiedNameInStaticImport__Group__0)*
-{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
-)
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-// Rule SashOrientation
-ruleSashOrientation
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getSashOrientationAccess().getAlternatives()); }
-(rule__SashOrientation__Alternatives)
-{ after(grammarAccess.getSashOrientationAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-rule__PerspectiveElement__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveElementAccess().getPerspectiveSashContainerParserRuleCall_0()); }
-	rulePerspectiveSashContainer
-{ after(grammarAccess.getPerspectiveElementAccess().getPerspectiveSashContainerParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveElementAccess().getPerspectivePartStackParserRuleCall_1()); }
-	rulePerspectivePartStack
-{ after(grammarAccess.getPerspectiveElementAccess().getPerspectivePartStackParserRuleCall_1()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveElementAccess().getPerspectivePartParserRuleCall_2()); }
-	rulePerspectivePart
-{ after(grammarAccess.getPerspectiveElementAccess().getPerspectivePartParserRuleCall_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveView__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveSelectionParserRuleCall_0()); }
-	rulePerspectiveSelection
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveSelectionParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveTableParserRuleCall_1()); }
-	rulePerspectiveTable
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveTableParserRuleCall_1()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveChartParserRuleCall_2()); }
-	rulePerspectiveChart
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveChartParserRuleCall_2()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveReportParserRuleCall_3()); }
-	rulePerspectiveReport
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveReportParserRuleCall_3()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveOrganizationParserRuleCall_4()); }
-	rulePerspectiveOrganization
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveOrganizationParserRuleCall_4()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveTopologyParserRuleCall_5()); }
-	rulePerspectiveTopology
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveTopologyParserRuleCall_5()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveDialogParserRuleCall_6()); }
-	rulePerspectiveDialog
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveDialogParserRuleCall_6()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_7()); }
-	rulePerspectiveBPMN
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_7()); }
-)
-
-    |(
-{ before(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); }
-	rulePerspectiveGrid
-{ after(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Alternatives_3_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); }
-(rule__XAnnotation__Group_3_1_0__0)
-{ after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); }
-(rule__XAnnotation__ValueAssignment_3_1_1)
-{ after(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); }
-(rule__XAnnotationElementValueOrCommaList__Group_0__0)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); }
-(rule__XAnnotationElementValueOrCommaList__Group_1__0)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); }
-(rule__XAnnotationElementValue__Group_0__0)
-{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); }
-	ruleXAnnotationOrExpression
-{ after(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationOrExpression__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); }
-	ruleXAnnotation
-{ after(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); }
-	ruleXExpression
-{ after(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getGroup_0()); }
-(rule__XAssignment__Group_0__0)
-{ after(grammarAccess.getXAssignmentAccess().getGroup_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXAssignmentAccess().getGroup_1()); }
-(rule__XAssignment__Group_1__0)
-{ after(grammarAccess.getXAssignmentAccess().getGroup_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMultiAssign__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
-
-	'+=' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
-
-	'-=' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }
-
-	'*=' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }
-
-	'/=' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }
-
-	'%=' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
-(rule__OpMultiAssign__Group_5__0)
-{ after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
-(rule__OpMultiAssign__Group_6__0)
-{ after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpEquality__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
-
-	'==' 
-
-{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
-
-	'!=' 
-
-{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
-)
-
-    |(
-{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
-
-	'===' 
-
-{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
-)
-
-    |(
-{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
-
-	'!==' 
-
-{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XRelationalExpression__Alternatives_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
-(rule__XRelationalExpression__Group_1_0__0)
-{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
-(rule__XRelationalExpression__Group_1_1__0)
-{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpCompare__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
-
-	'>=' 
-
-{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpCompareAccess().getGroup_1()); }
-(rule__OpCompare__Group_1__0)
-{ after(grammarAccess.getOpCompareAccess().getGroup_1()); }
-)
-
-    |(
-{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
-
-	'>' 
-
-{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
-)
-
-    |(
-{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
-
-	'<' 
-
-{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpOther__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
-
-	'->' 
-
-{ after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
-
-	'..<' 
-
-{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getGroup_2()); }
-(rule__OpOther__Group_2__0)
-{ after(grammarAccess.getOpOtherAccess().getGroup_2()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
-
-	'..' 
-
-{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
-
-	'=>' 
-
-{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getGroup_5()); }
-(rule__OpOther__Group_5__0)
-{ after(grammarAccess.getOpOtherAccess().getGroup_5()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getGroup_6()); }
-(rule__OpOther__Group_6__0)
-{ after(grammarAccess.getOpOtherAccess().getGroup_6()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
-
-	'<>' 
-
-{ after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
-
-	'?:' 
-
-{ after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpOther__Alternatives_5_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
-(rule__OpOther__Group_5_1_0__0)
-{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
-
-	'>' 
-
-{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpOther__Alternatives_6_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
-(rule__OpOther__Group_6_1_0__0)
-{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
-
-	'<' 
-
-{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
-)
-
-    |(
-{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }
-
-	'=>' 
-
-{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpAdd__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
-
-	'+' 
-
-{ after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
-
-	'-' 
-
-{ after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMulti__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
-
-	'*' 
-
-{ after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
-
-	'**' 
-
-{ after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
-
-	'/' 
-
-{ after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
-)
-
-    |(
-{ before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
-
-	'%' 
-
-{ after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XUnaryOperation__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
-(rule__XUnaryOperation__Group_0__0)
-{ after(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
-	ruleXCastedExpression
-{ after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpUnary__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
-
-	'!' 
-
-{ after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
-
-	'-' 
-
-{ after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
-)
-
-    |(
-{ before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
-
-	'+' 
-
-{ after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpPostfix__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }
-
-	'++' 
-
-{ after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }
-)
-
-    |(
-{ before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }
-
-	'--' 
-
-{ after(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XMemberFeatureCall__Alternatives_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
-(rule__XMemberFeatureCall__Group_1_0__0)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
-(rule__XMemberFeatureCall__Group_1_1__0)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
-
-	'.' 
-
-{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
-(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
-
-	'.' 
-
-{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
-(rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
-)
-
-    |(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
-(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XMemberFeatureCall__Alternatives_1_1_3_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
-(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
-(rule__XMemberFeatureCall__Group_1_1_3_1_1__0)
-{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XPrimaryExpression__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
-	ruleXConstructorCall
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
-	ruleXBlockExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
-	ruleXSwitchExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
-(	ruleXSynchronizedExpression)
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
-	ruleXFeatureCall
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
-	ruleXLiteral
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
-	ruleXIfExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
-(	ruleXForLoopExpression)
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
-	ruleXBasicForLoopExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
-	ruleXWhileExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
-	ruleXDoWhileExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
-	ruleXThrowExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
-	ruleXReturnExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
-	ruleXTryCatchFinallyExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
-)
-
-    |(
-{ before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
-	ruleXParenthesizedExpression
-{ after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XLiteral__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
-	ruleXCollectionLiteral
-{ after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
-(	ruleXClosure)
-{ after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
-)
-
-    |(
-{ before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
-	ruleXBooleanLiteral
-{ after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
-)
-
-    |(
-{ before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
-	ruleXNumberLiteral
-{ after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
-)
-
-    |(
-{ before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
-	ruleXNullLiteral
-{ after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
-)
-
-    |(
-{ before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
-	ruleXStringLiteral
-{ after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
-)
-
-    |(
-{ before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
-	ruleXTypeLiteral
-{ after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XCollectionLiteral__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
-	ruleXSetLiteral
-{ after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
-	ruleXListLiteral
-{ after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XSwitchExpression__Alternatives_2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
-(rule__XSwitchExpression__Group_2_0__0)
-{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
-(rule__XSwitchExpression__Group_2_1__0)
-{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XCasePart__Alternatives_3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
-(rule__XCasePart__Group_3_0__0)
-{ after(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
-(rule__XCasePart__FallThroughAssignment_3_1)
-{ after(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XExpressionOrVarDeclaration__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
-	ruleXVariableDeclaration
-{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
-	ruleXExpression
-{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XVariableDeclaration__Alternatives_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
-(rule__XVariableDeclaration__WriteableAssignment_1_0)
-{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
-
-	'val' 
-
-{ after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XVariableDeclaration__Alternatives_2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
-(rule__XVariableDeclaration__Group_2_0__0)
-{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
-(rule__XVariableDeclaration__NameAssignment_2_1)
-{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XFeatureCall__Alternatives_3_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
-(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0)
-{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
-(rule__XFeatureCall__Group_3_1_1__0)
-{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__FeatureCallID__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
-	ruleValidID
-{ after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
-
-	'extends' 
-
-{ after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
-)
-
-    |(
-{ before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
-
-	'static' 
-
-{ after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
-)
-
-    |(
-{ before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
-
-	'import' 
-
-{ after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
-)
-
-    |(
-{ before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
-
-	'extension' 
-
-{ after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__IdOrSuper__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
-	ruleFeatureCallID
-{ after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
-
-	'super' 
-
-{ after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XConstructorCall__Alternatives_4_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
-(rule__XConstructorCall__ArgumentsAssignment_4_1_0)
-{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
-(rule__XConstructorCall__Group_4_1_1__0)
-{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XBooleanLiteral__Alternatives_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
-
-	'false' 
-
-{ after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
-(rule__XBooleanLiteral__IsTrueAssignment_1_1)
-{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XTryCatchFinallyExpression__Alternatives_3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
-(rule__XTryCatchFinallyExpression__Group_3_0__0)
-{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
-(rule__XTryCatchFinallyExpression__Group_3_1__0)
-{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Number__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
-	RULE_HEX
-{ after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getNumberAccess().getGroup_1()); }
-(rule__Number__Group_1__0)
-{ after(grammarAccess.getNumberAccess().getGroup_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Number__Alternatives_1_0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
-	RULE_INT
-{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
-)
-
-    |(
-{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
-	RULE_DECIMAL
-{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Number__Alternatives_1_1_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
-	RULE_INT
-{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
-	RULE_DECIMAL
-{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__JvmTypeReference__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
-(rule__JvmTypeReference__Group_0__0)
-{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
-)
-
-    |(
-{ before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
-	ruleXFunctionTypeRef
-{ after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__JvmArgumentTypeReference__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
-	ruleJvmTypeReference
-{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
-)
-
-    |(
-{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
-	ruleJvmWildcardTypeReference
-{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__JvmWildcardTypeReference__Alternatives_2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
-(rule__JvmWildcardTypeReference__Group_2_0__0)
-{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
-)
-
-    |(
-{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
-(rule__JvmWildcardTypeReference__Group_2_1__0)
-{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XImportDeclaration__Alternatives_1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
-(rule__XImportDeclaration__Group_1_0__0)
-{ after(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
-(rule__XImportDeclaration__ImportedTypeAssignment_1_1)
-{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
-)
-
-    |(
-{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
-(rule__XImportDeclaration__ImportedNamespaceAssignment_1_2)
-{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XImportDeclaration__Alternatives_1_0_3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
-(rule__XImportDeclaration__WildcardAssignment_1_0_3_0)
-{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
-)
-
-    |(
-{ before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
-(rule__XImportDeclaration__MemberNameAssignment_1_0_3_1)
-{ after(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SashOrientation__Alternatives
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getSashOrientationAccess().getHORIZONTALEnumLiteralDeclaration_0()); }
-(	'horizontal' 
-)
-{ after(grammarAccess.getSashOrientationAccess().getHORIZONTALEnumLiteralDeclaration_0()); }
-)
-
-    |(
-{ before(grammarAccess.getSashOrientationAccess().getVERTICALEnumLiteralDeclaration_1()); }
-(	'vertical' 
-)
-{ after(grammarAccess.getSashOrientationAccess().getVERTICALEnumLiteralDeclaration_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-rule__PerspectivePackage__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group__0__Impl
-	rule__PerspectivePackage__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getPerspectivePackageAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectivePackageAccess().getPerspectivePackageAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePackage__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group__1__Impl
-	rule__PerspectivePackage__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getPackageKeyword_1()); }
-
-	'package' 
-
-{ after(grammarAccess.getPerspectivePackageAccess().getPackageKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePackage__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group__2__Impl
-	rule__PerspectivePackage__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getNameAssignment_2()); }
-(rule__PerspectivePackage__NameAssignment_2)
-{ after(grammarAccess.getPerspectivePackageAccess().getNameAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePackage__Group__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group__3__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getGroup_3()); }
-(rule__PerspectivePackage__Group_3__0)?
-{ after(grammarAccess.getPerspectivePackageAccess().getGroup_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-rule__PerspectivePackage__Group_3__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group_3__0__Impl
-	rule__PerspectivePackage__Group_3__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group_3__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getLeftCurlyBracketKeyword_3_0()); }
-
-	'{' 
-
-{ after(grammarAccess.getPerspectivePackageAccess().getLeftCurlyBracketKeyword_3_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePackage__Group_3__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group_3__1__Impl
-	rule__PerspectivePackage__Group_3__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group_3__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getImportsAssignment_3_1()); }
-(rule__PerspectivePackage__ImportsAssignment_3_1)*
-{ after(grammarAccess.getPerspectivePackageAccess().getImportsAssignment_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePackage__Group_3__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group_3__2__Impl
-	rule__PerspectivePackage__Group_3__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group_3__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getPerspectivesAssignment_3_2()); }
-(rule__PerspectivePackage__PerspectivesAssignment_3_2)*
-{ after(grammarAccess.getPerspectivePackageAccess().getPerspectivesAssignment_3_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePackage__Group_3__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePackage__Group_3__3__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePackage__Group_3__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePackageAccess().getRightCurlyBracketKeyword_3_3()); }
-
-	'}' 
-
-{ after(grammarAccess.getPerspectivePackageAccess().getRightCurlyBracketKeyword_3_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-rule__PerspectiveImport__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveImport__Group__0__Impl
-	rule__PerspectiveImport__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveImport__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveImportAccess().getImportKeyword_0()); }
-
-	'import' 
-
-{ after(grammarAccess.getPerspectiveImportAccess().getImportKeyword_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveImport__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveImport__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveImport__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveImportAccess().getImportedNamespaceAssignment_1()); }
-(rule__PerspectiveImport__ImportedNamespaceAssignment_1)
-{ after(grammarAccess.getPerspectiveImportAccess().getImportedNamespaceAssignment_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__Perspective__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__0__Impl
-	rule__Perspective__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getPerspectiveAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveAccess().getPerspectiveAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__1__Impl
-	rule__Perspective__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getPerspectiveKeyword_1()); }
-
-	'perspective' 
-
-{ after(grammarAccess.getPerspectiveAccess().getPerspectiveKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__2__Impl
-	rule__Perspective__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getNameAssignment_2()); }
-(rule__Perspective__NameAssignment_2)
-{ after(grammarAccess.getPerspectiveAccess().getNameAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__3__Impl
-	rule__Perspective__Group__4
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getGroup_3()); }
-(rule__Perspective__Group_3__0)?
-{ after(grammarAccess.getPerspectiveAccess().getGroup_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__4
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__4__Impl
-	rule__Perspective__Group__5
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__4__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getGroup_4()); }
-(rule__Perspective__Group_4__0)?
-{ after(grammarAccess.getPerspectiveAccess().getGroup_4()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__5
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__5__Impl
-	rule__Perspective__Group__6
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__5__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5()); }
-(rule__Perspective__UnorderedGroup_5)
-{ after(grammarAccess.getPerspectiveAccess().getUnorderedGroup_5()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__6
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__6__Impl
-	rule__Perspective__Group__7
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__6__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getLeftCurlyBracketKeyword_6()); }
-
-	'{' 
-
-{ after(grammarAccess.getPerspectiveAccess().getLeftCurlyBracketKeyword_6()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__7
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__7__Impl
-	rule__Perspective__Group__8
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__7__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getElementsAssignment_7()); }
-(rule__Perspective__ElementsAssignment_7)*
-{ after(grammarAccess.getPerspectiveAccess().getElementsAssignment_7()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group__8
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group__8__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group__8__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getRightCurlyBracketKeyword_8()); }
-
-	'}' 
-
-{ after(grammarAccess.getPerspectiveAccess().getRightCurlyBracketKeyword_8()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-rule__Perspective__Group_3__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_3__0__Impl
-	rule__Perspective__Group_3__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_3__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getDescriptionAssignment_3_0()); }
-(rule__Perspective__DescriptionAssignment_3_0)
-{ after(grammarAccess.getPerspectiveAccess().getDescriptionAssignment_3_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group_3__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_3__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_3__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getDescriptionValueAssignment_3_1()); }
-(rule__Perspective__DescriptionValueAssignment_3_1)
-{ after(grammarAccess.getPerspectiveAccess().getDescriptionValueAssignment_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__Perspective__Group_4__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_4__0__Impl
-	rule__Perspective__Group_4__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_4__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getProcessKeyword_4_0()); }
-
-	'process' 
-
-{ after(grammarAccess.getPerspectiveAccess().getProcessKeyword_4_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group_4__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_4__1__Impl
-	rule__Perspective__Group_4__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_4__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getProcessAssignment_4_1()); }
-(rule__Perspective__ProcessAssignment_4_1)
-{ after(grammarAccess.getPerspectiveAccess().getProcessAssignment_4_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group_4__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_4__2__Impl
-	rule__Perspective__Group_4__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_4__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getUsertaskKeyword_4_2()); }
-
-	'usertask' 
-
-{ after(grammarAccess.getPerspectiveAccess().getUsertaskKeyword_4_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group_4__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_4__3__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_4__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getUserTaskAssignment_4_3()); }
-(rule__Perspective__UserTaskAssignment_4_3)
-{ after(grammarAccess.getPerspectiveAccess().getUserTaskAssignment_4_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-rule__Perspective__Group_5_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_5_0__0__Impl
-	rule__Perspective__Group_5_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_5_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getIconURIKeyword_5_0_0()); }
-
-	'iconURI' 
-
-{ after(grammarAccess.getPerspectiveAccess().getIconURIKeyword_5_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group_5_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_5_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_5_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getIconURIAssignment_5_0_1()); }
-(rule__Perspective__IconURIAssignment_5_0_1)
-{ after(grammarAccess.getPerspectiveAccess().getIconURIAssignment_5_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__Perspective__Group_5_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_5_1__0__Impl
-	rule__Perspective__Group_5_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_5_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getAccessibilityKeyword_5_1_0()); }
-
-	'accessibility' 
-
-{ after(grammarAccess.getPerspectiveAccess().getAccessibilityKeyword_5_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group_5_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_5_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_5_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getAccessibilityPhraseAssignment_5_1_1()); }
-(rule__Perspective__AccessibilityPhraseAssignment_5_1_1)
-{ after(grammarAccess.getPerspectiveAccess().getAccessibilityPhraseAssignment_5_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__Perspective__Group_5_2__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_5_2__0__Impl
-	rule__Perspective__Group_5_2__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_5_2__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getToolbarKeyword_5_2_0()); }
-
-	'toolbar' 
-
-{ after(grammarAccess.getPerspectiveAccess().getToolbarKeyword_5_2_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Perspective__Group_5_2__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Perspective__Group_5_2__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Perspective__Group_5_2__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveAccess().getToolbarAssignment_5_2_1()); }
-(rule__Perspective__ToolbarAssignment_5_2_1)
-{ after(grammarAccess.getPerspectiveAccess().getToolbarAssignment_5_2_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectiveSashContainer__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group__0__Impl
-	rule__PerspectiveSashContainer__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getPerspectiveSashContainerAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getPerspectiveSashContainerAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group__1__Impl
-	rule__PerspectiveSashContainer__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getSashContainerKeyword_1()); }
-
-	'sashContainer' 
-
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getSashContainerKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group__2__Impl
-	rule__PerspectiveSashContainer__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getElementIdAssignment_2()); }
-(rule__PerspectiveSashContainer__ElementIdAssignment_2)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getElementIdAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group__3__Impl
-	rule__PerspectiveSashContainer__Group__4
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3()); }
-(rule__PerspectiveSashContainer__UnorderedGroup_3)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getUnorderedGroup_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group__4
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group__4__Impl
-	rule__PerspectiveSashContainer__Group__5
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group__4__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getLeftCurlyBracketKeyword_4()); }
-
-	'{' 
-
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getLeftCurlyBracketKeyword_4()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group__5
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group__5__Impl
-	rule__PerspectiveSashContainer__Group__6
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group__5__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getElementsAssignment_5()); }
-(rule__PerspectiveSashContainer__ElementsAssignment_5)*
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getElementsAssignment_5()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group__6
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group__6__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group__6__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getRightCurlyBracketKeyword_6()); }
-
-	'}' 
-
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getRightCurlyBracketKeyword_6()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-rule__PerspectiveSashContainer__Group_3_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_0__0__Impl
-	rule__PerspectiveSashContainer__Group_3_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationKeyword_3_0_0()); }
-
-	'orientation' 
-
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getOrientationKeyword_3_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group_3_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getOrientationAssignment_3_0_1()); }
-(rule__PerspectiveSashContainer__OrientationAssignment_3_0_1)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getOrientationAssignment_3_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectiveSashContainer__Group_3_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_1__0__Impl
-	rule__PerspectiveSashContainer__Group_3_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementKeyword_3_1_0()); }
-
-	'selectedElement' 
-
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementKeyword_3_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group_3_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementAssignment_3_1_1()); }
-(rule__PerspectiveSashContainer__SelectedElementAssignment_3_1_1)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getSelectedElementAssignment_3_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectiveSashContainer__Group_3_2__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_2__0__Impl
-	rule__PerspectiveSashContainer__Group_3_2__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_2__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getSpaceVolumeKeyword_3_2_0()); }
-
-	'spaceVolume' 
-
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getSpaceVolumeKeyword_3_2_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group_3_2__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_2__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_2__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getContainerDataAssignment_3_2_1()); }
-(rule__PerspectiveSashContainer__ContainerDataAssignment_3_2_1)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getContainerDataAssignment_3_2_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectiveSashContainer__Group_3_3__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_3__0__Impl
-	rule__PerspectiveSashContainer__Group_3_3__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_3__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityKeyword_3_3_0()); }
-
-	'accessibility' 
-
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityKeyword_3_3_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSashContainer__Group_3_3__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSashContainer__Group_3_3__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSashContainer__Group_3_3__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityPhraseAssignment_3_3_1()); }
-(rule__PerspectiveSashContainer__AccessibilityPhraseAssignment_3_3_1)
-{ after(grammarAccess.getPerspectiveSashContainerAccess().getAccessibilityPhraseAssignment_3_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePartStack__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group__0__Impl
-	rule__PerspectivePartStack__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getPerspectivePartStackAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectivePartStackAccess().getPerspectivePartStackAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group__1__Impl
-	rule__PerspectivePartStack__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getPartStackKeyword_1()); }
-
-	'partStack' 
-
-{ after(grammarAccess.getPerspectivePartStackAccess().getPartStackKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group__2__Impl
-	rule__PerspectivePartStack__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getElementIdAssignment_2()); }
-(rule__PerspectivePartStack__ElementIdAssignment_2)
-{ after(grammarAccess.getPerspectivePartStackAccess().getElementIdAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group__3__Impl
-	rule__PerspectivePartStack__Group__4
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3()); }
-(rule__PerspectivePartStack__UnorderedGroup_3)
-{ after(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group__4
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group__4__Impl
-	rule__PerspectivePartStack__Group__5
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group__4__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getLeftCurlyBracketKeyword_4()); }
-
-	'{' 
-
-{ after(grammarAccess.getPerspectivePartStackAccess().getLeftCurlyBracketKeyword_4()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group__5
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group__5__Impl
-	rule__PerspectivePartStack__Group__6
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group__5__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getElementsAssignment_5()); }
-(rule__PerspectivePartStack__ElementsAssignment_5)*
-{ after(grammarAccess.getPerspectivePartStackAccess().getElementsAssignment_5()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group__6
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group__6__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group__6__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getRightCurlyBracketKeyword_6()); }
-
-	'}' 
-
-{ after(grammarAccess.getPerspectivePartStackAccess().getRightCurlyBracketKeyword_6()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-rule__PerspectivePartStack__Group_3_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group_3_0__0__Impl
-	rule__PerspectivePartStack__Group_3_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group_3_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementKeyword_3_0_0()); }
-
-	'selectedElement' 
-
-{ after(grammarAccess.getPerspectivePartStackAccess().getSelectedElementKeyword_3_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group_3_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group_3_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group_3_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getSelectedElementAssignment_3_0_1()); }
-(rule__PerspectivePartStack__SelectedElementAssignment_3_0_1)
-{ after(grammarAccess.getPerspectivePartStackAccess().getSelectedElementAssignment_3_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePartStack__Group_3_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group_3_1__0__Impl
-	rule__PerspectivePartStack__Group_3_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group_3_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_1_0()); }
-
-	'spaceVolume' 
-
-{ after(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group_3_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group_3_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group_3_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1()); }
-(rule__PerspectivePartStack__ContainerDataAssignment_3_1_1)
-{ after(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePartStack__Group_3_2__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group_3_2__0__Impl
-	rule__PerspectivePartStack__Group_3_2__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group_3_2__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_2_0()); }
-
-	'accessibility' 
-
-{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_2_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePartStack__Group_3_2__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePartStack__Group_3_2__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePartStack__Group_3_2__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1()); }
-(rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1)
-{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePart__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group__0__Impl
-	rule__PerspectivePart__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getPerspectivePartAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectivePartAccess().getPerspectivePartAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group__1__Impl
-	rule__PerspectivePart__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getPartKeyword_1()); }
-
-	'part' 
-
-{ after(grammarAccess.getPerspectivePartAccess().getPartKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group__2__Impl
-	rule__PerspectivePart__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getElementIdAssignment_2()); }
-(rule__PerspectivePart__ElementIdAssignment_2)
-{ after(grammarAccess.getPerspectivePartAccess().getElementIdAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group__3__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3()); }
-(rule__PerspectivePart__UnorderedGroup_3)
-{ after(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-rule__PerspectivePart__Group_3_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_0__0__Impl
-	rule__PerspectivePart__Group_3_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getDescriptionAssignment_3_0_0()); }
-(rule__PerspectivePart__DescriptionAssignment_3_0_0)
-{ after(grammarAccess.getPerspectivePartAccess().getDescriptionAssignment_3_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group_3_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getDescriptionValueAssignment_3_0_1()); }
-(rule__PerspectivePart__DescriptionValueAssignment_3_0_1)
-{ after(grammarAccess.getPerspectivePartAccess().getDescriptionValueAssignment_3_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePart__Group_3_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_1__0__Impl
-	rule__PerspectivePart__Group_3_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getSpaceVolumeKeyword_3_1_0()); }
-
-	'spaceVolume' 
-
-{ after(grammarAccess.getPerspectivePartAccess().getSpaceVolumeKeyword_3_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group_3_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getContainerDataAssignment_3_1_1()); }
-(rule__PerspectivePart__ContainerDataAssignment_3_1_1)
-{ after(grammarAccess.getPerspectivePartAccess().getContainerDataAssignment_3_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePart__Group_3_2__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_2__0__Impl
-	rule__PerspectivePart__Group_3_2__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_2__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getAccessibilityKeyword_3_2_0()); }
-
-	'accessibility' 
-
-{ after(grammarAccess.getPerspectivePartAccess().getAccessibilityKeyword_3_2_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group_3_2__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_2__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_2__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseAssignment_3_2_1()); }
-(rule__PerspectivePart__AccessibilityPhraseAssignment_3_2_1)
-{ after(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseAssignment_3_2_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePart__Group_3_3__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_3__0__Impl
-	rule__PerspectivePart__Group_3_3__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_3__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getIconURIKeyword_3_3_0()); }
-
-	'iconURI' 
-
-{ after(grammarAccess.getPerspectivePartAccess().getIconURIKeyword_3_3_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group_3_3__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_3__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_3__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getIconURIAssignment_3_3_1()); }
-(rule__PerspectivePart__IconURIAssignment_3_3_1)
-{ after(grammarAccess.getPerspectivePartAccess().getIconURIAssignment_3_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectivePart__Group_3_4__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_4__0__Impl
-	rule__PerspectivePart__Group_3_4__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_4__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getViewKeyword_3_4_0()); }
-
-	'view' 
-
-{ after(grammarAccess.getPerspectivePartAccess().getViewKeyword_3_4_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectivePart__Group_3_4__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectivePart__Group_3_4__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectivePart__Group_3_4__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectivePartAccess().getViewAssignment_3_4_1()); }
-(rule__PerspectivePart__ViewAssignment_3_4_1)
-{ after(grammarAccess.getPerspectivePartAccess().getViewAssignment_3_4_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectiveSelection__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSelection__Group__0__Impl
-	rule__PerspectiveSelection__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSelection__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSelectionAccess().getPerspectiveSelectionAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveSelectionAccess().getPerspectiveSelectionAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSelection__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSelection__Group__1__Impl
-	rule__PerspectiveSelection__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSelection__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSelectionAccess().getSelectKeyword_1()); }
-
-	'select' 
-
-{ after(grammarAccess.getPerspectiveSelectionAccess().getSelectKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveSelection__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveSelection__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveSelection__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveSelectionAccess().getRefAssignment_2()); }
-(rule__PerspectiveSelection__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveSelectionAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveTable__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveTable__Group__0__Impl
-	rule__PerspectiveTable__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveTable__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveTableAccess().getPerspectiveTableAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveTableAccess().getPerspectiveTableAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveTable__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveTable__Group__1__Impl
-	rule__PerspectiveTable__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveTable__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveTableAccess().getTableKeyword_1()); }
-
-	'table' 
-
-{ after(grammarAccess.getPerspectiveTableAccess().getTableKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveTable__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveTable__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveTable__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveTableAccess().getRefAssignment_2()); }
-(rule__PerspectiveTable__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveTableAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveGrid__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveGrid__Group__0__Impl
-	rule__PerspectiveGrid__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveGrid__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveGridAccess().getPerspectiveGridAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveGridAccess().getPerspectiveGridAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveGrid__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveGrid__Group__1__Impl
-	rule__PerspectiveGrid__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveGrid__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveGridAccess().getGridKeyword_1()); }
-
-	'grid' 
-
-{ after(grammarAccess.getPerspectiveGridAccess().getGridKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveGrid__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveGrid__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveGrid__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveGridAccess().getRefAssignment_2()); }
-(rule__PerspectiveGrid__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveGridAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveChart__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveChart__Group__0__Impl
-	rule__PerspectiveChart__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveChart__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveChartAccess().getPerspectiveChartAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveChartAccess().getPerspectiveChartAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveChart__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveChart__Group__1__Impl
-	rule__PerspectiveChart__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveChart__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveChartAccess().getChartKeyword_1()); }
-
-	'chart' 
-
-{ after(grammarAccess.getPerspectiveChartAccess().getChartKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveChart__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveChart__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveChart__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveChartAccess().getRefAssignment_2()); }
-(rule__PerspectiveChart__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveChartAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveReport__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveReport__Group__0__Impl
-	rule__PerspectiveReport__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveReport__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveReportAccess().getPerspectiveReportAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveReportAccess().getPerspectiveReportAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveReport__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveReport__Group__1__Impl
-	rule__PerspectiveReport__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveReport__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveReportAccess().getReportKeyword_1()); }
-
-	'report' 
-
-{ after(grammarAccess.getPerspectiveReportAccess().getReportKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveReport__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveReport__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveReport__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveReportAccess().getRefAssignment_2()); }
-(rule__PerspectiveReport__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveReportAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveOrganization__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveOrganization__Group__0__Impl
-	rule__PerspectiveOrganization__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveOrganization__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveOrganizationAccess().getPerspectiveOrganizationAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveOrganizationAccess().getPerspectiveOrganizationAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveOrganization__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveOrganization__Group__1__Impl
-	rule__PerspectiveOrganization__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveOrganization__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveOrganizationAccess().getOrganigramKeyword_1()); }
-
-	'organigram' 
-
-{ after(grammarAccess.getPerspectiveOrganizationAccess().getOrganigramKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveOrganization__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveOrganization__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveOrganization__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveOrganizationAccess().getRefAssignment_2()); }
-(rule__PerspectiveOrganization__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveOrganizationAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveTopology__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveTopology__Group__0__Impl
-	rule__PerspectiveTopology__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveTopology__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveTopologyAccess().getPerspectiveTopologyAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveTopologyAccess().getPerspectiveTopologyAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveTopology__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveTopology__Group__1__Impl
-	rule__PerspectiveTopology__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveTopology__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveTopologyAccess().getTopologyKeyword_1()); }
-
-	'topology' 
-
-{ after(grammarAccess.getPerspectiveTopologyAccess().getTopologyKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveTopology__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveTopology__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveTopology__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveTopologyAccess().getRefAssignment_2()); }
-(rule__PerspectiveTopology__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveTopologyAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveDialog__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveDialog__Group__0__Impl
-	rule__PerspectiveDialog__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveDialog__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveDialogAccess().getPerspectiveDialogAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveDialogAccess().getPerspectiveDialogAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveDialog__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveDialog__Group__1__Impl
-	rule__PerspectiveDialog__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveDialog__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveDialogAccess().getDialogKeyword_1()); }
-
-	'dialog' 
-
-{ after(grammarAccess.getPerspectiveDialogAccess().getDialogKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveDialog__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveDialog__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveDialog__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveDialogAccess().getRefAssignment_2()); }
-(rule__PerspectiveDialog__RefAssignment_2)
-{ after(grammarAccess.getPerspectiveDialogAccess().getRefAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__PerspectiveBPMN__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveBPMN__Group__0__Impl
-	rule__PerspectiveBPMN__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveBPMN__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); }
-(
-
-)
-{ after(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveBPMN__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveBPMN__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveBPMN__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); }
-
-	'bpmn' 
-
-{ after(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectiveQualifiedNameWithWildCard__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveQualifiedNameWithWildCard__Group__0__Impl
-	rule__PerspectiveQualifiedNameWithWildCard__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveQualifiedNameWithWildCard__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); }
-	ruleQualifiedName
-{ after(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveQualifiedNameWithWildCard__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveQualifiedNameWithWildCard__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveQualifiedNameWithWildCard__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup_1()); }
-(rule__PerspectiveQualifiedNameWithWildCard__Group_1__0)?
-{ after(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__PerspectiveQualifiedNameWithWildCard__Group_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveQualifiedNameWithWildCard__Group_1__0__Impl
-	rule__PerspectiveQualifiedNameWithWildCard__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveQualifiedNameWithWildCard__Group_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); }
-
-	'.' 
-
-{ after(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__PerspectiveQualifiedNameWithWildCard__Group_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__PerspectiveQualifiedNameWithWildCard__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__PerspectiveQualifiedNameWithWildCard__Group_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); }
-
-	'*' 
-
-{ after(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__QualifiedName__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__QualifiedName__Group__0__Impl
-	rule__QualifiedName__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedName__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
-	ruleValidID
-{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__QualifiedName__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__QualifiedName__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedName__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
-(rule__QualifiedName__Group_1__0)*
-{ after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__QualifiedName__Group_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__QualifiedName__Group_1__0__Impl
-	rule__QualifiedName__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedName__Group_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
-(
-	'.' 
-)
-{ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__QualifiedName__Group_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__QualifiedName__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedName__Group_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
-	ruleValidID
-{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotation__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group__0__Impl
-	rule__XAnnotation__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
-(
-
-)
-{ after(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotation__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group__1__Impl
-	rule__XAnnotation__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
-
-	'@' 
-
-{ after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotation__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group__2__Impl
-	rule__XAnnotation__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
-(rule__XAnnotation__AnnotationTypeAssignment_2)
-{ after(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotation__Group__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group__3__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getGroup_3()); }
-(rule__XAnnotation__Group_3__0)?
-{ after(grammarAccess.getXAnnotationAccess().getGroup_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-rule__XAnnotation__Group_3__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group_3__0__Impl
-	rule__XAnnotation__Group_3__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group_3__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
-(
-	'(' 
-)
-{ after(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotation__Group_3__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group_3__1__Impl
-	rule__XAnnotation__Group_3__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group_3__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
-(rule__XAnnotation__Alternatives_3_1)?
-{ after(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotation__Group_3__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group_3__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group_3__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
-
-	')' 
-
-{ after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__XAnnotation__Group_3_1_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group_3_1_0__0__Impl
-	rule__XAnnotation__Group_3_1_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group_3_1_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
-(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0)
-{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotation__Group_3_1_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group_3_1_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group_3_1_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
-(rule__XAnnotation__Group_3_1_0_1__0)*
-{ after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotation__Group_3_1_0_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group_3_1_0_1__0__Impl
-	rule__XAnnotation__Group_3_1_0_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group_3_1_0_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
-
-	',' 
-
-{ after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotation__Group_3_1_0_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotation__Group_3_1_0_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotation__Group_3_1_0_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
-(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1)
-{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValuePair__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValuePair__Group__0__Impl
-	rule__XAnnotationElementValuePair__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValuePair__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
-(rule__XAnnotationElementValuePair__Group_0__0)
-{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValuePair__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValuePair__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValuePair__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
-(rule__XAnnotationElementValuePair__ValueAssignment_1)
-{ after(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValuePair__Group_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValuePair__Group_0__0__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValuePair__Group_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
-(rule__XAnnotationElementValuePair__Group_0_0__0)
-{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-rule__XAnnotationElementValuePair__Group_0_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValuePair__Group_0_0__0__Impl
-	rule__XAnnotationElementValuePair__Group_0_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValuePair__Group_0_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
-(rule__XAnnotationElementValuePair__ElementAssignment_0_0_0)
-{ after(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValuePair__Group_0_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValuePair__Group_0_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValuePair__Group_0_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
-
-	'=' 
-
-{ after(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
-(rule__XAnnotationElementValueOrCommaList__Group_0_0__0)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_0__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
-(rule__XAnnotationElementValueOrCommaList__Group_0_1__0)?
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
-
-	']' 
-
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
-(rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
-(
-
-)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
-
-	'#' 
-
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
-
-	'[' 
-
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_0_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
-(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); }
-(rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0)*
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); }
-
-	',' 
-
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); }
-(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); }
-	ruleXAnnotationOrExpression
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); }
-(rule__XAnnotationElementValueOrCommaList__Group_1_1__0)?
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_1_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); }
-(
-
-)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
-(rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
-)
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
-(rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0)*
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
-)
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl
-	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); }
-
-	',' 
-
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); }
-(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1)
-{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValue__Group_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0__0__Impl
-	rule__XAnnotationElementValue__Group_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); }
-(rule__XAnnotationElementValue__Group_0_0__0)
-{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValue__Group_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0__1__Impl
-	rule__XAnnotationElementValue__Group_0__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); }
-(rule__XAnnotationElementValue__Group_0_1__0)?
-{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValue__Group_0__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); }
-
-	']' 
-
-{ after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__XAnnotationElementValue__Group_0_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_0__0__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); }
-(rule__XAnnotationElementValue__Group_0_0_0__0)
-{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-rule__XAnnotationElementValue__Group_0_0_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_0_0__0__Impl
-	rule__XAnnotationElementValue__Group_0_0_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_0_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); }
-(
-
-)
-{ after(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValue__Group_0_0_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_0_0__1__Impl
-	rule__XAnnotationElementValue__Group_0_0_0__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_0_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); }
-
-	'#' 
-
-{ after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValue__Group_0_0_0__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_0_0__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_0_0__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
-
-	'[' 
-
-{ after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__XAnnotationElementValue__Group_0_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_1__0__Impl
-	rule__XAnnotationElementValue__Group_0_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); }
-(rule__XAnnotationElementValue__ElementsAssignment_0_1_0)
-{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValue__Group_0_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); }
-(rule__XAnnotationElementValue__Group_0_1_1__0)*
-{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAnnotationElementValue__Group_0_1_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_1_1__0__Impl
-	rule__XAnnotationElementValue__Group_0_1_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_1_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); }
-
-	',' 
-
-{ after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAnnotationElementValue__Group_0_1_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAnnotationElementValue__Group_0_1_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAnnotationElementValue__Group_0_1_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); }
-(rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1)
-{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAssignment__Group_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_0__0__Impl
-	rule__XAssignment__Group_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
-(
-
-)
-{ after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAssignment__Group_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_0__1__Impl
-	rule__XAssignment__Group_0__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
-(rule__XAssignment__FeatureAssignment_0_1)
-{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAssignment__Group_0__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_0__2__Impl
-	rule__XAssignment__Group_0__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_0__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
-	ruleOpSingleAssign
-{ after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAssignment__Group_0__3
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_0__3__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_0__3__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
-(rule__XAssignment__ValueAssignment_0_3)
-{ after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-
-
-rule__XAssignment__Group_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_1__0__Impl
-	rule__XAssignment__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
-	ruleXOrExpression
-{ after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAssignment__Group_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
-(rule__XAssignment__Group_1_1__0)?
-{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAssignment__Group_1_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_1_1__0__Impl
-	rule__XAssignment__Group_1_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_1_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
-(rule__XAssignment__Group_1_1_0__0)
-{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAssignment__Group_1_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_1_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_1_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
-(rule__XAssignment__RightOperandAssignment_1_1_1)
-{ after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAssignment__Group_1_1_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_1_1_0__0__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_1_1_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
-(rule__XAssignment__Group_1_1_0_0__0)
-{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-rule__XAssignment__Group_1_1_0_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_1_1_0_0__0__Impl
-	rule__XAssignment__Group_1_1_0_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_1_1_0_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
-(
-
-)
-{ after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAssignment__Group_1_1_0_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAssignment__Group_1_1_0_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAssignment__Group_1_1_0_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
-(rule__XAssignment__FeatureAssignment_1_1_0_0_1)
-{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__OpMultiAssign__Group_5__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__OpMultiAssign__Group_5__0__Impl
-	rule__OpMultiAssign__Group_5__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMultiAssign__Group_5__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }
-
-	'<' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__OpMultiAssign__Group_5__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__OpMultiAssign__Group_5__1__Impl
-	rule__OpMultiAssign__Group_5__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMultiAssign__Group_5__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }
-
-	'<' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__OpMultiAssign__Group_5__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__OpMultiAssign__Group_5__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMultiAssign__Group_5__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }
-
-	'=' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__OpMultiAssign__Group_6__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__OpMultiAssign__Group_6__0__Impl
-	rule__OpMultiAssign__Group_6__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMultiAssign__Group_6__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }
-
-	'>' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__OpMultiAssign__Group_6__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__OpMultiAssign__Group_6__1__Impl
-	rule__OpMultiAssign__Group_6__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMultiAssign__Group_6__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
-(
-	'>' 
-)?
-{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__OpMultiAssign__Group_6__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__OpMultiAssign__Group_6__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__OpMultiAssign__Group_6__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }
-
-	'>=' 
-
-{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
-rule__XOrExpression__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XOrExpression__Group__0__Impl
-	rule__XOrExpression__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XOrExpression__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
-	ruleXAndExpression
-{ after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XOrExpression__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XOrExpression__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XOrExpression__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
-(rule__XOrExpression__Group_1__0)*
-{ after(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XOrExpression__Group_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XOrExpression__Group_1__0__Impl
-	rule__XOrExpression__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XOrExpression__Group_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
-(rule__XOrExpression__Group_1_0__0)
-{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XOrExpression__Group_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XOrExpression__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XOrExpression__Group_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
-(rule__XOrExpression__RightOperandAssignment_1_1)
-{ after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XOrExpression__Group_1_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XOrExpression__Group_1_0__0__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XOrExpression__Group_1_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
-(rule__XOrExpression__Group_1_0_0__0)
-{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-rule__XOrExpression__Group_1_0_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XOrExpression__Group_1_0_0__0__Impl
-	rule__XOrExpression__Group_1_0_0__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XOrExpression__Group_1_0_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
-(
-
-)
-{ after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XOrExpression__Group_1_0_0__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XOrExpression__Group_1_0_0__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XOrExpression__Group_1_0_0__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
-(rule__XOrExpression__FeatureAssignment_1_0_0_1)
-{ after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAndExpression__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAndExpression__Group__0__Impl
-	rule__XAndExpression__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAndExpression__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
-	ruleXEqualityExpression
-{ after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAndExpression__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAndExpression__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAndExpression__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
-(rule__XAndExpression__Group_1__0)*
-{ after(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAndExpression__Group_1__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAndExpression__Group_1__0__Impl
-	rule__XAndExpression__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAndExpression__Group_1__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
-(rule__XAndExpression__Group_1_0__0)
-{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__XAndExpression__Group_1__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAndExpression__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAndExpression__Group_1__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
-(rule__XAndExpression__RightOperandAssignment_1_1)
-{ after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-rule__XAndExpression__Group_1_0__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__XAndExpression__Group_1_0__0__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__XAndExpression__Group_1_0__0__Impl
-    @init {
-		int stackSize = keepStackSize();
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.tokens b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.tokens
deleted file mode 100644
index 6837fac..0000000
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.tokens
+++ /dev/null
@@ -1,213 +0,0 @@
-'!'=40
-'!='=22
-'!=='=24
-'#'=83
-'%'=39
-'%='=20
-'&&'=15
-'&'=107
-'('=79
-')'=80
-'*'=36
-'**'=37
-'*='=18
-'+'=34
-'++'=41
-'+='=16
-','=81
-'-'=35
-'--'=42
-'-='=17
-'->'=28
-'.'=43
-'..'=30
-'..<'=29
-'/'=38
-'/='=19
-':'=91
-'::'=110
-';'=87
-'<'=27
-'<>'=32
-'='=13
-'=='=21
-'==='=23
-'=>'=31
-'>'=26
-'>='=25
-'?'=106
-'?.'=111
-'?:'=33
-'@'=78
-'['=84
-']'=82
-'accessibility'=60
-'as'=86
-'bpmn'=77
-'case'=93
-'catch'=105
-'chart'=72
-'default'=92
-'described by'=108
-'dialog'=76
-'do'=96
-'else'=89
-'extends'=45
-'extension'=48
-'false'=50
-'finally'=103
-'for'=94
-'grid'=71
-'horizontal'=51
-'iconURI'=59
-'if'=88
-'import'=47
-'instanceof'=85
-'isClosable'=109
-'new'=97
-'null'=98
-'organigram'=74
-'orientation'=63
-'package'=53
-'part'=67
-'partStack'=66
-'perspective'=56
-'process'=57
-'report'=73
-'return'=101
-'sashContainer'=62
-'select'=69
-'selectedElement'=64
-'spaceVolume'=65
-'static'=46
-'super'=49
-'switch'=90
-'synchronized'=104
-'table'=70
-'throw'=100
-'toolbar'=61
-'topology'=75
-'true'=114
-'try'=102
-'typeof'=99
-'usertask'=58
-'val'=44
-'var'=113
-'vertical'=52
-'view'=68
-'while'=95
-'{'=54
-'|'=112
-'||'=14
-'}'=55
-RULE_ANY_OTHER=12
-RULE_DECIMAL=8
-RULE_HEX=6
-RULE_ID=4
-RULE_INT=7
-RULE_ML_COMMENT=9
-RULE_SL_COMMENT=10
-RULE_STRING=5
-RULE_WS=11
-T__100=100
-T__101=101
-T__102=102
-T__103=103
-T__104=104
-T__105=105
-T__106=106
-T__107=107
-T__108=108
-T__109=109
-T__110=110
-T__111=111
-T__112=112
-T__113=113
-T__114=114
-T__13=13
-T__14=14
-T__15=15
-T__16=16
-T__17=17
-T__18=18
-T__19=19
-T__20=20
-T__21=21
-T__22=22
-T__23=23
-T__24=24
-T__25=25
-T__26=26
-T__27=27
-T__28=28
-T__29=29
-T__30=30
-T__31=31
-T__32=32
-T__33=33
-T__34=34
-T__35=35
-T__36=36
-T__37=37
-T__38=38
-T__39=39
-T__40=40
-T__41=41
-T__42=42
-T__43=43
-T__44=44
-T__45=45
-T__46=46
-T__47=47
-T__48=48
-T__49=49
-T__50=50
-T__51=51
-T__52=52
-T__53=53
-T__54=54
-T__55=55
-T__56=56
-T__57=57
-T__58=58
-T__59=59
-T__60=60
-T__61=61
-T__62=62
-T__63=63
-T__64=64
-T__65=65
-T__66=66
-T__67=67
-T__68=68
-T__69=69
-T__70=70
-T__71=71
-T__72=72
-T__73=73
-T__74=74
-T__75=75
-T__76=76
-T__77=77
-T__78=78
-T__79=79
-T__80=80
-T__81=81
-T__82=82
-T__83=83
-T__84=84
-T__85=85
-T__86=86
-T__87=87
-T__88=88
-T__89=89
-T__90=90
-T__91=91
-T__92=92
-T__93=93
-T__94=94
-T__95=95
-T__96=96
-T__97=97
-T__98=98
-T__99=99
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDslLexer.java b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDslLexer.java
deleted file mode 100644
index f665e58..0000000
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDslLexer.java
+++ /dev/null
@@ -1,4699 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal;
-
-// Hack: Use our own Lexer superclass by means of import. 
-// Currently there is no other way to specify the superclass for the lexer.
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-
-@SuppressWarnings("all")
-public class InternalPerspectiveDslLexer extends Lexer {
-    public static final int RULE_HEX=6;
-    public static final int T__50=50;
-    public static final int T__59=59;
-    public static final int T__55=55;
-    public static final int T__56=56;
-    public static final int T__57=57;
-    public static final int T__58=58;
-    public static final int T__51=51;
-    public static final int T__52=52;
-    public static final int T__53=53;
-    public static final int T__54=54;
-    public static final int T__60=60;
-    public static final int T__61=61;
-    public static final int RULE_ID=4;
-    public static final int RULE_INT=7;
-    public static final int T__66=66;
-    public static final int RULE_ML_COMMENT=9;
-    public static final int T__67=67;
-    public static final int T__68=68;
-    public static final int T__69=69;
-    public static final int T__62=62;
-    public static final int T__63=63;
-    public static final int T__64=64;
-    public static final int T__65=65;
-    public static final int T__37=37;
-    public static final int T__38=38;
-    public static final int T__39=39;
-    public static final int T__33=33;
-    public static final int T__34=34;
-    public static final int T__35=35;
-    public static final int T__36=36;
-    public static final int T__30=30;
-    public static final int T__31=31;
-    public static final int T__32=32;
-    public static final int T__48=48;
-    public static final int T__49=49;
-    public static final int T__44=44;
-    public static final int T__45=45;
-    public static final int T__46=46;
-    public static final int T__47=47;
-    public static final int T__40=40;
-    public static final int T__41=41;
-    public static final int T__42=42;
-    public static final int T__43=43;
-    public static final int T__91=91;
-    public static final int T__100=100;
-    public static final int T__92=92;
-    public static final int T__93=93;
-    public static final int T__102=102;
-    public static final int T__94=94;
-    public static final int T__101=101;
-    public static final int T__90=90;
-    public static final int T__19=19;
-    public static final int T__15=15;
-    public static final int T__16=16;
-    public static final int T__17=17;
-    public static final int T__18=18;
-    public static final int T__99=99;
-    public static final int T__13=13;
-    public static final int T__14=14;
-    public static final int T__95=95;
-    public static final int T__96=96;
-    public static final int T__97=97;
-    public static final int T__98=98;
-    public static final int RULE_DECIMAL=8;
-    public static final int T__26=26;
-    public static final int T__27=27;
-    public static final int T__28=28;
-    public static final int T__29=29;
-    public static final int T__22=22;
-    public static final int T__23=23;
-    public static final int T__24=24;
-    public static final int T__25=25;
-    public static final int T__20=20;
-    public static final int T__21=21;
-    public static final int T__70=70;
-    public static final int T__71=71;
-    public static final int T__72=72;
-    public static final int RULE_STRING=5;
-    public static final int RULE_SL_COMMENT=10;
-    public static final int T__77=77;
-    public static final int T__78=78;
-    public static final int T__79=79;
-    public static final int T__73=73;
-    public static final int EOF=-1;
-    public static final int T__74=74;
-    public static final int T__114=114;
-    public static final int T__75=75;
-    public static final int T__76=76;
-    public static final int T__80=80;
-    public static final int T__111=111;
-    public static final int T__81=81;
-    public static final int T__110=110;
-    public static final int T__82=82;
-    public static final int T__113=113;
-    public static final int T__83=83;
-    public static final int T__112=112;
-    public static final int RULE_WS=11;
-    public static final int RULE_ANY_OTHER=12;
-    public static final int T__88=88;
-    public static final int T__108=108;
-    public static final int T__89=89;
-    public static final int T__107=107;
-    public static final int T__109=109;
-    public static final int T__84=84;
-    public static final int T__104=104;
-    public static final int T__85=85;
-    public static final int T__103=103;
-    public static final int T__86=86;
-    public static final int T__106=106;
-    public static final int T__87=87;
-    public static final int T__105=105;
-
-    // delegates
-    // delegators
-
-    public InternalPerspectiveDslLexer() {;} 
-    public InternalPerspectiveDslLexer(CharStream input) {
-        this(input, new RecognizerSharedState());
-    }
-    public InternalPerspectiveDslLexer(CharStream input, RecognizerSharedState state) {
-        super(input,state);
-
-    }
-    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g"; }
-
-    // $ANTLR start "T__13"
-    public final void mT__13() throws RecognitionException {
-        try {
-            int _type = T__13;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:11:7: ( '=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:11:9: '='
-            {
-            match('='); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__13"
-
-    // $ANTLR start "T__14"
-    public final void mT__14() throws RecognitionException {
-        try {
-            int _type = T__14;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:12:7: ( '||' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:12:9: '||'
-            {
-            match("||"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__14"
-
-    // $ANTLR start "T__15"
-    public final void mT__15() throws RecognitionException {
-        try {
-            int _type = T__15;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:13:7: ( '&&' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:13:9: '&&'
-            {
-            match("&&"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__15"
-
-    // $ANTLR start "T__16"
-    public final void mT__16() throws RecognitionException {
-        try {
-            int _type = T__16;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:14:7: ( '+=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:14:9: '+='
-            {
-            match("+="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__16"
-
-    // $ANTLR start "T__17"
-    public final void mT__17() throws RecognitionException {
-        try {
-            int _type = T__17;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:15:7: ( '-=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:15:9: '-='
-            {
-            match("-="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__17"
-
-    // $ANTLR start "T__18"
-    public final void mT__18() throws RecognitionException {
-        try {
-            int _type = T__18;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:16:7: ( '*=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:16:9: '*='
-            {
-            match("*="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__18"
-
-    // $ANTLR start "T__19"
-    public final void mT__19() throws RecognitionException {
-        try {
-            int _type = T__19;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:17:7: ( '/=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:17:9: '/='
-            {
-            match("/="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__19"
-
-    // $ANTLR start "T__20"
-    public final void mT__20() throws RecognitionException {
-        try {
-            int _type = T__20;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:18:7: ( '%=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:18:9: '%='
-            {
-            match("%="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__20"
-
-    // $ANTLR start "T__21"
-    public final void mT__21() throws RecognitionException {
-        try {
-            int _type = T__21;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:19:7: ( '==' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:19:9: '=='
-            {
-            match("=="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__21"
-
-    // $ANTLR start "T__22"
-    public final void mT__22() throws RecognitionException {
-        try {
-            int _type = T__22;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:20:7: ( '!=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:20:9: '!='
-            {
-            match("!="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__22"
-
-    // $ANTLR start "T__23"
-    public final void mT__23() throws RecognitionException {
-        try {
-            int _type = T__23;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:21:7: ( '===' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:21:9: '==='
-            {
-            match("==="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__23"
-
-    // $ANTLR start "T__24"
-    public final void mT__24() throws RecognitionException {
-        try {
-            int _type = T__24;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:22:7: ( '!==' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:22:9: '!=='
-            {
-            match("!=="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__24"
-
-    // $ANTLR start "T__25"
-    public final void mT__25() throws RecognitionException {
-        try {
-            int _type = T__25;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:23:7: ( '>=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:23:9: '>='
-            {
-            match(">="); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__25"
-
-    // $ANTLR start "T__26"
-    public final void mT__26() throws RecognitionException {
-        try {
-            int _type = T__26;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:24:7: ( '>' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:24:9: '>'
-            {
-            match('>'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__26"
-
-    // $ANTLR start "T__27"
-    public final void mT__27() throws RecognitionException {
-        try {
-            int _type = T__27;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:25:7: ( '<' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:25:9: '<'
-            {
-            match('<'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__27"
-
-    // $ANTLR start "T__28"
-    public final void mT__28() throws RecognitionException {
-        try {
-            int _type = T__28;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26:7: ( '->' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26:9: '->'
-            {
-            match("->"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__28"
-
-    // $ANTLR start "T__29"
-    public final void mT__29() throws RecognitionException {
-        try {
-            int _type = T__29;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:27:7: ( '..<' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:27:9: '..<'
-            {
-            match("..<"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__29"
-
-    // $ANTLR start "T__30"
-    public final void mT__30() throws RecognitionException {
-        try {
-            int _type = T__30;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:28:7: ( '..' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:28:9: '..'
-            {
-            match(".."); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__30"
-
-    // $ANTLR start "T__31"
-    public final void mT__31() throws RecognitionException {
-        try {
-            int _type = T__31;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:29:7: ( '=>' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:29:9: '=>'
-            {
-            match("=>"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__31"
-
-    // $ANTLR start "T__32"
-    public final void mT__32() throws RecognitionException {
-        try {
-            int _type = T__32;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:30:7: ( '<>' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:30:9: '<>'
-            {
-            match("<>"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__32"
-
-    // $ANTLR start "T__33"
-    public final void mT__33() throws RecognitionException {
-        try {
-            int _type = T__33;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:31:7: ( '?:' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:31:9: '?:'
-            {
-            match("?:"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__33"
-
-    // $ANTLR start "T__34"
-    public final void mT__34() throws RecognitionException {
-        try {
-            int _type = T__34;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:32:7: ( '+' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:32:9: '+'
-            {
-            match('+'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__34"
-
-    // $ANTLR start "T__35"
-    public final void mT__35() throws RecognitionException {
-        try {
-            int _type = T__35;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:33:7: ( '-' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:33:9: '-'
-            {
-            match('-'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__35"
-
-    // $ANTLR start "T__36"
-    public final void mT__36() throws RecognitionException {
-        try {
-            int _type = T__36;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:34:7: ( '*' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:34:9: '*'
-            {
-            match('*'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__36"
-
-    // $ANTLR start "T__37"
-    public final void mT__37() throws RecognitionException {
-        try {
-            int _type = T__37;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:35:7: ( '**' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:35:9: '**'
-            {
-            match("**"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__37"
-
-    // $ANTLR start "T__38"
-    public final void mT__38() throws RecognitionException {
-        try {
-            int _type = T__38;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:36:7: ( '/' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:36:9: '/'
-            {
-            match('/'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__38"
-
-    // $ANTLR start "T__39"
-    public final void mT__39() throws RecognitionException {
-        try {
-            int _type = T__39;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:37:7: ( '%' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:37:9: '%'
-            {
-            match('%'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__39"
-
-    // $ANTLR start "T__40"
-    public final void mT__40() throws RecognitionException {
-        try {
-            int _type = T__40;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:38:7: ( '!' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:38:9: '!'
-            {
-            match('!'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__40"
-
-    // $ANTLR start "T__41"
-    public final void mT__41() throws RecognitionException {
-        try {
-            int _type = T__41;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:39:7: ( '++' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:39:9: '++'
-            {
-            match("++"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__41"
-
-    // $ANTLR start "T__42"
-    public final void mT__42() throws RecognitionException {
-        try {
-            int _type = T__42;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:40:7: ( '--' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:40:9: '--'
-            {
-            match("--"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__42"
-
-    // $ANTLR start "T__43"
-    public final void mT__43() throws RecognitionException {
-        try {
-            int _type = T__43;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:41:7: ( '.' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:41:9: '.'
-            {
-            match('.'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__43"
-
-    // $ANTLR start "T__44"
-    public final void mT__44() throws RecognitionException {
-        try {
-            int _type = T__44;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:42:7: ( 'val' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:42:9: 'val'
-            {
-            match("val"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__44"
-
-    // $ANTLR start "T__45"
-    public final void mT__45() throws RecognitionException {
-        try {
-            int _type = T__45;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:43:7: ( 'extends' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:43:9: 'extends'
-            {
-            match("extends"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__45"
-
-    // $ANTLR start "T__46"
-    public final void mT__46() throws RecognitionException {
-        try {
-            int _type = T__46;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:44:7: ( 'static' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:44:9: 'static'
-            {
-            match("static"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__46"
-
-    // $ANTLR start "T__47"
-    public final void mT__47() throws RecognitionException {
-        try {
-            int _type = T__47;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:45:7: ( 'import' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:45:9: 'import'
-            {
-            match("import"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__47"
-
-    // $ANTLR start "T__48"
-    public final void mT__48() throws RecognitionException {
-        try {
-            int _type = T__48;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:46:7: ( 'extension' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:46:9: 'extension'
-            {
-            match("extension"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__48"
-
-    // $ANTLR start "T__49"
-    public final void mT__49() throws RecognitionException {
-        try {
-            int _type = T__49;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:47:7: ( 'super' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:47:9: 'super'
-            {
-            match("super"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__49"
-
-    // $ANTLR start "T__50"
-    public final void mT__50() throws RecognitionException {
-        try {
-            int _type = T__50;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:48:7: ( 'false' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:48:9: 'false'
-            {
-            match("false"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__50"
-
-    // $ANTLR start "T__51"
-    public final void mT__51() throws RecognitionException {
-        try {
-            int _type = T__51;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:49:7: ( 'horizontal' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:49:9: 'horizontal'
-            {
-            match("horizontal"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__51"
-
-    // $ANTLR start "T__52"
-    public final void mT__52() throws RecognitionException {
-        try {
-            int _type = T__52;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:50:7: ( 'vertical' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:50:9: 'vertical'
-            {
-            match("vertical"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__52"
-
-    // $ANTLR start "T__53"
-    public final void mT__53() throws RecognitionException {
-        try {
-            int _type = T__53;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:51:7: ( 'package' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:51:9: 'package'
-            {
-            match("package"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__53"
-
-    // $ANTLR start "T__54"
-    public final void mT__54() throws RecognitionException {
-        try {
-            int _type = T__54;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:52:7: ( '{' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:52:9: '{'
-            {
-            match('{'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__54"
-
-    // $ANTLR start "T__55"
-    public final void mT__55() throws RecognitionException {
-        try {
-            int _type = T__55;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:53:7: ( '}' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:53:9: '}'
-            {
-            match('}'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__55"
-
-    // $ANTLR start "T__56"
-    public final void mT__56() throws RecognitionException {
-        try {
-            int _type = T__56;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:54:7: ( 'perspective' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:54:9: 'perspective'
-            {
-            match("perspective"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__56"
-
-    // $ANTLR start "T__57"
-    public final void mT__57() throws RecognitionException {
-        try {
-            int _type = T__57;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:55:7: ( 'process' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:55:9: 'process'
-            {
-            match("process"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__57"
-
-    // $ANTLR start "T__58"
-    public final void mT__58() throws RecognitionException {
-        try {
-            int _type = T__58;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:56:7: ( 'usertask' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:56:9: 'usertask'
-            {
-            match("usertask"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__58"
-
-    // $ANTLR start "T__59"
-    public final void mT__59() throws RecognitionException {
-        try {
-            int _type = T__59;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:57:7: ( 'iconURI' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:57:9: 'iconURI'
-            {
-            match("iconURI"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__59"
-
-    // $ANTLR start "T__60"
-    public final void mT__60() throws RecognitionException {
-        try {
-            int _type = T__60;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:58:7: ( 'accessibility' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:58:9: 'accessibility'
-            {
-            match("accessibility"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__60"
-
-    // $ANTLR start "T__61"
-    public final void mT__61() throws RecognitionException {
-        try {
-            int _type = T__61;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:59:7: ( 'toolbar' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:59:9: 'toolbar'
-            {
-            match("toolbar"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__61"
-
-    // $ANTLR start "T__62"
-    public final void mT__62() throws RecognitionException {
-        try {
-            int _type = T__62;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:60:7: ( 'sashContainer' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:60:9: 'sashContainer'
-            {
-            match("sashContainer"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__62"
-
-    // $ANTLR start "T__63"
-    public final void mT__63() throws RecognitionException {
-        try {
-            int _type = T__63;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:61:7: ( 'orientation' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:61:9: 'orientation'
-            {
-            match("orientation"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__63"
-
-    // $ANTLR start "T__64"
-    public final void mT__64() throws RecognitionException {
-        try {
-            int _type = T__64;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:62:7: ( 'selectedElement' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:62:9: 'selectedElement'
-            {
-            match("selectedElement"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__64"
-
-    // $ANTLR start "T__65"
-    public final void mT__65() throws RecognitionException {
-        try {
-            int _type = T__65;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:63:7: ( 'spaceVolume' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:63:9: 'spaceVolume'
-            {
-            match("spaceVolume"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__65"
-
-    // $ANTLR start "T__66"
-    public final void mT__66() throws RecognitionException {
-        try {
-            int _type = T__66;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:64:7: ( 'partStack' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:64:9: 'partStack'
-            {
-            match("partStack"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__66"
-
-    // $ANTLR start "T__67"
-    public final void mT__67() throws RecognitionException {
-        try {
-            int _type = T__67;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:65:7: ( 'part' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:65:9: 'part'
-            {
-            match("part"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__67"
-
-    // $ANTLR start "T__68"
-    public final void mT__68() throws RecognitionException {
-        try {
-            int _type = T__68;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:66:7: ( 'view' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:66:9: 'view'
-            {
-            match("view"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__68"
-
-    // $ANTLR start "T__69"
-    public final void mT__69() throws RecognitionException {
-        try {
-            int _type = T__69;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:67:7: ( 'select' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:67:9: 'select'
-            {
-            match("select"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__69"
-
-    // $ANTLR start "T__70"
-    public final void mT__70() throws RecognitionException {
-        try {
-            int _type = T__70;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:68:7: ( 'table' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:68:9: 'table'
-            {
-            match("table"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__70"
-
-    // $ANTLR start "T__71"
-    public final void mT__71() throws RecognitionException {
-        try {
-            int _type = T__71;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:69:7: ( 'grid' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:69:9: 'grid'
-            {
-            match("grid"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__71"
-
-    // $ANTLR start "T__72"
-    public final void mT__72() throws RecognitionException {
-        try {
-            int _type = T__72;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:70:7: ( 'chart' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:70:9: 'chart'
-            {
-            match("chart"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__72"
-
-    // $ANTLR start "T__73"
-    public final void mT__73() throws RecognitionException {
-        try {
-            int _type = T__73;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:71:7: ( 'report' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:71:9: 'report'
-            {
-            match("report"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__73"
-
-    // $ANTLR start "T__74"
-    public final void mT__74() throws RecognitionException {
-        try {
-            int _type = T__74;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:72:7: ( 'organigram' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:72:9: 'organigram'
-            {
-            match("organigram"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__74"
-
-    // $ANTLR start "T__75"
-    public final void mT__75() throws RecognitionException {
-        try {
-            int _type = T__75;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:73:7: ( 'topology' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:73:9: 'topology'
-            {
-            match("topology"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__75"
-
-    // $ANTLR start "T__76"
-    public final void mT__76() throws RecognitionException {
-        try {
-            int _type = T__76;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:74:7: ( 'dialog' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:74:9: 'dialog'
-            {
-            match("dialog"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__76"
-
-    // $ANTLR start "T__77"
-    public final void mT__77() throws RecognitionException {
-        try {
-            int _type = T__77;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:75:7: ( 'bpmn' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:75:9: 'bpmn'
-            {
-            match("bpmn"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__77"
-
-    // $ANTLR start "T__78"
-    public final void mT__78() throws RecognitionException {
-        try {
-            int _type = T__78;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:76:7: ( '@' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:76:9: '@'
-            {
-            match('@'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__78"
-
-    // $ANTLR start "T__79"
-    public final void mT__79() throws RecognitionException {
-        try {
-            int _type = T__79;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:77:7: ( '(' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:77:9: '('
-            {
-            match('('); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__79"
-
-    // $ANTLR start "T__80"
-    public final void mT__80() throws RecognitionException {
-        try {
-            int _type = T__80;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:78:7: ( ')' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:78:9: ')'
-            {
-            match(')'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__80"
-
-    // $ANTLR start "T__81"
-    public final void mT__81() throws RecognitionException {
-        try {
-            int _type = T__81;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:79:7: ( ',' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:79:9: ','
-            {
-            match(','); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__81"
-
-    // $ANTLR start "T__82"
-    public final void mT__82() throws RecognitionException {
-        try {
-            int _type = T__82;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:80:7: ( ']' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:80:9: ']'
-            {
-            match(']'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__82"
-
-    // $ANTLR start "T__83"
-    public final void mT__83() throws RecognitionException {
-        try {
-            int _type = T__83;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:81:7: ( '#' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:81:9: '#'
-            {
-            match('#'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__83"
-
-    // $ANTLR start "T__84"
-    public final void mT__84() throws RecognitionException {
-        try {
-            int _type = T__84;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:82:7: ( '[' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:82:9: '['
-            {
-            match('['); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__84"
-
-    // $ANTLR start "T__85"
-    public final void mT__85() throws RecognitionException {
-        try {
-            int _type = T__85;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:83:7: ( 'instanceof' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:83:9: 'instanceof'
-            {
-            match("instanceof"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__85"
-
-    // $ANTLR start "T__86"
-    public final void mT__86() throws RecognitionException {
-        try {
-            int _type = T__86;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:84:7: ( 'as' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:84:9: 'as'
-            {
-            match("as"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__86"
-
-    // $ANTLR start "T__87"
-    public final void mT__87() throws RecognitionException {
-        try {
-            int _type = T__87;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:85:7: ( ';' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:85:9: ';'
-            {
-            match(';'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__87"
-
-    // $ANTLR start "T__88"
-    public final void mT__88() throws RecognitionException {
-        try {
-            int _type = T__88;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:86:7: ( 'if' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:86:9: 'if'
-            {
-            match("if"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__88"
-
-    // $ANTLR start "T__89"
-    public final void mT__89() throws RecognitionException {
-        try {
-            int _type = T__89;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:87:7: ( 'else' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:87:9: 'else'
-            {
-            match("else"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__89"
-
-    // $ANTLR start "T__90"
-    public final void mT__90() throws RecognitionException {
-        try {
-            int _type = T__90;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:88:7: ( 'switch' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:88:9: 'switch'
-            {
-            match("switch"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__90"
-
-    // $ANTLR start "T__91"
-    public final void mT__91() throws RecognitionException {
-        try {
-            int _type = T__91;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:89:7: ( ':' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:89:9: ':'
-            {
-            match(':'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__91"
-
-    // $ANTLR start "T__92"
-    public final void mT__92() throws RecognitionException {
-        try {
-            int _type = T__92;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:90:7: ( 'default' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:90:9: 'default'
-            {
-            match("default"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__92"
-
-    // $ANTLR start "T__93"
-    public final void mT__93() throws RecognitionException {
-        try {
-            int _type = T__93;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:91:7: ( 'case' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:91:9: 'case'
-            {
-            match("case"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__93"
-
-    // $ANTLR start "T__94"
-    public final void mT__94() throws RecognitionException {
-        try {
-            int _type = T__94;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:92:7: ( 'for' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:92:9: 'for'
-            {
-            match("for"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__94"
-
-    // $ANTLR start "T__95"
-    public final void mT__95() throws RecognitionException {
-        try {
-            int _type = T__95;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:93:7: ( 'while' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:93:9: 'while'
-            {
-            match("while"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__95"
-
-    // $ANTLR start "T__96"
-    public final void mT__96() throws RecognitionException {
-        try {
-            int _type = T__96;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:94:7: ( 'do' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:94:9: 'do'
-            {
-            match("do"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__96"
-
-    // $ANTLR start "T__97"
-    public final void mT__97() throws RecognitionException {
-        try {
-            int _type = T__97;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:95:7: ( 'new' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:95:9: 'new'
-            {
-            match("new"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__97"
-
-    // $ANTLR start "T__98"
-    public final void mT__98() throws RecognitionException {
-        try {
-            int _type = T__98;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:96:7: ( 'null' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:96:9: 'null'
-            {
-            match("null"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__98"
-
-    // $ANTLR start "T__99"
-    public final void mT__99() throws RecognitionException {
-        try {
-            int _type = T__99;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:97:7: ( 'typeof' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:97:9: 'typeof'
-            {
-            match("typeof"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__99"
-
-    // $ANTLR start "T__100"
-    public final void mT__100() throws RecognitionException {
-        try {
-            int _type = T__100;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:98:8: ( 'throw' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:98:10: 'throw'
-            {
-            match("throw"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__100"
-
-    // $ANTLR start "T__101"
-    public final void mT__101() throws RecognitionException {
-        try {
-            int _type = T__101;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:99:8: ( 'return' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:99:10: 'return'
-            {
-            match("return"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__101"
-
-    // $ANTLR start "T__102"
-    public final void mT__102() throws RecognitionException {
-        try {
-            int _type = T__102;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:100:8: ( 'try' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:100:10: 'try'
-            {
-            match("try"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__102"
-
-    // $ANTLR start "T__103"
-    public final void mT__103() throws RecognitionException {
-        try {
-            int _type = T__103;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:101:8: ( 'finally' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:101:10: 'finally'
-            {
-            match("finally"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__103"
-
-    // $ANTLR start "T__104"
-    public final void mT__104() throws RecognitionException {
-        try {
-            int _type = T__104;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:102:8: ( 'synchronized' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:102:10: 'synchronized'
-            {
-            match("synchronized"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__104"
-
-    // $ANTLR start "T__105"
-    public final void mT__105() throws RecognitionException {
-        try {
-            int _type = T__105;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:103:8: ( 'catch' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:103:10: 'catch'
-            {
-            match("catch"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__105"
-
-    // $ANTLR start "T__106"
-    public final void mT__106() throws RecognitionException {
-        try {
-            int _type = T__106;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:104:8: ( '?' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:104:10: '?'
-            {
-            match('?'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__106"
-
-    // $ANTLR start "T__107"
-    public final void mT__107() throws RecognitionException {
-        try {
-            int _type = T__107;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:105:8: ( '&' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:105:10: '&'
-            {
-            match('&'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__107"
-
-    // $ANTLR start "T__108"
-    public final void mT__108() throws RecognitionException {
-        try {
-            int _type = T__108;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:106:8: ( 'described by' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:106:10: 'described by'
-            {
-            match("described by"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__108"
-
-    // $ANTLR start "T__109"
-    public final void mT__109() throws RecognitionException {
-        try {
-            int _type = T__109;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:107:8: ( 'isClosable' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:107:10: 'isClosable'
-            {
-            match("isClosable"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__109"
-
-    // $ANTLR start "T__110"
-    public final void mT__110() throws RecognitionException {
-        try {
-            int _type = T__110;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:108:8: ( '::' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:108:10: '::'
-            {
-            match("::"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__110"
-
-    // $ANTLR start "T__111"
-    public final void mT__111() throws RecognitionException {
-        try {
-            int _type = T__111;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:109:8: ( '?.' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:109:10: '?.'
-            {
-            match("?."); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__111"
-
-    // $ANTLR start "T__112"
-    public final void mT__112() throws RecognitionException {
-        try {
-            int _type = T__112;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:110:8: ( '|' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:110:10: '|'
-            {
-            match('|'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__112"
-
-    // $ANTLR start "T__113"
-    public final void mT__113() throws RecognitionException {
-        try {
-            int _type = T__113;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:111:8: ( 'var' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:111:10: 'var'
-            {
-            match("var"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__113"
-
-    // $ANTLR start "T__114"
-    public final void mT__114() throws RecognitionException {
-        try {
-            int _type = T__114;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:112:8: ( 'true' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:112:10: 'true'
-            {
-            match("true"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__114"
-
-    // $ANTLR start "RULE_HEX"
-    public final void mRULE_HEX() throws RecognitionException {
-        try {
-            int _type = RULE_HEX;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:12: ( '0x' | '0X' )
-            int alt1=2;
-            int LA1_0 = input.LA(1);
-
-            if ( (LA1_0=='0') ) {
-                int LA1_1 = input.LA(2);
-
-                if ( (LA1_1=='x') ) {
-                    alt1=1;
-                }
-                else if ( (LA1_1=='X') ) {
-                    alt1=2;
-                }
-                else {
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 1, 1, input);
-
-                    throw nvae;
-                }
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 1, 0, input);
-
-                throw nvae;
-            }
-            switch (alt1) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:13: '0x'
-                    {
-                    match("0x"); 
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:18: '0X'
-                    {
-                    match("0X"); 
-
-
-                    }
-                    break;
-
-            }
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
-            int cnt2=0;
-            loop2:
-            do {
-                int alt2=2;
-                int LA2_0 = input.LA(1);
-
-                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='F')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='f')) ) {
-                    alt2=1;
-                }
-
-
-                switch (alt2) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:
-            	    {
-            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt2 >= 1 ) break loop2;
-                        EarlyExitException eee =
-                            new EarlyExitException(2, input);
-                        throw eee;
-                }
-                cnt2++;
-            } while (true);
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
-            int alt4=2;
-            int LA4_0 = input.LA(1);
-
-            if ( (LA4_0=='#') ) {
-                alt4=1;
-            }
-            switch (alt4) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
-                    {
-                    match('#'); 
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
-                    int alt3=2;
-                    int LA3_0 = input.LA(1);
-
-                    if ( (LA3_0=='B'||LA3_0=='b') ) {
-                        alt3=1;
-                    }
-                    else if ( (LA3_0=='L'||LA3_0=='l') ) {
-                        alt3=2;
-                    }
-                    else {
-                        NoViableAltException nvae =
-                            new NoViableAltException("", 3, 0, input);
-
-                        throw nvae;
-                    }
-                    switch (alt3) {
-                        case 1 :
-                            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:64: ( 'b' | 'B' ) ( 'i' | 'I' )
-                            {
-                            if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
-                                input.consume();
-
-                            }
-                            else {
-                                MismatchedSetException mse = new MismatchedSetException(null,input);
-                                recover(mse);
-                                throw mse;}
-
-                            if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
-                                input.consume();
-
-                            }
-                            else {
-                                MismatchedSetException mse = new MismatchedSetException(null,input);
-                                recover(mse);
-                                throw mse;}
-
-
-                            }
-                            break;
-                        case 2 :
-                            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26329:84: ( 'l' | 'L' )
-                            {
-                            if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
-                                input.consume();
-
-                            }
-                            else {
-                                MismatchedSetException mse = new MismatchedSetException(null,input);
-                                recover(mse);
-                                throw mse;}
-
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_HEX"
-
-    // $ANTLR start "RULE_INT"
-    public final void mRULE_INT() throws RecognitionException {
-        try {
-            int _type = RULE_INT;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26331:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26331:12: '0' .. '9' ( '0' .. '9' | '_' )*
-            {
-            matchRange('0','9'); 
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26331:21: ( '0' .. '9' | '_' )*
-            loop5:
-            do {
-                int alt5=2;
-                int LA5_0 = input.LA(1);
-
-                if ( ((LA5_0>='0' && LA5_0<='9')||LA5_0=='_') ) {
-                    alt5=1;
-                }
-
-
-                switch (alt5) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:
-            	    {
-            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop5;
-                }
-            } while (true);
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_INT"
-
-    // $ANTLR start "RULE_DECIMAL"
-    public final void mRULE_DECIMAL() throws RecognitionException {
-        try {
-            int _type = RULE_DECIMAL;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
-            {
-            mRULE_INT(); 
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
-            int alt7=2;
-            int LA7_0 = input.LA(1);
-
-            if ( (LA7_0=='E'||LA7_0=='e') ) {
-                alt7=1;
-            }
-            switch (alt7) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
-                    {
-                    if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse = new MismatchedSetException(null,input);
-                        recover(mse);
-                        throw mse;}
-
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333:36: ( '+' | '-' )?
-                    int alt6=2;
-                    int LA6_0 = input.LA(1);
-
-                    if ( (LA6_0=='+'||LA6_0=='-') ) {
-                        alt6=1;
-                    }
-                    switch (alt6) {
-                        case 1 :
-                            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:
-                            {
-                            if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
-                                input.consume();
-
-                            }
-                            else {
-                                MismatchedSetException mse = new MismatchedSetException(null,input);
-                                recover(mse);
-                                throw mse;}
-
-
-                            }
-                            break;
-
-                    }
-
-                    mRULE_INT(); 
-
-                    }
-                    break;
-
-            }
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
-            int alt8=3;
-            int LA8_0 = input.LA(1);
-
-            if ( (LA8_0=='B'||LA8_0=='b') ) {
-                alt8=1;
-            }
-            else if ( (LA8_0=='D'||LA8_0=='F'||LA8_0=='L'||LA8_0=='d'||LA8_0=='f'||LA8_0=='l') ) {
-                alt8=2;
-            }
-            switch (alt8) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
-                    {
-                    if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse = new MismatchedSetException(null,input);
-                        recover(mse);
-                        throw mse;}
-
-                    if ( input.LA(1)=='D'||input.LA(1)=='I'||input.LA(1)=='d'||input.LA(1)=='i' ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse = new MismatchedSetException(null,input);
-                        recover(mse);
-                        throw mse;}
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26333: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();
-
-                    }
-                    else {
-                        MismatchedSetException mse = new MismatchedSetException(null,input);
-                        recover(mse);
-                        throw mse;}
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_DECIMAL"
-
-    // $ANTLR start "RULE_ID"
-    public final void mRULE_ID() throws RecognitionException {
-        try {
-            int _type = RULE_ID;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26335:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26335:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26335:11: ( '^' )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
-
-            if ( (LA9_0=='^') ) {
-                alt9=1;
-            }
-            switch (alt9) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26335:11: '^'
-                    {
-                    match('^'); 
-
-                    }
-                    break;
-
-            }
-
-            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                recover(mse);
-                throw mse;}
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26335:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
-            loop10:
-            do {
-                int alt10=2;
-                int LA10_0 = input.LA(1);
-
-                if ( (LA10_0=='$'||(LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='a' && LA10_0<='z')) ) {
-                    alt10=1;
-                }
-
-
-                switch (alt10) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:
-            	    {
-            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop10;
-                }
-            } while (true);
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_ID"
-
-    // $ANTLR start "RULE_STRING"
-    public final void mRULE_STRING() throws RecognitionException {
-        try {
-            int _type = RULE_STRING;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
-            int alt15=2;
-            int LA15_0 = input.LA(1);
-
-            if ( (LA15_0=='\"') ) {
-                alt15=1;
-            }
-            else if ( (LA15_0=='\'') ) {
-                alt15=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 15, 0, input);
-
-                throw nvae;
-            }
-            switch (alt15) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
-                    {
-                    match('\"'); 
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
-                    loop11:
-                    do {
-                        int alt11=3;
-                        int LA11_0 = input.LA(1);
-
-                        if ( (LA11_0=='\\') ) {
-                            alt11=1;
-                        }
-                        else if ( ((LA11_0>='\u0000' && LA11_0<='!')||(LA11_0>='#' && LA11_0<='[')||(LA11_0>=']' && LA11_0<='\uFFFF')) ) {
-                            alt11=2;
-                        }
-
-
-                        switch (alt11) {
-                    	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:21: '\\\\' .
-                    	    {
-                    	    match('\\'); 
-                    	    matchAny(); 
-
-                    	    }
-                    	    break;
-                    	case 2 :
-                    	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:28: ~ ( ( '\\\\' | '\"' ) )
-                    	    {
-                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
-                    	        input.consume();
-
-                    	    }
-                    	    else {
-                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
-                    	        recover(mse);
-                    	        throw mse;}
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop11;
-                        }
-                    } while (true);
-
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:44: ( '\"' )?
-                    int alt12=2;
-                    int LA12_0 = input.LA(1);
-
-                    if ( (LA12_0=='\"') ) {
-                        alt12=1;
-                    }
-                    switch (alt12) {
-                        case 1 :
-                            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:44: '\"'
-                            {
-                            match('\"'); 
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
-                    {
-                    match('\''); 
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
-                    loop13:
-                    do {
-                        int alt13=3;
-                        int LA13_0 = input.LA(1);
-
-                        if ( (LA13_0=='\\') ) {
-                            alt13=1;
-                        }
-                        else if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='[')||(LA13_0>=']' && LA13_0<='\uFFFF')) ) {
-                            alt13=2;
-                        }
-
-
-                        switch (alt13) {
-                    	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:55: '\\\\' .
-                    	    {
-                    	    match('\\'); 
-                    	    matchAny(); 
-
-                    	    }
-                    	    break;
-                    	case 2 :
-                    	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:62: ~ ( ( '\\\\' | '\\'' ) )
-                    	    {
-                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
-                    	        input.consume();
-
-                    	    }
-                    	    else {
-                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
-                    	        recover(mse);
-                    	        throw mse;}
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop13;
-                        }
-                    } while (true);
-
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:79: ( '\\'' )?
-                    int alt14=2;
-                    int LA14_0 = input.LA(1);
-
-                    if ( (LA14_0=='\'') ) {
-                        alt14=1;
-                    }
-                    switch (alt14) {
-                        case 1 :
-                            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26337:79: '\\''
-                            {
-                            match('\''); 
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_STRING"
-
-    // $ANTLR start "RULE_ML_COMMENT"
-    public final void mRULE_ML_COMMENT() throws RecognitionException {
-        try {
-            int _type = RULE_ML_COMMENT;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26339:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26339:19: '/*' ( options {greedy=false; } : . )* '*/'
-            {
-            match("/*"); 
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26339:24: ( options {greedy=false; } : . )*
-            loop16:
-            do {
-                int alt16=2;
-                int LA16_0 = input.LA(1);
-
-                if ( (LA16_0=='*') ) {
-                    int LA16_1 = input.LA(2);
-
-                    if ( (LA16_1=='/') ) {
-                        alt16=2;
-                    }
-                    else if ( ((LA16_1>='\u0000' && LA16_1<='.')||(LA16_1>='0' && LA16_1<='\uFFFF')) ) {
-                        alt16=1;
-                    }
-
-
-                }
-                else if ( ((LA16_0>='\u0000' && LA16_0<=')')||(LA16_0>='+' && LA16_0<='\uFFFF')) ) {
-                    alt16=1;
-                }
-
-
-                switch (alt16) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26339:52: .
-            	    {
-            	    matchAny(); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop16;
-                }
-            } while (true);
-
-            match("*/"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_ML_COMMENT"
-
-    // $ANTLR start "RULE_SL_COMMENT"
-    public final void mRULE_SL_COMMENT() throws RecognitionException {
-        try {
-            int _type = RULE_SL_COMMENT;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
-            {
-            match("//"); 
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341:24: (~ ( ( '\\n' | '\\r' ) ) )*
-            loop17:
-            do {
-                int alt17=2;
-                int LA17_0 = input.LA(1);
-
-                if ( ((LA17_0>='\u0000' && LA17_0<='\t')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\uFFFF')) ) {
-                    alt17=1;
-                }
-
-
-                switch (alt17) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341: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();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop17;
-                }
-            } while (true);
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341:40: ( ( '\\r' )? '\\n' )?
-            int alt19=2;
-            int LA19_0 = input.LA(1);
-
-            if ( (LA19_0=='\n'||LA19_0=='\r') ) {
-                alt19=1;
-            }
-            switch (alt19) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341:41: ( '\\r' )? '\\n'
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341:41: ( '\\r' )?
-                    int alt18=2;
-                    int LA18_0 = input.LA(1);
-
-                    if ( (LA18_0=='\r') ) {
-                        alt18=1;
-                    }
-                    switch (alt18) {
-                        case 1 :
-                            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26341:41: '\\r'
-                            {
-                            match('\r'); 
-
-                            }
-                            break;
-
-                    }
-
-                    match('\n'); 
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_SL_COMMENT"
-
-    // $ANTLR start "RULE_WS"
-    public final void mRULE_WS() throws RecognitionException {
-        try {
-            int _type = RULE_WS;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26343:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26343:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26343:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
-            int cnt20=0;
-            loop20:
-            do {
-                int alt20=2;
-                int LA20_0 = input.LA(1);
-
-                if ( ((LA20_0>='\t' && LA20_0<='\n')||LA20_0=='\r'||LA20_0==' ') ) {
-                    alt20=1;
-                }
-
-
-                switch (alt20) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:
-            	    {
-            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt20 >= 1 ) break loop20;
-                        EarlyExitException eee =
-                            new EarlyExitException(20, input);
-                        throw eee;
-                }
-                cnt20++;
-            } while (true);
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_WS"
-
-    // $ANTLR start "RULE_ANY_OTHER"
-    public final void mRULE_ANY_OTHER() throws RecognitionException {
-        try {
-            int _type = RULE_ANY_OTHER;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26345:16: ( . )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:26345:18: .
-            {
-            matchAny(); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "RULE_ANY_OTHER"
-
-    public void mTokens() throws RecognitionException {
-        // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=111;
-        alt21 = dfa21.predict(input);
-        switch (alt21) {
-            case 1 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:10: T__13
-                {
-                mT__13(); 
-
-                }
-                break;
-            case 2 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:16: T__14
-                {
-                mT__14(); 
-
-                }
-                break;
-            case 3 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:22: T__15
-                {
-                mT__15(); 
-
-                }
-                break;
-            case 4 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:28: T__16
-                {
-                mT__16(); 
-
-                }
-                break;
-            case 5 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:34: T__17
-                {
-                mT__17(); 
-
-                }
-                break;
-            case 6 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:40: T__18
-                {
-                mT__18(); 
-
-                }
-                break;
-            case 7 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:46: T__19
-                {
-                mT__19(); 
-
-                }
-                break;
-            case 8 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:52: T__20
-                {
-                mT__20(); 
-
-                }
-                break;
-            case 9 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:58: T__21
-                {
-                mT__21(); 
-
-                }
-                break;
-            case 10 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:64: T__22
-                {
-                mT__22(); 
-
-                }
-                break;
-            case 11 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:70: T__23
-                {
-                mT__23(); 
-
-                }
-                break;
-            case 12 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:76: T__24
-                {
-                mT__24(); 
-
-                }
-                break;
-            case 13 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:82: T__25
-                {
-                mT__25(); 
-
-                }
-                break;
-            case 14 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:88: T__26
-                {
-                mT__26(); 
-
-                }
-                break;
-            case 15 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:94: T__27
-                {
-                mT__27(); 
-
-                }
-                break;
-            case 16 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:100: T__28
-                {
-                mT__28(); 
-
-                }
-                break;
-            case 17 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:106: T__29
-                {
-                mT__29(); 
-
-                }
-                break;
-            case 18 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:112: T__30
-                {
-                mT__30(); 
-
-                }
-                break;
-            case 19 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:118: T__31
-                {
-                mT__31(); 
-
-                }
-                break;
-            case 20 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:124: T__32
-                {
-                mT__32(); 
-
-                }
-                break;
-            case 21 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:130: T__33
-                {
-                mT__33(); 
-
-                }
-                break;
-            case 22 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:136: T__34
-                {
-                mT__34(); 
-
-                }
-                break;
-            case 23 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:142: T__35
-                {
-                mT__35(); 
-
-                }
-                break;
-            case 24 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:148: T__36
-                {
-                mT__36(); 
-
-                }
-                break;
-            case 25 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:154: T__37
-                {
-                mT__37(); 
-
-                }
-                break;
-            case 26 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:160: T__38
-                {
-                mT__38(); 
-
-                }
-                break;
-            case 27 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:166: T__39
-                {
-                mT__39(); 
-
-                }
-                break;
-            case 28 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:172: T__40
-                {
-                mT__40(); 
-
-                }
-                break;
-            case 29 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:178: T__41
-                {
-                mT__41(); 
-
-                }
-                break;
-            case 30 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:184: T__42
-                {
-                mT__42(); 
-
-                }
-                break;
-            case 31 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:190: T__43
-                {
-                mT__43(); 
-
-                }
-                break;
-            case 32 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:196: T__44
-                {
-                mT__44(); 
-
-                }
-                break;
-            case 33 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:202: T__45
-                {
-                mT__45(); 
-
-                }
-                break;
-            case 34 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:208: T__46
-                {
-                mT__46(); 
-
-                }
-                break;
-            case 35 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:214: T__47
-                {
-                mT__47(); 
-
-                }
-                break;
-            case 36 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:220: T__48
-                {
-                mT__48(); 
-
-                }
-                break;
-            case 37 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:226: T__49
-                {
-                mT__49(); 
-
-                }
-                break;
-            case 38 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:232: T__50
-                {
-                mT__50(); 
-
-                }
-                break;
-            case 39 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:238: T__51
-                {
-                mT__51(); 
-
-                }
-                break;
-            case 40 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:244: T__52
-                {
-                mT__52(); 
-
-                }
-                break;
-            case 41 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:250: T__53
-                {
-                mT__53(); 
-
-                }
-                break;
-            case 42 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:256: T__54
-                {
-                mT__54(); 
-
-                }
-                break;
-            case 43 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:262: T__55
-                {
-                mT__55(); 
-
-                }
-                break;
-            case 44 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:268: T__56
-                {
-                mT__56(); 
-
-                }
-                break;
-            case 45 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:274: T__57
-                {
-                mT__57(); 
-
-                }
-                break;
-            case 46 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:280: T__58
-                {
-                mT__58(); 
-
-                }
-                break;
-            case 47 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:286: T__59
-                {
-                mT__59(); 
-
-                }
-                break;
-            case 48 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:292: T__60
-                {
-                mT__60(); 
-
-                }
-                break;
-            case 49 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:298: T__61
-                {
-                mT__61(); 
-
-                }
-                break;
-            case 50 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:304: T__62
-                {
-                mT__62(); 
-
-                }
-                break;
-            case 51 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:310: T__63
-                {
-                mT__63(); 
-
-                }
-                break;
-            case 52 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:316: T__64
-                {
-                mT__64(); 
-
-                }
-                break;
-            case 53 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:322: T__65
-                {
-                mT__65(); 
-
-                }
-                break;
-            case 54 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:328: T__66
-                {
-                mT__66(); 
-
-                }
-                break;
-            case 55 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:334: T__67
-                {
-                mT__67(); 
-
-                }
-                break;
-            case 56 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:340: T__68
-                {
-                mT__68(); 
-
-                }
-                break;
-            case 57 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:346: T__69
-                {
-                mT__69(); 
-
-                }
-                break;
-            case 58 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:352: T__70
-                {
-                mT__70(); 
-
-                }
-                break;
-            case 59 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:358: T__71
-                {
-                mT__71(); 
-
-                }
-                break;
-            case 60 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:364: T__72
-                {
-                mT__72(); 
-
-                }
-                break;
-            case 61 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:370: T__73
-                {
-                mT__73(); 
-
-                }
-                break;
-            case 62 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:376: T__74
-                {
-                mT__74(); 
-
-                }
-                break;
-            case 63 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:382: T__75
-                {
-                mT__75(); 
-
-                }
-                break;
-            case 64 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:388: T__76
-                {
-                mT__76(); 
-
-                }
-                break;
-            case 65 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:394: T__77
-                {
-                mT__77(); 
-
-                }
-                break;
-            case 66 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:400: T__78
-                {
-                mT__78(); 
-
-                }
-                break;
-            case 67 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:406: T__79
-                {
-                mT__79(); 
-
-                }
-                break;
-            case 68 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:412: T__80
-                {
-                mT__80(); 
-
-                }
-                break;
-            case 69 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:418: T__81
-                {
-                mT__81(); 
-
-                }
-                break;
-            case 70 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:424: T__82
-                {
-                mT__82(); 
-
-                }
-                break;
-            case 71 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:430: T__83
-                {
-                mT__83(); 
-
-                }
-                break;
-            case 72 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:436: T__84
-                {
-                mT__84(); 
-
-                }
-                break;
-            case 73 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:442: T__85
-                {
-                mT__85(); 
-
-                }
-                break;
-            case 74 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:448: T__86
-                {
-                mT__86(); 
-
-                }
-                break;
-            case 75 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:454: T__87
-                {
-                mT__87(); 
-
-                }
-                break;
-            case 76 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:460: T__88
-                {
-                mT__88(); 
-
-                }
-                break;
-            case 77 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:466: T__89
-                {
-                mT__89(); 
-
-                }
-                break;
-            case 78 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:472: T__90
-                {
-                mT__90(); 
-
-                }
-                break;
-            case 79 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:478: T__91
-                {
-                mT__91(); 
-
-                }
-                break;
-            case 80 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:484: T__92
-                {
-                mT__92(); 
-
-                }
-                break;
-            case 81 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:490: T__93
-                {
-                mT__93(); 
-
-                }
-                break;
-            case 82 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:496: T__94
-                {
-                mT__94(); 
-
-                }
-                break;
-            case 83 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:502: T__95
-                {
-                mT__95(); 
-
-                }
-                break;
-            case 84 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:508: T__96
-                {
-                mT__96(); 
-
-                }
-                break;
-            case 85 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:514: T__97
-                {
-                mT__97(); 
-
-                }
-                break;
-            case 86 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:520: T__98
-                {
-                mT__98(); 
-
-                }
-                break;
-            case 87 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:526: T__99
-                {
-                mT__99(); 
-
-                }
-                break;
-            case 88 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:532: T__100
-                {
-                mT__100(); 
-
-                }
-                break;
-            case 89 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:539: T__101
-                {
-                mT__101(); 
-
-                }
-                break;
-            case 90 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:546: T__102
-                {
-                mT__102(); 
-
-                }
-                break;
-            case 91 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:553: T__103
-                {
-                mT__103(); 
-
-                }
-                break;
-            case 92 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:560: T__104
-                {
-                mT__104(); 
-
-                }
-                break;
-            case 93 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:567: T__105
-                {
-                mT__105(); 
-
-                }
-                break;
-            case 94 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:574: T__106
-                {
-                mT__106(); 
-
-                }
-                break;
-            case 95 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:581: T__107
-                {
-                mT__107(); 
-
-                }
-                break;
-            case 96 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:588: T__108
-                {
-                mT__108(); 
-
-                }
-                break;
-            case 97 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:595: T__109
-                {
-                mT__109(); 
-
-                }
-                break;
-            case 98 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:602: T__110
-                {
-                mT__110(); 
-
-                }
-                break;
-            case 99 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:609: T__111
-                {
-                mT__111(); 
-
-                }
-                break;
-            case 100 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:616: T__112
-                {
-                mT__112(); 
-
-                }
-                break;
-            case 101 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:623: T__113
-                {
-                mT__113(); 
-
-                }
-                break;
-            case 102 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:630: T__114
-                {
-                mT__114(); 
-
-                }
-                break;
-            case 103 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:637: RULE_HEX
-                {
-                mRULE_HEX(); 
-
-                }
-                break;
-            case 104 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:646: RULE_INT
-                {
-                mRULE_INT(); 
-
-                }
-                break;
-            case 105 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:655: RULE_DECIMAL
-                {
-                mRULE_DECIMAL(); 
-
-                }
-                break;
-            case 106 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:668: RULE_ID
-                {
-                mRULE_ID(); 
-
-                }
-                break;
-            case 107 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:676: RULE_STRING
-                {
-                mRULE_STRING(); 
-
-                }
-                break;
-            case 108 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:688: RULE_ML_COMMENT
-                {
-                mRULE_ML_COMMENT(); 
-
-                }
-                break;
-            case 109 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:704: RULE_SL_COMMENT
-                {
-                mRULE_SL_COMMENT(); 
-
-                }
-                break;
-            case 110 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:720: RULE_WS
-                {
-                mRULE_WS(); 
-
-                }
-                break;
-            case 111 :
-                // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1:728: RULE_ANY_OTHER
-                {
-                mRULE_ANY_OTHER(); 
-
-                }
-                break;
-
-        }
-
-    }
-
-
-    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\11\130\10\uffff\1\u008a\2\130\2"+
-        "\u0090\1\62\5\uffff\1\u0095\26\uffff\1\u0097\5\uffff\1\u0099\4\uffff"+
-        "\3\130\1\uffff\14\130\1\u00aa\10\130\2\uffff\2\130\1\u00b6\14\130"+
-        "\1\u00c9\1\130\12\uffff\3\130\1\uffff\1\u0090\12\uffff\1\u00ce\1"+
-        "\u00cf\16\130\1\uffff\2\130\1\u00e0\10\130\1\uffff\5\130\1\u00ee"+
-        "\14\130\1\uffff\2\130\1\u00fd\1\130\2\uffff\1\130\1\u0100\1\130"+
-        "\1\u0102\14\130\1\uffff\3\130\1\u0113\11\130\1\uffff\1\u011d\2\130"+
-        "\1\u0120\1\130\1\u0122\6\130\1\u0129\1\130\1\uffff\1\u012b\1\130"+
-        "\1\uffff\1\130\1\uffff\1\130\1\u0130\11\130\1\u013a\4\130\1\uffff"+
-        "\6\130\1\u0145\1\130\1\u0147\1\uffff\2\130\1\uffff\1\u014a\1\uffff"+
-        "\1\u014b\5\130\1\uffff\1\u0151\1\uffff\3\130\1\u0155\1\uffff\1\130"+
-        "\1\u0158\1\130\1\u015a\1\130\1\u015c\3\130\1\uffff\12\130\1\uffff"+
-        "\1\u016a\1\uffff\2\130\2\uffff\1\u016d\1\u016e\1\u016f\2\130\1\uffff"+
-        "\1\130\1\u0173\1\130\1\uffff\2\130\1\uffff\1\130\1\uffff\1\130\1"+
-        "\uffff\1\u0179\2\130\1\u017c\1\130\1\u017e\2\130\1\u0181\2\130\1"+
-        "\u0184\1\130\1\uffff\2\130\3\uffff\1\u0188\1\130\1\u018a\1\uffff"+
-        "\5\130\1\uffff\2\130\1\uffff\1\130\1\uffff\2\130\1\uffff\1\u0195"+
-        "\1\130\1\uffff\1\u0197\2\130\1\uffff\1\130\1\uffff\1\u019b\7\130"+
-        "\1\u01a3\1\130\1\uffff\1\130\1\uffff\3\130\1\uffff\4\130\1\u01ad"+
-        "\1\u01ae\1\u01af\1\uffff\3\130\1\u01b3\1\uffff\2\130\1\u01b6\1\130"+
-        "\3\uffff\1\u01b8\1\130\1\u01ba\1\uffff\2\130\1\uffff\1\u01bd\1\uffff"+
-        "\1\130\1\uffff\1\u01bf\1\130\1\uffff\1\u01c1\1\uffff\1\130\1\uffff"+
-        "\1\u01c3\1\uffff";
-    static final String DFA21_eofS =
-        "\u01c4\uffff";
-    static final String DFA21_minS =
-        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\154"+
-        "\1\141\1\143\1\141\1\157\1\141\2\uffff\1\163\1\143\1\141\2\162\1"+
-        "\141\2\145\1\160\10\uffff\1\72\1\150\1\145\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\163\1\141\1\160\1\163\1\154\1\141\1\151\1\156\1\160\1\157"+
-        "\1\163\1\44\1\103\1\154\1\162\1\156\1\162\1\143\1\162\1\157\2\uffff"+
-        "\1\145\1\143\1\44\1\157\1\142\1\160\1\162\1\165\1\147\1\151\1\141"+
-        "\1\163\1\160\1\141\1\146\1\44\1\155\12\uffff\1\151\1\167\1\154\1"+
-        "\uffff\1\60\12\uffff\2\44\1\164\1\167\2\145\1\164\1\145\1\150\1"+
-        "\145\1\143\1\164\1\143\1\157\1\156\1\164\1\uffff\1\154\1\163\1\44"+
-        "\1\141\1\151\1\153\1\164\1\163\1\143\1\162\1\145\1\uffff\1\154\1"+
-        "\157\1\154\1\145\1\157\1\44\2\145\1\141\1\144\1\162\1\145\1\143"+
-        "\1\157\1\165\1\154\1\141\1\143\1\uffff\1\156\1\154\1\44\1\154\2"+
-        "\uffff\1\151\1\44\1\156\1\44\1\151\1\162\1\103\1\143\1\145\1\143"+
-        "\1\150\1\162\1\125\1\141\1\157\1\145\1\uffff\1\154\1\172\1\141\1"+
-        "\44\1\160\1\145\1\164\1\163\1\142\1\154\1\145\1\157\1\167\1\uffff"+
-        "\1\44\2\156\1\44\1\164\1\44\1\150\2\162\1\157\1\165\1\162\1\44\1"+
-        "\145\1\uffff\1\44\1\143\1\uffff\1\144\1\uffff\1\143\1\44\1\157\1"+
-        "\164\1\126\1\150\1\162\1\164\1\122\1\156\1\163\1\44\1\154\1\157"+
-        "\1\147\1\164\1\uffff\1\145\1\163\1\141\1\163\1\141\1\157\1\44\1"+
-        "\146\1\44\1\uffff\1\164\1\151\1\uffff\1\44\1\uffff\1\44\1\164\1"+
-        "\156\1\147\1\154\1\151\1\uffff\1\44\1\uffff\1\141\1\163\1\151\1"+
-        "\44\1\uffff\1\156\1\44\1\157\1\44\1\157\1\44\1\111\1\143\1\141\1"+
-        "\uffff\1\171\1\156\1\145\1\141\1\143\2\163\1\151\1\162\1\147\1\uffff"+
-        "\1\44\1\uffff\1\141\1\147\2\uffff\3\44\1\164\1\142\1\uffff\1\154"+
-        "\1\44\1\157\1\uffff\1\164\1\144\1\uffff\1\154\1\uffff\1\156\1\uffff"+
-        "\1\44\1\145\1\142\1\44\1\164\1\44\1\143\1\164\1\44\1\153\1\142\1"+
-        "\44\1\171\1\uffff\1\164\1\162\3\uffff\1\44\1\145\1\44\1\uffff\1"+
-        "\156\1\141\1\105\1\165\1\151\1\uffff\1\157\1\154\1\uffff\1\141\1"+
-        "\uffff\1\153\1\151\1\uffff\1\44\1\151\1\uffff\1\44\1\151\1\141\1"+
-        "\uffff\1\144\1\uffff\1\44\1\151\1\154\1\155\1\172\1\146\1\145\1"+
-        "\154\1\44\1\166\1\uffff\1\154\1\uffff\1\157\1\155\1\40\1\uffff\1"+
-        "\156\3\145\3\44\1\uffff\1\145\1\151\1\156\1\44\1\uffff\1\145\1\155"+
-        "\1\44\1\144\3\uffff\1\44\1\164\1\44\1\uffff\1\162\1\145\1\uffff"+
-        "\1\44\1\uffff\1\171\1\uffff\1\44\1\156\1\uffff\1\44\1\uffff\1\164"+
-        "\1\uffff\1\44\1\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\2\162\1\150\1\145"+
-        "\1\157\1\160\10\uffff\1\72\1\150\1\165\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\163\1\141\1\160\1\163\1\154\1\141\1\151\1\156\1\160\1\157\1\163"+
-        "\1\172\1\103\1\154\1\162\1\156\3\162\1\157\2\uffff\1\145\1\143\1"+
-        "\172\1\160\1\142\1\160\1\162\1\171\2\151\1\141\2\164\1\141\1\163"+
-        "\1\172\1\155\12\uffff\1\151\1\167\1\154\1\uffff\1\154\12\uffff\2"+
-        "\172\1\164\1\167\2\145\1\164\1\145\1\150\1\145\1\143\1\164\1\143"+
-        "\1\157\1\156\1\164\1\uffff\1\154\1\163\1\172\1\141\1\151\1\153\1"+
-        "\164\1\163\1\143\1\162\1\145\1\uffff\1\154\1\157\1\154\1\145\1\157"+
-        "\1\172\2\145\1\141\1\144\1\162\1\145\1\143\1\157\1\165\1\154\1\141"+
-        "\1\143\1\uffff\1\156\1\154\1\172\1\154\2\uffff\1\151\1\172\1\156"+
-        "\1\172\1\151\1\162\1\103\1\143\1\145\1\143\1\150\1\162\1\125\1\141"+
-        "\1\157\1\145\1\uffff\1\154\1\172\1\141\1\172\1\160\1\145\1\164\1"+
-        "\163\1\142\1\154\1\145\1\157\1\167\1\uffff\1\172\2\156\1\172\1\164"+
-        "\1\172\1\150\2\162\1\157\1\165\1\162\1\172\1\145\1\uffff\1\172\1"+
-        "\143\1\uffff\1\163\1\uffff\1\143\1\172\1\157\1\164\1\126\1\150\1"+
-        "\162\1\164\1\122\1\156\1\163\1\172\1\154\1\157\1\147\1\164\1\uffff"+
-        "\1\145\1\163\1\141\1\163\1\141\1\157\1\172\1\146\1\172\1\uffff\1"+
-        "\164\1\151\1\uffff\1\172\1\uffff\1\172\1\164\1\156\1\147\1\154\1"+
-        "\151\1\uffff\1\172\1\uffff\1\141\1\163\1\151\1\172\1\uffff\1\156"+
-        "\1\172\1\157\1\172\1\157\1\172\1\111\1\143\1\141\1\uffff\1\171\1"+
-        "\156\1\145\1\141\1\143\2\163\1\151\1\162\1\147\1\uffff\1\172\1\uffff"+
-        "\1\141\1\147\2\uffff\3\172\1\164\1\142\1\uffff\1\154\1\172\1\157"+
-        "\1\uffff\1\164\1\144\1\uffff\1\154\1\uffff\1\156\1\uffff\1\172\1"+
-        "\145\1\142\1\172\1\164\1\172\1\143\1\164\1\172\1\153\1\142\1\172"+
-        "\1\171\1\uffff\1\164\1\162\3\uffff\1\172\1\145\1\172\1\uffff\1\156"+
-        "\1\141\1\105\1\165\1\151\1\uffff\1\157\1\154\1\uffff\1\141\1\uffff"+
-        "\1\153\1\151\1\uffff\1\172\1\151\1\uffff\1\172\1\151\1\141\1\uffff"+
-        "\1\144\1\uffff\1\172\1\151\1\154\1\155\1\172\1\146\1\145\1\154\1"+
-        "\172\1\166\1\uffff\1\154\1\uffff\1\157\1\155\1\40\1\uffff\1\156"+
-        "\3\145\3\172\1\uffff\1\145\1\151\1\156\1\172\1\uffff\1\145\1\155"+
-        "\1\172\1\144\3\uffff\1\172\1\164\1\172\1\uffff\1\162\1\145\1\uffff"+
-        "\1\172\1\uffff\1\171\1\uffff\1\172\1\156\1\uffff\1\172\1\uffff\1"+
-        "\164\1\uffff\1\172\1\uffff";
-    static final String DFA21_acceptS =
-        "\25\uffff\1\52\1\53\11\uffff\1\102\1\103\1\104\1\105\1\106\1\107"+
-        "\1\110\1\113\6\uffff\1\152\2\153\1\156\1\157\1\uffff\1\23\1\1\1"+
-        "\2\1\144\1\3\1\137\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30"+
-        "\1\7\1\154\1\155\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\143\1\136\3\uffff\1\152\25\uffff\1\52\1\53"+
-        "\21\uffff\1\102\1\103\1\104\1\105\1\106\1\107\1\110\1\113\1\142"+
-        "\1\117\3\uffff\1\147\1\uffff\1\150\1\151\1\153\1\156\1\13\1\11\1"+
-        "\14\1\12\1\21\1\22\20\uffff\1\114\13\uffff\1\112\22\uffff\1\124"+
-        "\4\uffff\1\40\1\145\20\uffff\1\122\15\uffff\1\132\16\uffff\1\125"+
-        "\2\uffff\1\70\1\uffff\1\115\20\uffff\1\67\11\uffff\1\146\2\uffff"+
-        "\1\73\1\uffff\1\121\6\uffff\1\101\1\uffff\1\126\4\uffff\1\45\11"+
-        "\uffff\1\46\12\uffff\1\72\1\uffff\1\130\2\uffff\1\74\1\135\5\uffff"+
-        "\1\123\3\uffff\1\42\2\uffff\1\71\1\uffff\1\116\1\uffff\1\43\15\uffff"+
-        "\1\127\2\uffff\1\75\1\131\1\100\3\uffff\1\41\5\uffff\1\57\2\uffff"+
-        "\1\133\1\uffff\1\51\2\uffff\1\55\2\uffff\1\61\3\uffff\1\120\1\uffff"+
-        "\1\50\12\uffff\1\56\1\uffff\1\77\3\uffff\1\44\7\uffff\1\66\4\uffff"+
-        "\1\140\4\uffff\1\111\1\141\1\47\3\uffff\1\76\2\uffff\1\65\1\uffff"+
-        "\1\54\1\uffff\1\63\2\uffff\1\134\1\uffff\1\62\1\uffff\1\60\1\uffff"+
-        "\1\64";
-    static final String DFA21_specialS =
-        "\1\0\u01c3\uffff}>";
-    static final String[] DFA21_transitionS = {
-            "\11\62\2\61\2\62\1\61\22\62\1\61\1\11\1\57\1\45\1\56\1\10\1"+
-            "\3\1\60\1\41\1\42\1\6\1\4\1\43\1\5\1\14\1\7\1\53\11\54\1\50"+
-            "\1\47\1\13\1\1\1\12\1\15\1\40\32\56\1\46\1\62\1\44\1\55\1\56"+
-            "\1\62\1\30\1\37\1\34\1\36\1\17\1\22\1\33\1\23\1\21\4\56\1\52"+
-            "\1\32\1\24\1\56\1\35\1\20\1\31\1\27\1\16\1\51\3\56\1\25\1\2"+
-            "\1\26\uff82\62",
-            "\1\63\1\64",
-            "\1\66",
-            "\1\70",
-            "\1\73\21\uffff\1\72",
-            "\1\77\17\uffff\1\75\1\76",
-            "\1\102\22\uffff\1\101",
-            "\1\105\4\uffff\1\106\15\uffff\1\104",
-            "\1\110",
-            "\1\112",
-            "\1\114",
-            "\1\116",
-            "\1\120",
-            "\1\123\13\uffff\1\122",
-            "\1\125\3\uffff\1\126\3\uffff\1\127",
-            "\1\132\13\uffff\1\131",
-            "\1\135\3\uffff\1\136\12\uffff\1\137\3\uffff\1\133\1\134\1"+
-            "\uffff\1\140\1\uffff\1\141",
-            "\1\143\2\uffff\1\145\6\uffff\1\142\1\144\4\uffff\1\146",
-            "\1\147\7\uffff\1\151\5\uffff\1\150",
-            "\1\152",
-            "\1\153\3\uffff\1\154\14\uffff\1\155",
-            "",
-            "",
-            "\1\160",
-            "\1\161\17\uffff\1\162",
-            "\1\164\6\uffff\1\166\6\uffff\1\163\2\uffff\1\167\6\uffff\1"+
-            "\165",
-            "\1\170",
-            "\1\171",
-            "\1\173\6\uffff\1\172",
-            "\1\174",
-            "\1\176\3\uffff\1\175\5\uffff\1\177",
-            "\1\u0080",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u0089",
-            "\1\u008b",
-            "\1\u008c\17\uffff\1\u008d",
-            "\12\u008f\10\uffff\1\u0091\1\uffff\3\u0091\5\uffff\1\u0091"+
-            "\13\uffff\1\u008e\6\uffff\1\u008f\2\uffff\1\u0091\1\uffff\3"+
-            "\u0091\5\uffff\1\u0091\13\uffff\1\u008e",
-            "\12\u008f\10\uffff\1\u0091\1\uffff\3\u0091\5\uffff\1\u0091"+
-            "\22\uffff\1\u008f\2\uffff\1\u0091\1\uffff\3\u0091\5\uffff\1"+
-            "\u0091",
-            "\1\130\34\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u0094",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u0096",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u0098",
-            "",
-            "",
-            "",
-            "",
-            "\1\u009a\5\uffff\1\u009b",
-            "\1\u009c",
-            "\1\u009d",
-            "",
-            "\1\u009e",
-            "\1\u009f",
-            "\1\u00a0",
-            "\1\u00a1",
-            "\1\u00a2",
-            "\1\u00a3",
-            "\1\u00a4",
-            "\1\u00a5",
-            "\1\u00a6",
-            "\1\u00a7",
-            "\1\u00a8",
-            "\1\u00a9",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u00ab",
-            "\1\u00ac",
-            "\1\u00ad",
-            "\1\u00ae",
-            "\1\u00af",
-            "\1\u00b0\16\uffff\1\u00b1",
-            "\1\u00b2",
-            "\1\u00b3",
-            "",
-            "",
-            "\1\u00b4",
-            "\1\u00b5",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u00b7\1\u00b8",
-            "\1\u00b9",
-            "\1\u00ba",
-            "\1\u00bb",
-            "\1\u00bd\3\uffff\1\u00bc",
-            "\1\u00bf\1\uffff\1\u00be",
-            "\1\u00c0",
-            "\1\u00c1",
-            "\1\u00c2\1\u00c3",
-            "\1\u00c4\3\uffff\1\u00c5",
-            "\1\u00c6",
-            "\1\u00c7\14\uffff\1\u00c8",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u00ca",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00cb",
-            "\1\u00cc",
-            "\1\u00cd",
-            "",
-            "\12\u008f\10\uffff\1\u0091\1\uffff\3\u0091\5\uffff\1\u0091"+
-            "\22\uffff\1\u008f\2\uffff\1\u0091\1\uffff\3\u0091\5\uffff\1"+
-            "\u0091",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\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\u00d0",
-            "\1\u00d1",
-            "\1\u00d2",
-            "\1\u00d3",
-            "\1\u00d4",
-            "\1\u00d5",
-            "\1\u00d6",
-            "\1\u00d7",
-            "\1\u00d8",
-            "\1\u00d9",
-            "\1\u00da",
-            "\1\u00db",
-            "\1\u00dc",
-            "\1\u00dd",
-            "",
-            "\1\u00de",
-            "\1\u00df",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u00e1",
-            "\1\u00e2",
-            "\1\u00e3",
-            "\1\u00e4",
-            "\1\u00e5",
-            "\1\u00e6",
-            "\1\u00e7",
-            "\1\u00e8",
-            "",
-            "\1\u00e9",
-            "\1\u00ea",
-            "\1\u00eb",
-            "\1\u00ec",
-            "\1\u00ed",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u00ef",
-            "\1\u00f0",
-            "\1\u00f1",
-            "\1\u00f2",
-            "\1\u00f3",
-            "\1\u00f4",
-            "\1\u00f5",
-            "\1\u00f6",
-            "\1\u00f7",
-            "\1\u00f8",
-            "\1\u00f9",
-            "\1\u00fa",
-            "",
-            "\1\u00fb",
-            "\1\u00fc",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u00fe",
-            "",
-            "",
-            "\1\u00ff",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0101",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0103",
-            "\1\u0104",
-            "\1\u0105",
-            "\1\u0106",
-            "\1\u0107",
-            "\1\u0108",
-            "\1\u0109",
-            "\1\u010a",
-            "\1\u010b",
-            "\1\u010c",
-            "\1\u010d",
-            "\1\u010e",
-            "",
-            "\1\u010f",
-            "\1\u0110",
-            "\1\u0111",
-            "\1\130\13\uffff\12\130\7\uffff\22\130\1\u0112\7\130\4\uffff"+
-            "\1\130\1\uffff\32\130",
-            "\1\u0114",
-            "\1\u0115",
-            "\1\u0116",
-            "\1\u0117",
-            "\1\u0118",
-            "\1\u0119",
-            "\1\u011a",
-            "\1\u011b",
-            "\1\u011c",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u011e",
-            "\1\u011f",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0121",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0123",
-            "\1\u0124",
-            "\1\u0125",
-            "\1\u0126",
-            "\1\u0127",
-            "\1\u0128",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u012a",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u012c",
-            "",
-            "\1\u012d\16\uffff\1\u012e",
-            "",
-            "\1\u012f",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0131",
-            "\1\u0132",
-            "\1\u0133",
-            "\1\u0134",
-            "\1\u0135",
-            "\1\u0136",
-            "\1\u0137",
-            "\1\u0138",
-            "\1\u0139",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u013b",
-            "\1\u013c",
-            "\1\u013d",
-            "\1\u013e",
-            "",
-            "\1\u013f",
-            "\1\u0140",
-            "\1\u0141",
-            "\1\u0142",
-            "\1\u0143",
-            "\1\u0144",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0146",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "",
-            "\1\u0148",
-            "\1\u0149",
-            "",
-            "\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\u014c",
-            "\1\u014d",
-            "\1\u014e",
-            "\1\u014f",
-            "\1\u0150",
-            "",
-            "\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\u0156",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\4\130\1\u0157\25\130",
-            "\1\u0159",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u015b",
-            "\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\u0162",
-            "\1\u0163",
-            "\1\u0164",
-            "\1\u0165",
-            "\1\u0166",
-            "\1\u0167",
-            "\1\u0168",
-            "\1\u0169",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "",
-            "\1\u016b",
-            "\1\u016c",
-            "",
-            "",
-            "\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\u0170",
-            "\1\u0171",
-            "",
-            "\1\u0172",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0174",
-            "",
-            "\1\u0175",
-            "\1\u0176",
-            "",
-            "\1\u0177",
-            "",
-            "\1\u0178",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u017a",
-            "\1\u017b",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u017d",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u017f",
-            "\1\u0180",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u0182",
-            "\1\u0183",
-            "\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\u0189",
-            "\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\u018f",
-            "",
-            "\1\u0190",
-            "\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\u0196",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\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\u019c",
-            "\1\u019d",
-            "\1\u019e",
-            "\1\u019f",
-            "\1\u01a0",
-            "\1\u01a1",
-            "\1\u01a2",
-            "\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\u01a9",
-            "\1\u01aa",
-            "\1\u01ab",
-            "\1\u01ac",
-            "\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\u01b0",
-            "\1\u01b1",
-            "\1\u01b2",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "",
-            "\1\u01b4",
-            "\1\u01b5",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u01b7",
-            "",
-            "",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "\1\u01b9",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "",
-            "\1\u01bb",
-            "\1\u01bc",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            "",
-            "\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\u01c2",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff"+
-            "\32\130",
-            ""
-    };
-
-    static final short[] DFA21_eot = DFA.unpackEncodedString(DFA21_eotS);
-    static final short[] DFA21_eof = DFA.unpackEncodedString(DFA21_eofS);
-    static final char[] DFA21_min = DFA.unpackEncodedStringToUnsignedChars(DFA21_minS);
-    static final char[] DFA21_max = DFA.unpackEncodedStringToUnsignedChars(DFA21_maxS);
-    static final short[] DFA21_accept = DFA.unpackEncodedString(DFA21_acceptS);
-    static final short[] DFA21_special = DFA.unpackEncodedString(DFA21_specialS);
-    static final short[][] DFA21_transition;
-
-    static {
-        int numStates = DFA21_transitionS.length;
-        DFA21_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA21_transition[i] = DFA.unpackEncodedString(DFA21_transitionS[i]);
-        }
-    }
-
-    class DFA21 extends DFA {
-
-        public DFA21(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 21;
-            this.eot = DFA21_eot;
-            this.eof = DFA21_eof;
-            this.min = DFA21_min;
-            this.max = DFA21_max;
-            this.accept = DFA21_accept;
-            this.special = DFA21_special;
-            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 | 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;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA21_0 = input.LA(1);
-
-                        s = -1;
-                        if ( (LA21_0=='=') ) {s = 1;}
-
-                        else if ( (LA21_0=='|') ) {s = 2;}
-
-                        else if ( (LA21_0=='&') ) {s = 3;}
-
-                        else if ( (LA21_0=='+') ) {s = 4;}
-
-                        else if ( (LA21_0=='-') ) {s = 5;}
-
-                        else if ( (LA21_0=='*') ) {s = 6;}
-
-                        else if ( (LA21_0=='/') ) {s = 7;}
-
-                        else if ( (LA21_0=='%') ) {s = 8;}
-
-                        else if ( (LA21_0=='!') ) {s = 9;}
-
-                        else if ( (LA21_0=='>') ) {s = 10;}
-
-                        else if ( (LA21_0=='<') ) {s = 11;}
-
-                        else if ( (LA21_0=='.') ) {s = 12;}
-
-                        else if ( (LA21_0=='?') ) {s = 13;}
-
-                        else if ( (LA21_0=='v') ) {s = 14;}
-
-                        else if ( (LA21_0=='e') ) {s = 15;}
-
-                        else if ( (LA21_0=='s') ) {s = 16;}
-
-                        else if ( (LA21_0=='i') ) {s = 17;}
-
-                        else if ( (LA21_0=='f') ) {s = 18;}
-
-                        else if ( (LA21_0=='h') ) {s = 19;}
-
-                        else if ( (LA21_0=='p') ) {s = 20;}
-
-                        else if ( (LA21_0=='{') ) {s = 21;}
-
-                        else if ( (LA21_0=='}') ) {s = 22;}
-
-                        else if ( (LA21_0=='u') ) {s = 23;}
-
-                        else if ( (LA21_0=='a') ) {s = 24;}
-
-                        else if ( (LA21_0=='t') ) {s = 25;}
-
-                        else if ( (LA21_0=='o') ) {s = 26;}
-
-                        else if ( (LA21_0=='g') ) {s = 27;}
-
-                        else if ( (LA21_0=='c') ) {s = 28;}
-
-                        else if ( (LA21_0=='r') ) {s = 29;}
-
-                        else if ( (LA21_0=='d') ) {s = 30;}
-
-                        else if ( (LA21_0=='b') ) {s = 31;}
-
-                        else if ( (LA21_0=='@') ) {s = 32;}
-
-                        else if ( (LA21_0=='(') ) {s = 33;}
-
-                        else if ( (LA21_0==')') ) {s = 34;}
-
-                        else if ( (LA21_0==',') ) {s = 35;}
-
-                        else if ( (LA21_0==']') ) {s = 36;}
-
-                        else if ( (LA21_0=='#') ) {s = 37;}
-
-                        else if ( (LA21_0=='[') ) {s = 38;}
-
-                        else if ( (LA21_0==';') ) {s = 39;}
-
-                        else if ( (LA21_0==':') ) {s = 40;}
-
-                        else if ( (LA21_0=='w') ) {s = 41;}
-
-                        else if ( (LA21_0=='n') ) {s = 42;}
-
-                        else if ( (LA21_0=='0') ) {s = 43;}
-
-                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 44;}
-
-                        else if ( (LA21_0=='^') ) {s = 45;}
-
-                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='j' && LA21_0<='m')||LA21_0=='q'||(LA21_0>='x' && LA21_0<='z')) ) {s = 46;}
-
-                        else if ( (LA21_0=='\"') ) {s = 47;}
-
-                        else if ( (LA21_0=='\'') ) {s = 48;}
-
-                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 49;}
-
-                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 50;}
-
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 21, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
- 
-
-}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDslParser.java b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDslParser.java
deleted file mode 100644
index 0f2bfdb..0000000
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDslParser.java
+++ /dev/null
@@ -1,10014 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.perspective.ui.contentassist.antlr.internal; 
-
-import java.io.InputStream;
-import org.eclipse.xtext.*;
-import org.eclipse.xtext.parser.*;
-import org.eclipse.xtext.parser.impl.*;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.parser.antlr.XtextTokenStream;
-import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
-import org.eclipse.osbp.xtext.perspective.services.PerspectiveDslGrammarAccess;
-
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-@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'", "'iconURI'", "'accessibility'", "'toolbar'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'part'", "'view'", "'select'", "'table'", "'grid'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'described by'", "'isClosable'", "'::'", "'?.'", "'|'", "'var'", "'true'"
-    };
-    public static final int RULE_HEX=6;
-    public static final int T__50=50;
-    public static final int T__59=59;
-    public static final int T__55=55;
-    public static final int T__56=56;
-    public static final int T__57=57;
-    public static final int T__58=58;
-    public static final int T__51=51;
-    public static final int T__52=52;
-    public static final int T__53=53;
-    public static final int T__54=54;
-    public static final int T__60=60;
-    public static final int T__61=61;
-    public static final int RULE_ID=4;
-    public static final int RULE_INT=7;
-    public static final int T__66=66;
-    public static final int RULE_ML_COMMENT=9;
-    public static final int T__67=67;
-    public static final int T__68=68;
-    public static final int T__69=69;
-    public static final int T__62=62;
-    public static final int T__63=63;
-    public static final int T__64=64;
-    public static final int T__65=65;
-    public static final int T__37=37;
-    public static final int T__38=38;
-    public static final int T__39=39;
-    public static final int T__33=33;
-    public static final int T__34=34;
-    public static final int T__35=35;
-    public static final int T__36=36;
-    public static final int T__30=30;
-    public static final int T__31=31;
-    public static final int T__32=32;
-    public static final int T__48=48;
-    public static final int T__49=49;
-    public static final int T__44=44;
-    public static final int T__45=45;
-    public static final int T__46=46;
-    public static final int T__47=47;
-    public static final int T__40=40;
-    public static final int T__41=41;
-    public static final int T__42=42;
-    public static final int T__43=43;
-    public static final int T__91=91;
-    public static final int T__100=100;
-    public static final int T__92=92;
-    public static final int T__93=93;
-    public static final int T__102=102;
-    public static final int T__94=94;
-    public static final int T__101=101;
-    public static final int T__90=90;
-    public static final int T__19=19;
-    public static final int T__15=15;
-    public static final int T__16=16;
-    public static final int T__17=17;
-    public static final int T__18=18;
-    public static final int T__99=99;
-    public static final int T__13=13;
-    public static final int T__14=14;
-    public static final int T__95=95;
-    public static final int T__96=96;
-    public static final int T__97=97;
-    public static final int T__98=98;
-    public static final int RULE_DECIMAL=8;
-    public static final int T__26=26;
-    public static final int T__27=27;
-    public static final int T__28=28;
-    public static final int T__29=29;
-    public static final int T__22=22;
-    public static final int T__23=23;
-    public static final int T__24=24;
-    public static final int T__25=25;
-    public static final int T__20=20;
-    public static final int T__21=21;
-    public static final int T__70=70;
-    public static final int T__71=71;
-    public static final int T__72=72;
-    public static final int RULE_STRING=5;
-    public static final int RULE_SL_COMMENT=10;
-    public static final int T__77=77;
-    public static final int T__78=78;
-    public static final int T__79=79;
-    public static final int T__73=73;
-    public static final int EOF=-1;
-    public static final int T__74=74;
-    public static final int T__114=114;
-    public static final int T__75=75;
-    public static final int T__76=76;
-    public static final int T__80=80;
-    public static final int T__111=111;
-    public static final int T__81=81;
-    public static final int T__110=110;
-    public static final int T__82=82;
-    public static final int T__113=113;
-    public static final int T__83=83;
-    public static final int T__112=112;
-    public static final int RULE_WS=11;
-    public static final int RULE_ANY_OTHER=12;
-    public static final int T__88=88;
-    public static final int T__108=108;
-    public static final int T__89=89;
-    public static final int T__107=107;
-    public static final int T__109=109;
-    public static final int T__84=84;
-    public static final int T__104=104;
-    public static final int T__85=85;
-    public static final int T__103=103;
-    public static final int T__86=86;
-    public static final int T__106=106;
-    public static final int T__87=87;
-    public static final int T__105=105;
-
-    // delegates
-    // delegators
-
-
-        public InternalPerspectiveDslParser(TokenStream input) {
-            this(input, new RecognizerSharedState());
-        }
-        public InternalPerspectiveDslParser(TokenStream input, RecognizerSharedState state) {
-            super(input, state);
-             
-        }
-        
-
-    public String[] getTokenNames() { return InternalPerspectiveDslParser.tokenNames; }
-    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g"; }
-
-
-     
-     	private PerspectiveDslGrammarAccess grammarAccess;
-     	
-        public void setGrammarAccess(PerspectiveDslGrammarAccess grammarAccess) {
-        	this.grammarAccess = grammarAccess;
-        }
-        
-        @Override
-        protected Grammar getGrammar() {
-        	return grammarAccess.getGrammar();
-        }
-        
-        @Override
-        protected String getValueForTokenName(String tokenName) {
-        	return tokenName;
-        }
-
-
-
-
-    // $ANTLR start "entryRulePerspectiveModel"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:61:1: entryRulePerspectiveModel : rulePerspectiveModel EOF ;
-    public final void entryRulePerspectiveModel() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:62:1: ( rulePerspectiveModel EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:63:1: rulePerspectiveModel EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveModelRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveModel_in_entryRulePerspectiveModel67);
-            rulePerspectiveModel();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveModelRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveModel74); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveModel"
-
-
-    // $ANTLR start "rulePerspectiveModel"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:70:1: rulePerspectiveModel : ( ( rule__PerspectiveModel__PackagesAssignment )* ) ;
-    public final void rulePerspectiveModel() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:74:2: ( ( ( rule__PerspectiveModel__PackagesAssignment )* ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:75:1: ( ( rule__PerspectiveModel__PackagesAssignment )* )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:75:1: ( ( rule__PerspectiveModel__PackagesAssignment )* )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:76:1: ( rule__PerspectiveModel__PackagesAssignment )*
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveModelAccess().getPackagesAssignment()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:77:1: ( rule__PerspectiveModel__PackagesAssignment )*
-            loop1:
-            do {
-                int alt1=2;
-                int LA1_0 = input.LA(1);
-
-                if ( (LA1_0==53) ) {
-                    alt1=1;
-                }
-
-
-                switch (alt1) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:77:2: rule__PerspectiveModel__PackagesAssignment
-            	    {
-            	    pushFollow(FOLLOW_rule__PerspectiveModel__PackagesAssignment_in_rulePerspectiveModel100);
-            	    rule__PerspectiveModel__PackagesAssignment();
-
-            	    state._fsp--;
-            	    if (state.failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop1;
-                }
-            } while (true);
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveModelAccess().getPackagesAssignment()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveModel"
-
-
-    // $ANTLR start "entryRulePerspectivePackage"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:89:1: entryRulePerspectivePackage : rulePerspectivePackage EOF ;
-    public final void entryRulePerspectivePackage() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:90:1: ( rulePerspectivePackage EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:91:1: rulePerspectivePackage EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePackageRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectivePackage_in_entryRulePerspectivePackage128);
-            rulePerspectivePackage();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePackageRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectivePackage135); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectivePackage"
-
-
-    // $ANTLR start "rulePerspectivePackage"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:98:1: rulePerspectivePackage : ( ( rule__PerspectivePackage__Group__0 ) ) ;
-    public final void rulePerspectivePackage() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:102:2: ( ( ( rule__PerspectivePackage__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:103:1: ( ( rule__PerspectivePackage__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:103:1: ( ( rule__PerspectivePackage__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:104:1: ( rule__PerspectivePackage__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePackageAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:105:1: ( rule__PerspectivePackage__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:105:2: rule__PerspectivePackage__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectivePackage__Group__0_in_rulePerspectivePackage161);
-            rule__PerspectivePackage__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePackageAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectivePackage"
-
-
-    // $ANTLR start "entryRulePerspectiveImport"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:117:1: entryRulePerspectiveImport : rulePerspectiveImport EOF ;
-    public final void entryRulePerspectiveImport() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:118:1: ( rulePerspectiveImport EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:119:1: rulePerspectiveImport EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveImportRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveImport_in_entryRulePerspectiveImport188);
-            rulePerspectiveImport();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveImportRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveImport195); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveImport"
-
-
-    // $ANTLR start "rulePerspectiveImport"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:126:1: rulePerspectiveImport : ( ( rule__PerspectiveImport__Group__0 ) ) ;
-    public final void rulePerspectiveImport() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:130:2: ( ( ( rule__PerspectiveImport__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:131:1: ( ( rule__PerspectiveImport__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:131:1: ( ( rule__PerspectiveImport__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:132:1: ( rule__PerspectiveImport__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveImportAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:133:1: ( rule__PerspectiveImport__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:133:2: rule__PerspectiveImport__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveImport__Group__0_in_rulePerspectiveImport221);
-            rule__PerspectiveImport__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveImportAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveImport"
-
-
-    // $ANTLR start "entryRulePerspective"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:145:1: entryRulePerspective : rulePerspective EOF ;
-    public final void entryRulePerspective() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:146:1: ( rulePerspective EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:147:1: rulePerspective EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspective_in_entryRulePerspective248);
-            rulePerspective();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspective255); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspective"
-
-
-    // $ANTLR start "rulePerspective"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:154:1: rulePerspective : ( ( rule__Perspective__Group__0 ) ) ;
-    public final void rulePerspective() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:158:2: ( ( ( rule__Perspective__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:159:1: ( ( rule__Perspective__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:159:1: ( ( rule__Perspective__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:160:1: ( rule__Perspective__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:161:1: ( rule__Perspective__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:161:2: rule__Perspective__Group__0
-            {
-            pushFollow(FOLLOW_rule__Perspective__Group__0_in_rulePerspective281);
-            rule__Perspective__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspective"
-
-
-    // $ANTLR start "entryRulePerspectiveElement"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:173:1: entryRulePerspectiveElement : rulePerspectiveElement EOF ;
-    public final void entryRulePerspectiveElement() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:174:1: ( rulePerspectiveElement EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:175:1: rulePerspectiveElement EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveElementRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveElement_in_entryRulePerspectiveElement308);
-            rulePerspectiveElement();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveElementRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveElement315); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveElement"
-
-
-    // $ANTLR start "rulePerspectiveElement"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:182:1: rulePerspectiveElement : ( ( rule__PerspectiveElement__Alternatives ) ) ;
-    public final void rulePerspectiveElement() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:186:2: ( ( ( rule__PerspectiveElement__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:187:1: ( ( rule__PerspectiveElement__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:187:1: ( ( rule__PerspectiveElement__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:188:1: ( rule__PerspectiveElement__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveElementAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:189:1: ( rule__PerspectiveElement__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:189:2: rule__PerspectiveElement__Alternatives
-            {
-            pushFollow(FOLLOW_rule__PerspectiveElement__Alternatives_in_rulePerspectiveElement341);
-            rule__PerspectiveElement__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveElementAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveElement"
-
-
-    // $ANTLR start "entryRulePerspectiveSashContainer"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:201:1: entryRulePerspectiveSashContainer : rulePerspectiveSashContainer EOF ;
-    public final void entryRulePerspectiveSashContainer() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:202:1: ( rulePerspectiveSashContainer EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:203:1: rulePerspectiveSashContainer EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveSashContainerRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveSashContainer_in_entryRulePerspectiveSashContainer368);
-            rulePerspectiveSashContainer();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveSashContainerRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveSashContainer375); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveSashContainer"
-
-
-    // $ANTLR start "rulePerspectiveSashContainer"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:210:1: rulePerspectiveSashContainer : ( ( rule__PerspectiveSashContainer__Group__0 ) ) ;
-    public final void rulePerspectiveSashContainer() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:214:2: ( ( ( rule__PerspectiveSashContainer__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:215:1: ( ( rule__PerspectiveSashContainer__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:215:1: ( ( rule__PerspectiveSashContainer__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:216:1: ( rule__PerspectiveSashContainer__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveSashContainerAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:217:1: ( rule__PerspectiveSashContainer__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:217:2: rule__PerspectiveSashContainer__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveSashContainer__Group__0_in_rulePerspectiveSashContainer401);
-            rule__PerspectiveSashContainer__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveSashContainerAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveSashContainer"
-
-
-    // $ANTLR start "entryRulePerspectivePartStack"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:229:1: entryRulePerspectivePartStack : rulePerspectivePartStack EOF ;
-    public final void entryRulePerspectivePartStack() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:230:1: ( rulePerspectivePartStack EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:231:1: rulePerspectivePartStack EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartStackRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectivePartStack_in_entryRulePerspectivePartStack428);
-            rulePerspectivePartStack();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartStackRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectivePartStack435); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectivePartStack"
-
-
-    // $ANTLR start "rulePerspectivePartStack"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:238:1: rulePerspectivePartStack : ( ( rule__PerspectivePartStack__Group__0 ) ) ;
-    public final void rulePerspectivePartStack() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:242:2: ( ( ( rule__PerspectivePartStack__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:243:1: ( ( rule__PerspectivePartStack__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:243:1: ( ( rule__PerspectivePartStack__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:244:1: ( rule__PerspectivePartStack__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartStackAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:245:1: ( rule__PerspectivePartStack__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:245:2: rule__PerspectivePartStack__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectivePartStack__Group__0_in_rulePerspectivePartStack461);
-            rule__PerspectivePartStack__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartStackAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectivePartStack"
-
-
-    // $ANTLR start "entryRulePerspectivePart"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:257:1: entryRulePerspectivePart : rulePerspectivePart EOF ;
-    public final void entryRulePerspectivePart() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:258:1: ( rulePerspectivePart EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:259:1: rulePerspectivePart EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectivePart_in_entryRulePerspectivePart488);
-            rulePerspectivePart();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectivePart495); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectivePart"
-
-
-    // $ANTLR start "rulePerspectivePart"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:266:1: rulePerspectivePart : ( ( rule__PerspectivePart__Group__0 ) ) ;
-    public final void rulePerspectivePart() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:270:2: ( ( ( rule__PerspectivePart__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:271:1: ( ( rule__PerspectivePart__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:271:1: ( ( rule__PerspectivePart__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:272:1: ( rule__PerspectivePart__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:273:1: ( rule__PerspectivePart__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:273:2: rule__PerspectivePart__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectivePart__Group__0_in_rulePerspectivePart521);
-            rule__PerspectivePart__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectivePart"
-
-
-    // $ANTLR start "entryRulePerspectiveView"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:285:1: entryRulePerspectiveView : rulePerspectiveView EOF ;
-    public final void entryRulePerspectiveView() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:286:1: ( rulePerspectiveView EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:287:1: rulePerspectiveView EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveViewRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveView_in_entryRulePerspectiveView548);
-            rulePerspectiveView();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveViewRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveView555); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveView"
-
-
-    // $ANTLR start "rulePerspectiveView"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:294:1: rulePerspectiveView : ( ( rule__PerspectiveView__Alternatives ) ) ;
-    public final void rulePerspectiveView() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:298:2: ( ( ( rule__PerspectiveView__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:299:1: ( ( rule__PerspectiveView__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:299:1: ( ( rule__PerspectiveView__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:300:1: ( rule__PerspectiveView__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveViewAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:301:1: ( rule__PerspectiveView__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:301:2: rule__PerspectiveView__Alternatives
-            {
-            pushFollow(FOLLOW_rule__PerspectiveView__Alternatives_in_rulePerspectiveView581);
-            rule__PerspectiveView__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveViewAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveView"
-
-
-    // $ANTLR start "entryRulePerspectiveSelection"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:313:1: entryRulePerspectiveSelection : rulePerspectiveSelection EOF ;
-    public final void entryRulePerspectiveSelection() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:314:1: ( rulePerspectiveSelection EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:315:1: rulePerspectiveSelection EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveSelectionRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveSelection_in_entryRulePerspectiveSelection608);
-            rulePerspectiveSelection();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveSelectionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveSelection615); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveSelection"
-
-
-    // $ANTLR start "rulePerspectiveSelection"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:322:1: rulePerspectiveSelection : ( ( rule__PerspectiveSelection__Group__0 ) ) ;
-    public final void rulePerspectiveSelection() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:326:2: ( ( ( rule__PerspectiveSelection__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:327:1: ( ( rule__PerspectiveSelection__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:327:1: ( ( rule__PerspectiveSelection__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:328:1: ( rule__PerspectiveSelection__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveSelectionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:329:1: ( rule__PerspectiveSelection__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:329:2: rule__PerspectiveSelection__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveSelection__Group__0_in_rulePerspectiveSelection641);
-            rule__PerspectiveSelection__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveSelectionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveSelection"
-
-
-    // $ANTLR start "entryRulePerspectiveTable"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:341:1: entryRulePerspectiveTable : rulePerspectiveTable EOF ;
-    public final void entryRulePerspectiveTable() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:342:1: ( rulePerspectiveTable EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:343:1: rulePerspectiveTable EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveTableRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveTable_in_entryRulePerspectiveTable668);
-            rulePerspectiveTable();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveTableRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveTable675); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveTable"
-
-
-    // $ANTLR start "rulePerspectiveTable"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:350:1: rulePerspectiveTable : ( ( rule__PerspectiveTable__Group__0 ) ) ;
-    public final void rulePerspectiveTable() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:354:2: ( ( ( rule__PerspectiveTable__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:355:1: ( ( rule__PerspectiveTable__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:355:1: ( ( rule__PerspectiveTable__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:356:1: ( rule__PerspectiveTable__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveTableAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:357:1: ( rule__PerspectiveTable__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:357:2: rule__PerspectiveTable__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveTable__Group__0_in_rulePerspectiveTable701);
-            rule__PerspectiveTable__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveTableAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveTable"
-
-
-    // $ANTLR start "entryRulePerspectiveGrid"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:369:1: entryRulePerspectiveGrid : rulePerspectiveGrid EOF ;
-    public final void entryRulePerspectiveGrid() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:370:1: ( rulePerspectiveGrid EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:371:1: rulePerspectiveGrid EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveGridRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveGrid_in_entryRulePerspectiveGrid728);
-            rulePerspectiveGrid();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveGridRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveGrid735); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveGrid"
-
-
-    // $ANTLR start "rulePerspectiveGrid"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:378:1: rulePerspectiveGrid : ( ( rule__PerspectiveGrid__Group__0 ) ) ;
-    public final void rulePerspectiveGrid() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:382:2: ( ( ( rule__PerspectiveGrid__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:383:1: ( ( rule__PerspectiveGrid__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:383:1: ( ( rule__PerspectiveGrid__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:384:1: ( rule__PerspectiveGrid__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveGridAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:385:1: ( rule__PerspectiveGrid__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:385:2: rule__PerspectiveGrid__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveGrid__Group__0_in_rulePerspectiveGrid761);
-            rule__PerspectiveGrid__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveGridAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveGrid"
-
-
-    // $ANTLR start "entryRulePerspectiveChart"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:397:1: entryRulePerspectiveChart : rulePerspectiveChart EOF ;
-    public final void entryRulePerspectiveChart() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:398:1: ( rulePerspectiveChart EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:399:1: rulePerspectiveChart EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveChartRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveChart_in_entryRulePerspectiveChart788);
-            rulePerspectiveChart();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveChartRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveChart795); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveChart"
-
-
-    // $ANTLR start "rulePerspectiveChart"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:406:1: rulePerspectiveChart : ( ( rule__PerspectiveChart__Group__0 ) ) ;
-    public final void rulePerspectiveChart() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:410:2: ( ( ( rule__PerspectiveChart__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:411:1: ( ( rule__PerspectiveChart__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:411:1: ( ( rule__PerspectiveChart__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:412:1: ( rule__PerspectiveChart__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveChartAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:413:1: ( rule__PerspectiveChart__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:413:2: rule__PerspectiveChart__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveChart__Group__0_in_rulePerspectiveChart821);
-            rule__PerspectiveChart__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveChartAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveChart"
-
-
-    // $ANTLR start "entryRulePerspectiveReport"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:425:1: entryRulePerspectiveReport : rulePerspectiveReport EOF ;
-    public final void entryRulePerspectiveReport() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:426:1: ( rulePerspectiveReport EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:427:1: rulePerspectiveReport EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveReportRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveReport_in_entryRulePerspectiveReport848);
-            rulePerspectiveReport();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveReportRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveReport855); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveReport"
-
-
-    // $ANTLR start "rulePerspectiveReport"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:434:1: rulePerspectiveReport : ( ( rule__PerspectiveReport__Group__0 ) ) ;
-    public final void rulePerspectiveReport() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:438:2: ( ( ( rule__PerspectiveReport__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:439:1: ( ( rule__PerspectiveReport__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:439:1: ( ( rule__PerspectiveReport__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:440:1: ( rule__PerspectiveReport__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveReportAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:441:1: ( rule__PerspectiveReport__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:441:2: rule__PerspectiveReport__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveReport__Group__0_in_rulePerspectiveReport881);
-            rule__PerspectiveReport__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveReportAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveReport"
-
-
-    // $ANTLR start "entryRulePerspectiveOrganization"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:453:1: entryRulePerspectiveOrganization : rulePerspectiveOrganization EOF ;
-    public final void entryRulePerspectiveOrganization() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:454:1: ( rulePerspectiveOrganization EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:455:1: rulePerspectiveOrganization EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveOrganizationRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveOrganization_in_entryRulePerspectiveOrganization908);
-            rulePerspectiveOrganization();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveOrganizationRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveOrganization915); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveOrganization"
-
-
-    // $ANTLR start "rulePerspectiveOrganization"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:462:1: rulePerspectiveOrganization : ( ( rule__PerspectiveOrganization__Group__0 ) ) ;
-    public final void rulePerspectiveOrganization() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:466:2: ( ( ( rule__PerspectiveOrganization__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:467:1: ( ( rule__PerspectiveOrganization__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:467:1: ( ( rule__PerspectiveOrganization__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:468:1: ( rule__PerspectiveOrganization__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveOrganizationAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:469:1: ( rule__PerspectiveOrganization__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:469:2: rule__PerspectiveOrganization__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveOrganization__Group__0_in_rulePerspectiveOrganization941);
-            rule__PerspectiveOrganization__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveOrganizationAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveOrganization"
-
-
-    // $ANTLR start "entryRulePerspectiveTopology"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:481:1: entryRulePerspectiveTopology : rulePerspectiveTopology EOF ;
-    public final void entryRulePerspectiveTopology() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:482:1: ( rulePerspectiveTopology EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:483:1: rulePerspectiveTopology EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveTopologyRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveTopology_in_entryRulePerspectiveTopology968);
-            rulePerspectiveTopology();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveTopologyRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveTopology975); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveTopology"
-
-
-    // $ANTLR start "rulePerspectiveTopology"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:490:1: rulePerspectiveTopology : ( ( rule__PerspectiveTopology__Group__0 ) ) ;
-    public final void rulePerspectiveTopology() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:494:2: ( ( ( rule__PerspectiveTopology__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:495:1: ( ( rule__PerspectiveTopology__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:495:1: ( ( rule__PerspectiveTopology__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:496:1: ( rule__PerspectiveTopology__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveTopologyAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:497:1: ( rule__PerspectiveTopology__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:497:2: rule__PerspectiveTopology__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveTopology__Group__0_in_rulePerspectiveTopology1001);
-            rule__PerspectiveTopology__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveTopologyAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveTopology"
-
-
-    // $ANTLR start "entryRulePerspectiveDialog"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:509:1: entryRulePerspectiveDialog : rulePerspectiveDialog EOF ;
-    public final void entryRulePerspectiveDialog() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:510:1: ( rulePerspectiveDialog EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:511:1: rulePerspectiveDialog EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveDialogRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveDialog_in_entryRulePerspectiveDialog1028);
-            rulePerspectiveDialog();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveDialogRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveDialog1035); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveDialog"
-
-
-    // $ANTLR start "rulePerspectiveDialog"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:518:1: rulePerspectiveDialog : ( ( rule__PerspectiveDialog__Group__0 ) ) ;
-    public final void rulePerspectiveDialog() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:522:2: ( ( ( rule__PerspectiveDialog__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:523:1: ( ( rule__PerspectiveDialog__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:523:1: ( ( rule__PerspectiveDialog__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:524:1: ( rule__PerspectiveDialog__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveDialogAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:525:1: ( rule__PerspectiveDialog__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:525:2: rule__PerspectiveDialog__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveDialog__Group__0_in_rulePerspectiveDialog1061);
-            rule__PerspectiveDialog__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveDialogAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveDialog"
-
-
-    // $ANTLR start "entryRulePerspectiveBPMN"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:537:1: entryRulePerspectiveBPMN : rulePerspectiveBPMN EOF ;
-    public final void entryRulePerspectiveBPMN() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:538:1: ( rulePerspectiveBPMN EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:539:1: rulePerspectiveBPMN EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBPMNRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveBPMN_in_entryRulePerspectiveBPMN1088);
-            rulePerspectiveBPMN();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBPMNRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveBPMN1095); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveBPMN"
-
-
-    // $ANTLR start "rulePerspectiveBPMN"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:546:1: rulePerspectiveBPMN : ( ( rule__PerspectiveBPMN__Group__0 ) ) ;
-    public final void rulePerspectiveBPMN() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:550:2: ( ( ( rule__PerspectiveBPMN__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:551:1: ( ( rule__PerspectiveBPMN__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:551:1: ( ( rule__PerspectiveBPMN__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:552:1: ( rule__PerspectiveBPMN__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveBPMNAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:553:1: ( rule__PerspectiveBPMN__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:553:2: rule__PerspectiveBPMN__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveBPMN__Group__0_in_rulePerspectiveBPMN1121);
-            rule__PerspectiveBPMN__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveBPMNAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveBPMN"
-
-
-    // $ANTLR start "entryRulePerspectiveQualifiedNameWithWildCard"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:565:1: entryRulePerspectiveQualifiedNameWithWildCard : rulePerspectiveQualifiedNameWithWildCard EOF ;
-    public final void entryRulePerspectiveQualifiedNameWithWildCard() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:566:1: ( rulePerspectiveQualifiedNameWithWildCard EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:567:1: rulePerspectiveQualifiedNameWithWildCard EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveQualifiedNameWithWildCardRule()); 
-            }
-            pushFollow(FOLLOW_rulePerspectiveQualifiedNameWithWildCard_in_entryRulePerspectiveQualifiedNameWithWildCard1148);
-            rulePerspectiveQualifiedNameWithWildCard();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveQualifiedNameWithWildCardRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRulePerspectiveQualifiedNameWithWildCard1155); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRulePerspectiveQualifiedNameWithWildCard"
-
-
-    // $ANTLR start "rulePerspectiveQualifiedNameWithWildCard"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:574:1: rulePerspectiveQualifiedNameWithWildCard : ( ( rule__PerspectiveQualifiedNameWithWildCard__Group__0 ) ) ;
-    public final void rulePerspectiveQualifiedNameWithWildCard() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:578:2: ( ( ( rule__PerspectiveQualifiedNameWithWildCard__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:579:1: ( ( rule__PerspectiveQualifiedNameWithWildCard__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:579:1: ( ( rule__PerspectiveQualifiedNameWithWildCard__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:580:1: ( rule__PerspectiveQualifiedNameWithWildCard__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:581:1: ( rule__PerspectiveQualifiedNameWithWildCard__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:581:2: rule__PerspectiveQualifiedNameWithWildCard__Group__0
-            {
-            pushFollow(FOLLOW_rule__PerspectiveQualifiedNameWithWildCard__Group__0_in_rulePerspectiveQualifiedNameWithWildCard1181);
-            rule__PerspectiveQualifiedNameWithWildCard__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveQualifiedNameWithWildCardAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rulePerspectiveQualifiedNameWithWildCard"
-
-
-    // $ANTLR start "entryRuleQualifiedName"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:593:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
-    public final void entryRuleQualifiedName() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:594:1: ( ruleQualifiedName EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:595:1: ruleQualifiedName EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameRule()); 
-            }
-            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName1208);
-            ruleQualifiedName();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName1215); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleQualifiedName"
-
-
-    // $ANTLR start "ruleQualifiedName"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:602:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
-    public final void ruleQualifiedName() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:606:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:607:1: ( ( rule__QualifiedName__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:607:1: ( ( rule__QualifiedName__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:608:1: ( rule__QualifiedName__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:609:1: ( rule__QualifiedName__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:609:2: rule__QualifiedName__Group__0
-            {
-            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName1241);
-            rule__QualifiedName__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleQualifiedName"
-
-
-    // $ANTLR start "entryRuleValidID"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:621:1: entryRuleValidID : ruleValidID EOF ;
-    public final void entryRuleValidID() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:622:1: ( ruleValidID EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:623:1: ruleValidID EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getValidIDRule()); 
-            }
-            pushFollow(FOLLOW_ruleValidID_in_entryRuleValidID1268);
-            ruleValidID();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getValidIDRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleValidID1275); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleValidID"
-
-
-    // $ANTLR start "ruleValidID"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:630:1: ruleValidID : ( RULE_ID ) ;
-    public final void ruleValidID() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:634:2: ( ( RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:635:1: ( RULE_ID )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:635:1: ( RULE_ID )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:636:1: RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
-            }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleValidID1301); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleValidID"
-
-
-    // $ANTLR start "entryRuleTRANSLATABLEID"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:649:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
-    public final void entryRuleTRANSLATABLEID() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:650:1: ( ruleTRANSLATABLEID EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:651:1: ruleTRANSLATABLEID EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getTRANSLATABLEIDRule()); 
-            }
-            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_entryRuleTRANSLATABLEID1327);
-            ruleTRANSLATABLEID();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getTRANSLATABLEIDRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLEID1334); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleTRANSLATABLEID"
-
-
-    // $ANTLR start "ruleTRANSLATABLEID"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:658:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
-    public final void ruleTRANSLATABLEID() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:662:2: ( ( RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:663:1: ( RULE_ID )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:663:1: ( RULE_ID )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:664:1: RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
-            }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTRANSLATABLEID1360); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleTRANSLATABLEID"
-
-
-    // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:677:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
-    public final void entryRuleTRANSLATABLESTRING() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:678:1: ( ruleTRANSLATABLESTRING EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:679:1: ruleTRANSLATABLESTRING EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getTRANSLATABLESTRINGRule()); 
-            }
-            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_entryRuleTRANSLATABLESTRING1386);
-            ruleTRANSLATABLESTRING();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getTRANSLATABLESTRINGRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLESTRING1393); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleTRANSLATABLESTRING"
-
-
-    // $ANTLR start "ruleTRANSLATABLESTRING"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:686:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
-    public final void ruleTRANSLATABLESTRING() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:690:2: ( ( RULE_STRING ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:691:1: ( RULE_STRING )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:691:1: ( RULE_STRING )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:692:1: RULE_STRING
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
-            }
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTRANSLATABLESTRING1419); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleTRANSLATABLESTRING"
-
-
-    // $ANTLR start "entryRuleXAnnotation"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:705:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
-    public final void entryRuleXAnnotation() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:706:1: ( ruleXAnnotation EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:707:1: ruleXAnnotation EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAnnotation_in_entryRuleXAnnotation1445);
-            ruleXAnnotation();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotation1452); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAnnotation"
-
-
-    // $ANTLR start "ruleXAnnotation"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:714:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
-    public final void ruleXAnnotation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:718:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:719:1: ( ( rule__XAnnotation__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:719:1: ( ( rule__XAnnotation__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:720:1: ( rule__XAnnotation__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:721:1: ( rule__XAnnotation__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:721:2: rule__XAnnotation__Group__0
-            {
-            pushFollow(FOLLOW_rule__XAnnotation__Group__0_in_ruleXAnnotation1478);
-            rule__XAnnotation__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAnnotation"
-
-
-    // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:733:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
-    public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:734:1: ( ruleXAnnotationElementValuePair EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:735:1: ruleXAnnotationElementValuePair EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationElementValuePairRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_entryRuleXAnnotationElementValuePair1505);
-            ruleXAnnotationElementValuePair();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationElementValuePairRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValuePair1512); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAnnotationElementValuePair"
-
-
-    // $ANTLR start "ruleXAnnotationElementValuePair"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:742:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
-    public final void ruleXAnnotationElementValuePair() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:746:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:747:1: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:747:1: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:748:1: ( rule__XAnnotationElementValuePair__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:749:1: ( rule__XAnnotationElementValuePair__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:749:2: rule__XAnnotationElementValuePair__Group__0
-            {
-            pushFollow(FOLLOW_rule__XAnnotationElementValuePair__Group__0_in_ruleXAnnotationElementValuePair1538);
-            rule__XAnnotationElementValuePair__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAnnotationElementValuePair"
-
-
-    // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:761:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
-    public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:762:1: ( ruleXAnnotationElementValueOrCommaList EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:763:1: ruleXAnnotationElementValueOrCommaList EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAnnotationElementValueOrCommaList_in_entryRuleXAnnotationElementValueOrCommaList1565);
-            ruleXAnnotationElementValueOrCommaList();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValueOrCommaList1572); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAnnotationElementValueOrCommaList"
-
-
-    // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:770:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
-    public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:774:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:775:1: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:775:1: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:776:1: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:777:1: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:777:2: rule__XAnnotationElementValueOrCommaList__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Alternatives_in_ruleXAnnotationElementValueOrCommaList1598);
-            rule__XAnnotationElementValueOrCommaList__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAnnotationElementValueOrCommaList"
-
-
-    // $ANTLR start "entryRuleXAnnotationElementValue"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:789:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
-    public final void entryRuleXAnnotationElementValue() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:790:1: ( ruleXAnnotationElementValue EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:791:1: ruleXAnnotationElementValue EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationElementValueRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAnnotationElementValue_in_entryRuleXAnnotationElementValue1625);
-            ruleXAnnotationElementValue();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationElementValueRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValue1632); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAnnotationElementValue"
-
-
-    // $ANTLR start "ruleXAnnotationElementValue"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:798:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
-    public final void ruleXAnnotationElementValue() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:802:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:803:1: ( ( rule__XAnnotationElementValue__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:803:1: ( ( rule__XAnnotationElementValue__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:804:1: ( rule__XAnnotationElementValue__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:805:1: ( rule__XAnnotationElementValue__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:805:2: rule__XAnnotationElementValue__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XAnnotationElementValue__Alternatives_in_ruleXAnnotationElementValue1658);
-            rule__XAnnotationElementValue__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAnnotationElementValue"
-
-
-    // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:817:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
-    public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:818:1: ( ruleXAnnotationOrExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:819:1: ruleXAnnotationOrExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationOrExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_entryRuleXAnnotationOrExpression1685);
-            ruleXAnnotationOrExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationOrExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationOrExpression1692); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAnnotationOrExpression"
-
-
-    // $ANTLR start "ruleXAnnotationOrExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:826:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
-    public final void ruleXAnnotationOrExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:830:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:831:1: ( ( rule__XAnnotationOrExpression__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:831:1: ( ( rule__XAnnotationOrExpression__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:832:1: ( rule__XAnnotationOrExpression__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:833:1: ( rule__XAnnotationOrExpression__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:833:2: rule__XAnnotationOrExpression__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XAnnotationOrExpression__Alternatives_in_ruleXAnnotationOrExpression1718);
-            rule__XAnnotationOrExpression__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAnnotationOrExpression"
-
-
-    // $ANTLR start "entryRuleXExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:845:1: entryRuleXExpression : ruleXExpression EOF ;
-    public final void entryRuleXExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:846:1: ( ruleXExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:847:1: ruleXExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXExpression_in_entryRuleXExpression1745);
-            ruleXExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpression1752); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXExpression"
-
-
-    // $ANTLR start "ruleXExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:854:1: ruleXExpression : ( ruleXAssignment ) ;
-    public final void ruleXExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:858:2: ( ( ruleXAssignment ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:859:1: ( ruleXAssignment )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:859:1: ( ruleXAssignment )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:860:1: ruleXAssignment
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
-            }
-            pushFollow(FOLLOW_ruleXAssignment_in_ruleXExpression1778);
-            ruleXAssignment();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXExpression"
-
-
-    // $ANTLR start "entryRuleXAssignment"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:873:1: entryRuleXAssignment : ruleXAssignment EOF ;
-    public final void entryRuleXAssignment() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:874:1: ( ruleXAssignment EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:875:1: ruleXAssignment EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAssignmentRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAssignment_in_entryRuleXAssignment1804);
-            ruleXAssignment();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAssignmentRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAssignment1811); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAssignment"
-
-
-    // $ANTLR start "ruleXAssignment"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:882:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
-    public final void ruleXAssignment() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:886:2: ( ( ( rule__XAssignment__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:887:1: ( ( rule__XAssignment__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:887:1: ( ( rule__XAssignment__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:888:1: ( rule__XAssignment__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:889:1: ( rule__XAssignment__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:889:2: rule__XAssignment__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XAssignment__Alternatives_in_ruleXAssignment1837);
-            rule__XAssignment__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAssignmentAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAssignment"
-
-
-    // $ANTLR start "entryRuleOpSingleAssign"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:901:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
-    public final void entryRuleOpSingleAssign() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:902:1: ( ruleOpSingleAssign EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:903:1: ruleOpSingleAssign EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpSingleAssignRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign1864);
-            ruleOpSingleAssign();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpSingleAssignRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpSingleAssign1871); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpSingleAssign"
-
-
-    // $ANTLR start "ruleOpSingleAssign"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:910:1: ruleOpSingleAssign : ( '=' ) ;
-    public final void ruleOpSingleAssign() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:914:2: ( ( '=' ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:915:1: ( '=' )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:915:1: ( '=' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:916:1: '='
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
-            }
-            match(input,13,FOLLOW_13_in_ruleOpSingleAssign1898); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpSingleAssign"
-
-
-    // $ANTLR start "entryRuleOpMultiAssign"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:931:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
-    public final void entryRuleOpMultiAssign() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:932:1: ( ruleOpMultiAssign EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:933:1: ruleOpMultiAssign EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpMultiAssignRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign1926);
-            ruleOpMultiAssign();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpMultiAssignRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMultiAssign1933); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpMultiAssign"
-
-
-    // $ANTLR start "ruleOpMultiAssign"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:940:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
-    public final void ruleOpMultiAssign() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:944:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:945:1: ( ( rule__OpMultiAssign__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:945:1: ( ( rule__OpMultiAssign__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:946:1: ( rule__OpMultiAssign__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:947:1: ( rule__OpMultiAssign__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:947:2: rule__OpMultiAssign__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpMultiAssign__Alternatives_in_ruleOpMultiAssign1959);
-            rule__OpMultiAssign__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpMultiAssign"
-
-
-    // $ANTLR start "entryRuleXOrExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:959:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
-    public final void entryRuleXOrExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:960:1: ( ruleXOrExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:961:1: ruleXOrExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXOrExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression1986);
-            ruleXOrExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXOrExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXOrExpression1993); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXOrExpression"
-
-
-    // $ANTLR start "ruleXOrExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:968:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
-    public final void ruleXOrExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:972:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:973:1: ( ( rule__XOrExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:973:1: ( ( rule__XOrExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:974:1: ( rule__XOrExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXOrExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:975:1: ( rule__XOrExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:975:2: rule__XOrExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XOrExpression__Group__0_in_ruleXOrExpression2019);
-            rule__XOrExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXOrExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXOrExpression"
-
-
-    // $ANTLR start "entryRuleOpOr"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:987:1: entryRuleOpOr : ruleOpOr EOF ;
-    public final void entryRuleOpOr() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:988:1: ( ruleOpOr EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:989:1: ruleOpOr EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpOrRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpOr_in_entryRuleOpOr2046);
-            ruleOpOr();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpOrRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOr2053); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpOr"
-
-
-    // $ANTLR start "ruleOpOr"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:996:1: ruleOpOr : ( '||' ) ;
-    public final void ruleOpOr() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1000:2: ( ( '||' ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1001:1: ( '||' )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1001:1: ( '||' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1002:1: '||'
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
-            }
-            match(input,14,FOLLOW_14_in_ruleOpOr2080); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpOr"
-
-
-    // $ANTLR start "entryRuleXAndExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1017:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
-    public final void entryRuleXAndExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1018:1: ( ruleXAndExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1019:1: ruleXAndExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAndExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression2108);
-            ruleXAndExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAndExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAndExpression2115); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAndExpression"
-
-
-    // $ANTLR start "ruleXAndExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1026:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
-    public final void ruleXAndExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1030:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1031:1: ( ( rule__XAndExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1031:1: ( ( rule__XAndExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1032:1: ( rule__XAndExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAndExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1033:1: ( rule__XAndExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1033:2: rule__XAndExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XAndExpression__Group__0_in_ruleXAndExpression2141);
-            rule__XAndExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAndExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAndExpression"
-
-
-    // $ANTLR start "entryRuleOpAnd"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1045:1: entryRuleOpAnd : ruleOpAnd EOF ;
-    public final void entryRuleOpAnd() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1046:1: ( ruleOpAnd EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1047:1: ruleOpAnd EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpAndRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpAnd_in_entryRuleOpAnd2168);
-            ruleOpAnd();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpAndRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAnd2175); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpAnd"
-
-
-    // $ANTLR start "ruleOpAnd"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1054:1: ruleOpAnd : ( '&&' ) ;
-    public final void ruleOpAnd() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1058:2: ( ( '&&' ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1059:1: ( '&&' )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1059:1: ( '&&' )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1060:1: '&&'
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
-            }
-            match(input,15,FOLLOW_15_in_ruleOpAnd2202); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpAnd"
-
-
-    // $ANTLR start "entryRuleXEqualityExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1075:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
-    public final void entryRuleXEqualityExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1076:1: ( ruleXEqualityExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1077:1: ruleXEqualityExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXEqualityExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression2230);
-            ruleXEqualityExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXEqualityExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXEqualityExpression2237); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXEqualityExpression"
-
-
-    // $ANTLR start "ruleXEqualityExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1084:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
-    public final void ruleXEqualityExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1088:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1089:1: ( ( rule__XEqualityExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1089:1: ( ( rule__XEqualityExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1090:1: ( rule__XEqualityExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1091:1: ( rule__XEqualityExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1091:2: rule__XEqualityExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XEqualityExpression__Group__0_in_ruleXEqualityExpression2263);
-            rule__XEqualityExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXEqualityExpression"
-
-
-    // $ANTLR start "entryRuleOpEquality"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1103:1: entryRuleOpEquality : ruleOpEquality EOF ;
-    public final void entryRuleOpEquality() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1104:1: ( ruleOpEquality EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1105:1: ruleOpEquality EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpEqualityRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpEquality_in_entryRuleOpEquality2290);
-            ruleOpEquality();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpEqualityRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpEquality2297); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpEquality"
-
-
-    // $ANTLR start "ruleOpEquality"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1112:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
-    public final void ruleOpEquality() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1116:2: ( ( ( rule__OpEquality__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1117:1: ( ( rule__OpEquality__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1117:1: ( ( rule__OpEquality__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1118:1: ( rule__OpEquality__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1119:1: ( rule__OpEquality__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1119:2: rule__OpEquality__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpEquality__Alternatives_in_ruleOpEquality2323);
-            rule__OpEquality__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpEqualityAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpEquality"
-
-
-    // $ANTLR start "entryRuleXRelationalExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1131:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
-    public final void entryRuleXRelationalExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1132:1: ( ruleXRelationalExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1133:1: ruleXRelationalExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXRelationalExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression2350);
-            ruleXRelationalExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXRelationalExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXRelationalExpression2357); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXRelationalExpression"
-
-
-    // $ANTLR start "ruleXRelationalExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1140:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
-    public final void ruleXRelationalExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1144:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1145:1: ( ( rule__XRelationalExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1145:1: ( ( rule__XRelationalExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1146:1: ( rule__XRelationalExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1147:1: ( rule__XRelationalExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1147:2: rule__XRelationalExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XRelationalExpression__Group__0_in_ruleXRelationalExpression2383);
-            rule__XRelationalExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXRelationalExpression"
-
-
-    // $ANTLR start "entryRuleOpCompare"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1159:1: entryRuleOpCompare : ruleOpCompare EOF ;
-    public final void entryRuleOpCompare() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1160:1: ( ruleOpCompare EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1161:1: ruleOpCompare EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpCompareRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpCompare_in_entryRuleOpCompare2410);
-            ruleOpCompare();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpCompareRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpCompare2417); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpCompare"
-
-
-    // $ANTLR start "ruleOpCompare"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1168:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
-    public final void ruleOpCompare() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1172:2: ( ( ( rule__OpCompare__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1173:1: ( ( rule__OpCompare__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1173:1: ( ( rule__OpCompare__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1174:1: ( rule__OpCompare__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpCompareAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1175:1: ( rule__OpCompare__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1175:2: rule__OpCompare__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpCompare__Alternatives_in_ruleOpCompare2443);
-            rule__OpCompare__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpCompareAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpCompare"
-
-
-    // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1187:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
-    public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1188:1: ( ruleXOtherOperatorExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1189:1: ruleXOtherOperatorExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXOtherOperatorExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression2470);
-            ruleXOtherOperatorExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXOtherOperatorExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXOtherOperatorExpression2477); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXOtherOperatorExpression"
-
-
-    // $ANTLR start "ruleXOtherOperatorExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1196:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
-    public final void ruleXOtherOperatorExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1200:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1201:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1201:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1202:1: ( rule__XOtherOperatorExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1203:1: ( rule__XOtherOperatorExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1203:2: rule__XOtherOperatorExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group__0_in_ruleXOtherOperatorExpression2503);
-            rule__XOtherOperatorExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXOtherOperatorExpression"
-
-
-    // $ANTLR start "entryRuleOpOther"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1215:1: entryRuleOpOther : ruleOpOther EOF ;
-    public final void entryRuleOpOther() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1216:1: ( ruleOpOther EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1217:1: ruleOpOther EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpOtherRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpOther_in_entryRuleOpOther2530);
-            ruleOpOther();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpOtherRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOther2537); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpOther"
-
-
-    // $ANTLR start "ruleOpOther"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1224:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
-    public final void ruleOpOther() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1228:2: ( ( ( rule__OpOther__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1229:1: ( ( rule__OpOther__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1229:1: ( ( rule__OpOther__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1230:1: ( rule__OpOther__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpOtherAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1231:1: ( rule__OpOther__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1231:2: rule__OpOther__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpOther__Alternatives_in_ruleOpOther2563);
-            rule__OpOther__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpOtherAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpOther"
-
-
-    // $ANTLR start "entryRuleXAdditiveExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1243:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
-    public final void entryRuleXAdditiveExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1244:1: ( ruleXAdditiveExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1245:1: ruleXAdditiveExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAdditiveExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression2590);
-            ruleXAdditiveExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAdditiveExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXAdditiveExpression2597); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXAdditiveExpression"
-
-
-    // $ANTLR start "ruleXAdditiveExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1252:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
-    public final void ruleXAdditiveExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1256:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1257:1: ( ( rule__XAdditiveExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1257:1: ( ( rule__XAdditiveExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1258:1: ( rule__XAdditiveExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1259:1: ( rule__XAdditiveExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1259:2: rule__XAdditiveExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XAdditiveExpression__Group__0_in_ruleXAdditiveExpression2623);
-            rule__XAdditiveExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXAdditiveExpression"
-
-
-    // $ANTLR start "entryRuleOpAdd"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1271:1: entryRuleOpAdd : ruleOpAdd EOF ;
-    public final void entryRuleOpAdd() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1272:1: ( ruleOpAdd EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1273:1: ruleOpAdd EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpAddRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpAdd_in_entryRuleOpAdd2650);
-            ruleOpAdd();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpAddRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAdd2657); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpAdd"
-
-
-    // $ANTLR start "ruleOpAdd"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1280:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
-    public final void ruleOpAdd() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1284:2: ( ( ( rule__OpAdd__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1285:1: ( ( rule__OpAdd__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1285:1: ( ( rule__OpAdd__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1286:1: ( rule__OpAdd__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpAddAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1287:1: ( rule__OpAdd__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1287:2: rule__OpAdd__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpAdd__Alternatives_in_ruleOpAdd2683);
-            rule__OpAdd__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpAddAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpAdd"
-
-
-    // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1299:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
-    public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1300:1: ( ruleXMultiplicativeExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1301:1: ruleXMultiplicativeExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXMultiplicativeExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression2710);
-            ruleXMultiplicativeExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXMultiplicativeExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXMultiplicativeExpression2717); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXMultiplicativeExpression"
-
-
-    // $ANTLR start "ruleXMultiplicativeExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1308:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
-    public final void ruleXMultiplicativeExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1312:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1313:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1313:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1314:1: ( rule__XMultiplicativeExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1315:1: ( rule__XMultiplicativeExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1315:2: rule__XMultiplicativeExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group__0_in_ruleXMultiplicativeExpression2743);
-            rule__XMultiplicativeExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXMultiplicativeExpression"
-
-
-    // $ANTLR start "entryRuleOpMulti"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1327:1: entryRuleOpMulti : ruleOpMulti EOF ;
-    public final void entryRuleOpMulti() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1328:1: ( ruleOpMulti EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1329:1: ruleOpMulti EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpMultiRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpMulti_in_entryRuleOpMulti2770);
-            ruleOpMulti();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpMultiRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMulti2777); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpMulti"
-
-
-    // $ANTLR start "ruleOpMulti"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1336:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
-    public final void ruleOpMulti() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1340:2: ( ( ( rule__OpMulti__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1341:1: ( ( rule__OpMulti__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1341:1: ( ( rule__OpMulti__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1342:1: ( rule__OpMulti__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpMultiAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1343:1: ( rule__OpMulti__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1343:2: rule__OpMulti__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpMulti__Alternatives_in_ruleOpMulti2803);
-            rule__OpMulti__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpMultiAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpMulti"
-
-
-    // $ANTLR start "entryRuleXUnaryOperation"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1355:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
-    public final void entryRuleXUnaryOperation() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1356:1: ( ruleXUnaryOperation EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1357:1: ruleXUnaryOperation EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXUnaryOperationRule()); 
-            }
-            pushFollow(FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation2830);
-            ruleXUnaryOperation();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXUnaryOperationRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXUnaryOperation2837); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXUnaryOperation"
-
-
-    // $ANTLR start "ruleXUnaryOperation"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1364:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
-    public final void ruleXUnaryOperation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1368:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1369:1: ( ( rule__XUnaryOperation__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1369:1: ( ( rule__XUnaryOperation__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1370:1: ( rule__XUnaryOperation__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1371:1: ( rule__XUnaryOperation__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1371:2: rule__XUnaryOperation__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XUnaryOperation__Alternatives_in_ruleXUnaryOperation2863);
-            rule__XUnaryOperation__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXUnaryOperation"
-
-
-    // $ANTLR start "entryRuleOpUnary"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1383:1: entryRuleOpUnary : ruleOpUnary EOF ;
-    public final void entryRuleOpUnary() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1384:1: ( ruleOpUnary EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1385:1: ruleOpUnary EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpUnaryRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpUnary_in_entryRuleOpUnary2890);
-            ruleOpUnary();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpUnaryRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpUnary2897); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpUnary"
-
-
-    // $ANTLR start "ruleOpUnary"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1392:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
-    public final void ruleOpUnary() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1396:2: ( ( ( rule__OpUnary__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1397:1: ( ( rule__OpUnary__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1397:1: ( ( rule__OpUnary__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1398:1: ( rule__OpUnary__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1399:1: ( rule__OpUnary__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1399:2: rule__OpUnary__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpUnary__Alternatives_in_ruleOpUnary2923);
-            rule__OpUnary__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpUnaryAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpUnary"
-
-
-    // $ANTLR start "entryRuleXCastedExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1411:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
-    public final void entryRuleXCastedExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1412:1: ( ruleXCastedExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1413:1: ruleXCastedExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCastedExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression2950);
-            ruleXCastedExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCastedExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXCastedExpression2957); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXCastedExpression"
-
-
-    // $ANTLR start "ruleXCastedExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1420:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
-    public final void ruleXCastedExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1424:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1425:1: ( ( rule__XCastedExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1425:1: ( ( rule__XCastedExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1426:1: ( rule__XCastedExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1427:1: ( rule__XCastedExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1427:2: rule__XCastedExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XCastedExpression__Group__0_in_ruleXCastedExpression2983);
-            rule__XCastedExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCastedExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXCastedExpression"
-
-
-    // $ANTLR start "entryRuleXPostfixOperation"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1439:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
-    public final void entryRuleXPostfixOperation() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1440:1: ( ruleXPostfixOperation EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1441:1: ruleXPostfixOperation EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXPostfixOperationRule()); 
-            }
-            pushFollow(FOLLOW_ruleXPostfixOperation_in_entryRuleXPostfixOperation3010);
-            ruleXPostfixOperation();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXPostfixOperationRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXPostfixOperation3017); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXPostfixOperation"
-
-
-    // $ANTLR start "ruleXPostfixOperation"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1448:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
-    public final void ruleXPostfixOperation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1452:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1453:1: ( ( rule__XPostfixOperation__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1453:1: ( ( rule__XPostfixOperation__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1454:1: ( rule__XPostfixOperation__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1455:1: ( rule__XPostfixOperation__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1455:2: rule__XPostfixOperation__Group__0
-            {
-            pushFollow(FOLLOW_rule__XPostfixOperation__Group__0_in_ruleXPostfixOperation3043);
-            rule__XPostfixOperation__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXPostfixOperationAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXPostfixOperation"
-
-
-    // $ANTLR start "entryRuleOpPostfix"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1467:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
-    public final void entryRuleOpPostfix() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1468:1: ( ruleOpPostfix EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1469:1: ruleOpPostfix EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpPostfixRule()); 
-            }
-            pushFollow(FOLLOW_ruleOpPostfix_in_entryRuleOpPostfix3070);
-            ruleOpPostfix();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpPostfixRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOpPostfix3077); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleOpPostfix"
-
-
-    // $ANTLR start "ruleOpPostfix"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1476:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
-    public final void ruleOpPostfix() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1480:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1481:1: ( ( rule__OpPostfix__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1481:1: ( ( rule__OpPostfix__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1482:1: ( rule__OpPostfix__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1483:1: ( rule__OpPostfix__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1483:2: rule__OpPostfix__Alternatives
-            {
-            pushFollow(FOLLOW_rule__OpPostfix__Alternatives_in_ruleOpPostfix3103);
-            rule__OpPostfix__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getOpPostfixAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleOpPostfix"
-
-
-    // $ANTLR start "entryRuleXMemberFeatureCall"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1495:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
-    public final void entryRuleXMemberFeatureCall() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1496:1: ( ruleXMemberFeatureCall EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1497:1: ruleXMemberFeatureCall EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXMemberFeatureCallRule()); 
-            }
-            pushFollow(FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall3130);
-            ruleXMemberFeatureCall();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXMemberFeatureCallRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXMemberFeatureCall3137); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXMemberFeatureCall"
-
-
-    // $ANTLR start "ruleXMemberFeatureCall"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1504:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
-    public final void ruleXMemberFeatureCall() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1508:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1509:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1509:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1510:1: ( rule__XMemberFeatureCall__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1511:1: ( rule__XMemberFeatureCall__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1511:2: rule__XMemberFeatureCall__Group__0
-            {
-            pushFollow(FOLLOW_rule__XMemberFeatureCall__Group__0_in_ruleXMemberFeatureCall3163);
-            rule__XMemberFeatureCall__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXMemberFeatureCall"
-
-
-    // $ANTLR start "entryRuleXPrimaryExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1523:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
-    public final void entryRuleXPrimaryExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1524:1: ( ruleXPrimaryExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1525:1: ruleXPrimaryExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXPrimaryExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression3190);
-            ruleXPrimaryExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXPrimaryExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXPrimaryExpression3197); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXPrimaryExpression"
-
-
-    // $ANTLR start "ruleXPrimaryExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1532:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
-    public final void ruleXPrimaryExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1536:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1537:1: ( ( rule__XPrimaryExpression__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1537:1: ( ( rule__XPrimaryExpression__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1538:1: ( rule__XPrimaryExpression__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1539:1: ( rule__XPrimaryExpression__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1539:2: rule__XPrimaryExpression__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XPrimaryExpression__Alternatives_in_ruleXPrimaryExpression3223);
-            rule__XPrimaryExpression__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXPrimaryExpression"
-
-
-    // $ANTLR start "entryRuleXLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1551:1: entryRuleXLiteral : ruleXLiteral EOF ;
-    public final void entryRuleXLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1552:1: ( ruleXLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1553:1: ruleXLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXLiteral_in_entryRuleXLiteral3250);
-            ruleXLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXLiteral3257); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXLiteral"
-
-
-    // $ANTLR start "ruleXLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1560:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
-    public final void ruleXLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1564:2: ( ( ( rule__XLiteral__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1565:1: ( ( rule__XLiteral__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1565:1: ( ( rule__XLiteral__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1566:1: ( rule__XLiteral__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXLiteralAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1567:1: ( rule__XLiteral__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1567:2: rule__XLiteral__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XLiteral__Alternatives_in_ruleXLiteral3283);
-            rule__XLiteral__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXLiteralAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXLiteral"
-
-
-    // $ANTLR start "entryRuleXCollectionLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1579:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
-    public final void entryRuleXCollectionLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1580:1: ( ruleXCollectionLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1581:1: ruleXCollectionLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCollectionLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral3310);
-            ruleXCollectionLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCollectionLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXCollectionLiteral3317); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXCollectionLiteral"
-
-
-    // $ANTLR start "ruleXCollectionLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1588:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
-    public final void ruleXCollectionLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1592:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1593:1: ( ( rule__XCollectionLiteral__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1593:1: ( ( rule__XCollectionLiteral__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1594:1: ( rule__XCollectionLiteral__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1595:1: ( rule__XCollectionLiteral__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1595:2: rule__XCollectionLiteral__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XCollectionLiteral__Alternatives_in_ruleXCollectionLiteral3343);
-            rule__XCollectionLiteral__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXCollectionLiteral"
-
-
-    // $ANTLR start "entryRuleXSetLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1607:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
-    public final void entryRuleXSetLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1608:1: ( ruleXSetLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1609:1: ruleXSetLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXSetLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral3370);
-            ruleXSetLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXSetLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXSetLiteral3377); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXSetLiteral"
-
-
-    // $ANTLR start "ruleXSetLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1616:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
-    public final void ruleXSetLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1620:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1621:1: ( ( rule__XSetLiteral__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1621:1: ( ( rule__XSetLiteral__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1622:1: ( rule__XSetLiteral__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXSetLiteralAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1623:1: ( rule__XSetLiteral__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1623:2: rule__XSetLiteral__Group__0
-            {
-            pushFollow(FOLLOW_rule__XSetLiteral__Group__0_in_ruleXSetLiteral3403);
-            rule__XSetLiteral__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXSetLiteralAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXSetLiteral"
-
-
-    // $ANTLR start "entryRuleXListLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1635:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
-    public final void entryRuleXListLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1636:1: ( ruleXListLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1637:1: ruleXListLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXListLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral3430);
-            ruleXListLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXListLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXListLiteral3437); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXListLiteral"
-
-
-    // $ANTLR start "ruleXListLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1644:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
-    public final void ruleXListLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1648:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1649:1: ( ( rule__XListLiteral__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1649:1: ( ( rule__XListLiteral__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1650:1: ( rule__XListLiteral__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXListLiteralAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1651:1: ( rule__XListLiteral__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1651:2: rule__XListLiteral__Group__0
-            {
-            pushFollow(FOLLOW_rule__XListLiteral__Group__0_in_ruleXListLiteral3463);
-            rule__XListLiteral__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXListLiteralAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXListLiteral"
-
-
-    // $ANTLR start "entryRuleXClosure"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1663:1: entryRuleXClosure : ruleXClosure EOF ;
-    public final void entryRuleXClosure() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1664:1: ( ruleXClosure EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1665:1: ruleXClosure EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXClosureRule()); 
-            }
-            pushFollow(FOLLOW_ruleXClosure_in_entryRuleXClosure3490);
-            ruleXClosure();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXClosureRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXClosure3497); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXClosure"
-
-
-    // $ANTLR start "ruleXClosure"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1672:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
-    public final void ruleXClosure() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1676:2: ( ( ( rule__XClosure__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1677:1: ( ( rule__XClosure__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1677:1: ( ( rule__XClosure__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1678:1: ( rule__XClosure__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXClosureAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1679:1: ( rule__XClosure__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1679:2: rule__XClosure__Group__0
-            {
-            pushFollow(FOLLOW_rule__XClosure__Group__0_in_ruleXClosure3523);
-            rule__XClosure__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXClosureAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXClosure"
-
-
-    // $ANTLR start "entryRuleXExpressionInClosure"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1691:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
-    public final void entryRuleXExpressionInClosure() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1692:1: ( ruleXExpressionInClosure EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1693:1: ruleXExpressionInClosure EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXExpressionInClosureRule()); 
-            }
-            pushFollow(FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure3550);
-            ruleXExpressionInClosure();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXExpressionInClosureRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionInClosure3557); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXExpressionInClosure"
-
-
-    // $ANTLR start "ruleXExpressionInClosure"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1700:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
-    public final void ruleXExpressionInClosure() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1704:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1705:1: ( ( rule__XExpressionInClosure__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1705:1: ( ( rule__XExpressionInClosure__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1706:1: ( rule__XExpressionInClosure__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1707:1: ( rule__XExpressionInClosure__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1707:2: rule__XExpressionInClosure__Group__0
-            {
-            pushFollow(FOLLOW_rule__XExpressionInClosure__Group__0_in_ruleXExpressionInClosure3583);
-            rule__XExpressionInClosure__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXExpressionInClosure"
-
-
-    // $ANTLR start "entryRuleXShortClosure"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1719:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
-    public final void entryRuleXShortClosure() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1720:1: ( ruleXShortClosure EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1721:1: ruleXShortClosure EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXShortClosureRule()); 
-            }
-            pushFollow(FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure3610);
-            ruleXShortClosure();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXShortClosureRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXShortClosure3617); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXShortClosure"
-
-
-    // $ANTLR start "ruleXShortClosure"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1728:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
-    public final void ruleXShortClosure() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1732:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1733:1: ( ( rule__XShortClosure__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1733:1: ( ( rule__XShortClosure__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1734:1: ( rule__XShortClosure__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXShortClosureAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1735:1: ( rule__XShortClosure__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1735:2: rule__XShortClosure__Group__0
-            {
-            pushFollow(FOLLOW_rule__XShortClosure__Group__0_in_ruleXShortClosure3643);
-            rule__XShortClosure__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXShortClosureAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXShortClosure"
-
-
-    // $ANTLR start "entryRuleXParenthesizedExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1747:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
-    public final void entryRuleXParenthesizedExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1748:1: ( ruleXParenthesizedExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1749:1: ruleXParenthesizedExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXParenthesizedExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression3670);
-            ruleXParenthesizedExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXParenthesizedExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXParenthesizedExpression3677); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXParenthesizedExpression"
-
-
-    // $ANTLR start "ruleXParenthesizedExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1756:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
-    public final void ruleXParenthesizedExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1760:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1761:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1761:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1762:1: ( rule__XParenthesizedExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1763:1: ( rule__XParenthesizedExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1763:2: rule__XParenthesizedExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__0_in_ruleXParenthesizedExpression3703);
-            rule__XParenthesizedExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXParenthesizedExpression"
-
-
-    // $ANTLR start "entryRuleXIfExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1775:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
-    public final void entryRuleXIfExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1776:1: ( ruleXIfExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1777:1: ruleXIfExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXIfExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression3730);
-            ruleXIfExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXIfExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXIfExpression3737); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXIfExpression"
-
-
-    // $ANTLR start "ruleXIfExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1784:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
-    public final void ruleXIfExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1788:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1789:1: ( ( rule__XIfExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1789:1: ( ( rule__XIfExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1790:1: ( rule__XIfExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXIfExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1791:1: ( rule__XIfExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1791:2: rule__XIfExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XIfExpression__Group__0_in_ruleXIfExpression3763);
-            rule__XIfExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXIfExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXIfExpression"
-
-
-    // $ANTLR start "entryRuleXSwitchExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1803:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
-    public final void entryRuleXSwitchExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1804:1: ( ruleXSwitchExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1805:1: ruleXSwitchExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXSwitchExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression3790);
-            ruleXSwitchExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXSwitchExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXSwitchExpression3797); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXSwitchExpression"
-
-
-    // $ANTLR start "ruleXSwitchExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1812:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
-    public final void ruleXSwitchExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1816:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1817:1: ( ( rule__XSwitchExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1817:1: ( ( rule__XSwitchExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1818:1: ( rule__XSwitchExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1819:1: ( rule__XSwitchExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1819:2: rule__XSwitchExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XSwitchExpression__Group__0_in_ruleXSwitchExpression3823);
-            rule__XSwitchExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXSwitchExpression"
-
-
-    // $ANTLR start "entryRuleXCasePart"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1831:1: entryRuleXCasePart : ruleXCasePart EOF ;
-    public final void entryRuleXCasePart() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1832:1: ( ruleXCasePart EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1833:1: ruleXCasePart EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCasePartRule()); 
-            }
-            pushFollow(FOLLOW_ruleXCasePart_in_entryRuleXCasePart3850);
-            ruleXCasePart();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCasePartRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXCasePart3857); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXCasePart"
-
-
-    // $ANTLR start "ruleXCasePart"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1840:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
-    public final void ruleXCasePart() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1844:2: ( ( ( rule__XCasePart__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1845:1: ( ( rule__XCasePart__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1845:1: ( ( rule__XCasePart__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1846:1: ( rule__XCasePart__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCasePartAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1847:1: ( rule__XCasePart__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1847:2: rule__XCasePart__Group__0
-            {
-            pushFollow(FOLLOW_rule__XCasePart__Group__0_in_ruleXCasePart3883);
-            rule__XCasePart__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCasePartAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXCasePart"
-
-
-    // $ANTLR start "entryRuleXForLoopExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1859:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
-    public final void entryRuleXForLoopExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1860:1: ( ruleXForLoopExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1861:1: ruleXForLoopExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXForLoopExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression3910);
-            ruleXForLoopExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXForLoopExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXForLoopExpression3917); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXForLoopExpression"
-
-
-    // $ANTLR start "ruleXForLoopExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1868:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
-    public final void ruleXForLoopExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1872:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1873:1: ( ( rule__XForLoopExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1873:1: ( ( rule__XForLoopExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1874:1: ( rule__XForLoopExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1875:1: ( rule__XForLoopExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1875:2: rule__XForLoopExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XForLoopExpression__Group__0_in_ruleXForLoopExpression3943);
-            rule__XForLoopExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXForLoopExpression"
-
-
-    // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1887:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
-    public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1888:1: ( ruleXBasicForLoopExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1889:1: ruleXBasicForLoopExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXBasicForLoopExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXBasicForLoopExpression_in_entryRuleXBasicForLoopExpression3970);
-            ruleXBasicForLoopExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXBasicForLoopExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXBasicForLoopExpression3977); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXBasicForLoopExpression"
-
-
-    // $ANTLR start "ruleXBasicForLoopExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1896:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
-    public final void ruleXBasicForLoopExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1900:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1901:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1901:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1902:1: ( rule__XBasicForLoopExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1903:1: ( rule__XBasicForLoopExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1903:2: rule__XBasicForLoopExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XBasicForLoopExpression__Group__0_in_ruleXBasicForLoopExpression4003);
-            rule__XBasicForLoopExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXBasicForLoopExpression"
-
-
-    // $ANTLR start "entryRuleXWhileExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1915:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
-    public final void entryRuleXWhileExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1916:1: ( ruleXWhileExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1917:1: ruleXWhileExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXWhileExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression4030);
-            ruleXWhileExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXWhileExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXWhileExpression4037); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXWhileExpression"
-
-
-    // $ANTLR start "ruleXWhileExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1924:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
-    public final void ruleXWhileExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1928:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1929:1: ( ( rule__XWhileExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1929:1: ( ( rule__XWhileExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1930:1: ( rule__XWhileExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1931:1: ( rule__XWhileExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1931:2: rule__XWhileExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XWhileExpression__Group__0_in_ruleXWhileExpression4063);
-            rule__XWhileExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXWhileExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXWhileExpression"
-
-
-    // $ANTLR start "entryRuleXDoWhileExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1943:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
-    public final void entryRuleXDoWhileExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1944:1: ( ruleXDoWhileExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1945:1: ruleXDoWhileExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXDoWhileExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression4090);
-            ruleXDoWhileExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXDoWhileExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXDoWhileExpression4097); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXDoWhileExpression"
-
-
-    // $ANTLR start "ruleXDoWhileExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1952:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
-    public final void ruleXDoWhileExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1956:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1957:1: ( ( rule__XDoWhileExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1957:1: ( ( rule__XDoWhileExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1958:1: ( rule__XDoWhileExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1959:1: ( rule__XDoWhileExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1959:2: rule__XDoWhileExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XDoWhileExpression__Group__0_in_ruleXDoWhileExpression4123);
-            rule__XDoWhileExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXDoWhileExpression"
-
-
-    // $ANTLR start "entryRuleXBlockExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1971:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
-    public final void entryRuleXBlockExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1972:1: ( ruleXBlockExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1973:1: ruleXBlockExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXBlockExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression4150);
-            ruleXBlockExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXBlockExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXBlockExpression4157); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXBlockExpression"
-
-
-    // $ANTLR start "ruleXBlockExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1980:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
-    public final void ruleXBlockExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1984:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1985:1: ( ( rule__XBlockExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1985:1: ( ( rule__XBlockExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1986:1: ( rule__XBlockExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1987:1: ( rule__XBlockExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1987:2: rule__XBlockExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XBlockExpression__Group__0_in_ruleXBlockExpression4183);
-            rule__XBlockExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXBlockExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXBlockExpression"
-
-
-    // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:1999:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
-    public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2000:1: ( ruleXExpressionOrVarDeclaration EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2001:1: ruleXExpressionOrVarDeclaration EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
-            }
-            pushFollow(FOLLOW_ruleXExpressionOrVarDeclaration_in_entryRuleXExpressionOrVarDeclaration4210);
-            ruleXExpressionOrVarDeclaration();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXExpressionOrVarDeclarationRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionOrVarDeclaration4217); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXExpressionOrVarDeclaration"
-
-
-    // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2008:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
-    public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2012:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2013:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2013:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2014:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2015:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2015:2: rule__XExpressionOrVarDeclaration__Alternatives
-            {
-            pushFollow(FOLLOW_rule__XExpressionOrVarDeclaration__Alternatives_in_ruleXExpressionOrVarDeclaration4243);
-            rule__XExpressionOrVarDeclaration__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXExpressionOrVarDeclaration"
-
-
-    // $ANTLR start "entryRuleXVariableDeclaration"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2027:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
-    public final void entryRuleXVariableDeclaration() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2028:1: ( ruleXVariableDeclaration EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2029:1: ruleXVariableDeclaration EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXVariableDeclarationRule()); 
-            }
-            pushFollow(FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration4270);
-            ruleXVariableDeclaration();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXVariableDeclarationRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXVariableDeclaration4277); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXVariableDeclaration"
-
-
-    // $ANTLR start "ruleXVariableDeclaration"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2036:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
-    public final void ruleXVariableDeclaration() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2040:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2041:1: ( ( rule__XVariableDeclaration__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2041:1: ( ( rule__XVariableDeclaration__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2042:1: ( rule__XVariableDeclaration__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2043:1: ( rule__XVariableDeclaration__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2043:2: rule__XVariableDeclaration__Group__0
-            {
-            pushFollow(FOLLOW_rule__XVariableDeclaration__Group__0_in_ruleXVariableDeclaration4303);
-            rule__XVariableDeclaration__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXVariableDeclaration"
-
-
-    // $ANTLR start "entryRuleJvmFormalParameter"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2055:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
-    public final void entryRuleJvmFormalParameter() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2056:1: ( ruleJvmFormalParameter EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2057:1: ruleJvmFormalParameter EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmFormalParameterRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter4330);
-            ruleJvmFormalParameter();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmFormalParameterRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmFormalParameter4337); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmFormalParameter"
-
-
-    // $ANTLR start "ruleJvmFormalParameter"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2064:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
-    public final void ruleJvmFormalParameter() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2068:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2069:1: ( ( rule__JvmFormalParameter__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2069:1: ( ( rule__JvmFormalParameter__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2070:1: ( rule__JvmFormalParameter__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2071:1: ( rule__JvmFormalParameter__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2071:2: rule__JvmFormalParameter__Group__0
-            {
-            pushFollow(FOLLOW_rule__JvmFormalParameter__Group__0_in_ruleJvmFormalParameter4363);
-            rule__JvmFormalParameter__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmFormalParameter"
-
-
-    // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2083:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
-    public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2084:1: ( ruleFullJvmFormalParameter EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2085:1: ruleFullJvmFormalParameter EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getFullJvmFormalParameterRule()); 
-            }
-            pushFollow(FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter4390);
-            ruleFullJvmFormalParameter();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getFullJvmFormalParameterRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleFullJvmFormalParameter4397); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleFullJvmFormalParameter"
-
-
-    // $ANTLR start "ruleFullJvmFormalParameter"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2092:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
-    public final void ruleFullJvmFormalParameter() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2096:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2097:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2097:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2098:1: ( rule__FullJvmFormalParameter__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2099:1: ( rule__FullJvmFormalParameter__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2099:2: rule__FullJvmFormalParameter__Group__0
-            {
-            pushFollow(FOLLOW_rule__FullJvmFormalParameter__Group__0_in_ruleFullJvmFormalParameter4423);
-            rule__FullJvmFormalParameter__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleFullJvmFormalParameter"
-
-
-    // $ANTLR start "entryRuleXFeatureCall"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2111:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
-    public final void entryRuleXFeatureCall() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2112:1: ( ruleXFeatureCall EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2113:1: ruleXFeatureCall EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXFeatureCallRule()); 
-            }
-            pushFollow(FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall4450);
-            ruleXFeatureCall();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXFeatureCallRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXFeatureCall4457); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXFeatureCall"
-
-
-    // $ANTLR start "ruleXFeatureCall"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2120:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
-    public final void ruleXFeatureCall() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2124:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2125:1: ( ( rule__XFeatureCall__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2125:1: ( ( rule__XFeatureCall__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2126:1: ( rule__XFeatureCall__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXFeatureCallAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2127:1: ( rule__XFeatureCall__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2127:2: rule__XFeatureCall__Group__0
-            {
-            pushFollow(FOLLOW_rule__XFeatureCall__Group__0_in_ruleXFeatureCall4483);
-            rule__XFeatureCall__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXFeatureCallAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXFeatureCall"
-
-
-    // $ANTLR start "entryRuleFeatureCallID"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2139:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
-    public final void entryRuleFeatureCallID() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2140:1: ( ruleFeatureCallID EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2141:1: ruleFeatureCallID EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getFeatureCallIDRule()); 
-            }
-            pushFollow(FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID4510);
-            ruleFeatureCallID();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getFeatureCallIDRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureCallID4517); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleFeatureCallID"
-
-
-    // $ANTLR start "ruleFeatureCallID"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2148:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
-    public final void ruleFeatureCallID() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2152:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2153:1: ( ( rule__FeatureCallID__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2153:1: ( ( rule__FeatureCallID__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2154:1: ( rule__FeatureCallID__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2155:1: ( rule__FeatureCallID__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2155:2: rule__FeatureCallID__Alternatives
-            {
-            pushFollow(FOLLOW_rule__FeatureCallID__Alternatives_in_ruleFeatureCallID4543);
-            rule__FeatureCallID__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleFeatureCallID"
-
-
-    // $ANTLR start "entryRuleIdOrSuper"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2167:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
-    public final void entryRuleIdOrSuper() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2168:1: ( ruleIdOrSuper EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2169:1: ruleIdOrSuper EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getIdOrSuperRule()); 
-            }
-            pushFollow(FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper4570);
-            ruleIdOrSuper();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getIdOrSuperRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleIdOrSuper4577); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleIdOrSuper"
-
-
-    // $ANTLR start "ruleIdOrSuper"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2176:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
-    public final void ruleIdOrSuper() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2180:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2181:1: ( ( rule__IdOrSuper__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2181:1: ( ( rule__IdOrSuper__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2182:1: ( rule__IdOrSuper__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2183:1: ( rule__IdOrSuper__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2183:2: rule__IdOrSuper__Alternatives
-            {
-            pushFollow(FOLLOW_rule__IdOrSuper__Alternatives_in_ruleIdOrSuper4603);
-            rule__IdOrSuper__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleIdOrSuper"
-
-
-    // $ANTLR start "entryRuleXConstructorCall"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2195:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
-    public final void entryRuleXConstructorCall() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2196:1: ( ruleXConstructorCall EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2197:1: ruleXConstructorCall EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXConstructorCallRule()); 
-            }
-            pushFollow(FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall4630);
-            ruleXConstructorCall();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXConstructorCallRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXConstructorCall4637); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXConstructorCall"
-
-
-    // $ANTLR start "ruleXConstructorCall"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2204:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
-    public final void ruleXConstructorCall() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2208:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2209:1: ( ( rule__XConstructorCall__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2209:1: ( ( rule__XConstructorCall__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2210:1: ( rule__XConstructorCall__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXConstructorCallAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2211:1: ( rule__XConstructorCall__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2211:2: rule__XConstructorCall__Group__0
-            {
-            pushFollow(FOLLOW_rule__XConstructorCall__Group__0_in_ruleXConstructorCall4663);
-            rule__XConstructorCall__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXConstructorCallAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXConstructorCall"
-
-
-    // $ANTLR start "entryRuleXBooleanLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2223:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
-    public final void entryRuleXBooleanLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2224:1: ( ruleXBooleanLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2225:1: ruleXBooleanLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXBooleanLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral4690);
-            ruleXBooleanLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXBooleanLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXBooleanLiteral4697); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXBooleanLiteral"
-
-
-    // $ANTLR start "ruleXBooleanLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2232:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
-    public final void ruleXBooleanLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2236:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2237:1: ( ( rule__XBooleanLiteral__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2237:1: ( ( rule__XBooleanLiteral__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2238:1: ( rule__XBooleanLiteral__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2239:1: ( rule__XBooleanLiteral__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2239:2: rule__XBooleanLiteral__Group__0
-            {
-            pushFollow(FOLLOW_rule__XBooleanLiteral__Group__0_in_ruleXBooleanLiteral4723);
-            rule__XBooleanLiteral__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXBooleanLiteral"
-
-
-    // $ANTLR start "entryRuleXNullLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2251:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
-    public final void entryRuleXNullLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2252:1: ( ruleXNullLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2253:1: ruleXNullLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXNullLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral4750);
-            ruleXNullLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXNullLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXNullLiteral4757); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXNullLiteral"
-
-
-    // $ANTLR start "ruleXNullLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2260:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
-    public final void ruleXNullLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2264:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2265:1: ( ( rule__XNullLiteral__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2265:1: ( ( rule__XNullLiteral__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2266:1: ( rule__XNullLiteral__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXNullLiteralAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2267:1: ( rule__XNullLiteral__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2267:2: rule__XNullLiteral__Group__0
-            {
-            pushFollow(FOLLOW_rule__XNullLiteral__Group__0_in_ruleXNullLiteral4783);
-            rule__XNullLiteral__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXNullLiteralAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXNullLiteral"
-
-
-    // $ANTLR start "entryRuleXNumberLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2279:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
-    public final void entryRuleXNumberLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2280:1: ( ruleXNumberLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2281:1: ruleXNumberLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXNumberLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral4810);
-            ruleXNumberLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXNumberLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXNumberLiteral4817); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXNumberLiteral"
-
-
-    // $ANTLR start "ruleXNumberLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2288:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
-    public final void ruleXNumberLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2292:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2293:1: ( ( rule__XNumberLiteral__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2293:1: ( ( rule__XNumberLiteral__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2294:1: ( rule__XNumberLiteral__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2295:1: ( rule__XNumberLiteral__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2295:2: rule__XNumberLiteral__Group__0
-            {
-            pushFollow(FOLLOW_rule__XNumberLiteral__Group__0_in_ruleXNumberLiteral4843);
-            rule__XNumberLiteral__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXNumberLiteralAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXNumberLiteral"
-
-
-    // $ANTLR start "entryRuleXStringLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2307:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
-    public final void entryRuleXStringLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2308:1: ( ruleXStringLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2309:1: ruleXStringLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXStringLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral4870);
-            ruleXStringLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXStringLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXStringLiteral4877); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXStringLiteral"
-
-
-    // $ANTLR start "ruleXStringLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2316:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
-    public final void ruleXStringLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2320:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2321:1: ( ( rule__XStringLiteral__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2321:1: ( ( rule__XStringLiteral__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2322:1: ( rule__XStringLiteral__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXStringLiteralAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2323:1: ( rule__XStringLiteral__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2323:2: rule__XStringLiteral__Group__0
-            {
-            pushFollow(FOLLOW_rule__XStringLiteral__Group__0_in_ruleXStringLiteral4903);
-            rule__XStringLiteral__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXStringLiteralAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXStringLiteral"
-
-
-    // $ANTLR start "entryRuleXTypeLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2335:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
-    public final void entryRuleXTypeLiteral() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2336:1: ( ruleXTypeLiteral EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2337:1: ruleXTypeLiteral EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXTypeLiteralRule()); 
-            }
-            pushFollow(FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral4930);
-            ruleXTypeLiteral();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXTypeLiteralRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXTypeLiteral4937); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXTypeLiteral"
-
-
-    // $ANTLR start "ruleXTypeLiteral"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2344:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
-    public final void ruleXTypeLiteral() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2348:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2349:1: ( ( rule__XTypeLiteral__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2349:1: ( ( rule__XTypeLiteral__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2350:1: ( rule__XTypeLiteral__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2351:1: ( rule__XTypeLiteral__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2351:2: rule__XTypeLiteral__Group__0
-            {
-            pushFollow(FOLLOW_rule__XTypeLiteral__Group__0_in_ruleXTypeLiteral4963);
-            rule__XTypeLiteral__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXTypeLiteralAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXTypeLiteral"
-
-
-    // $ANTLR start "entryRuleXThrowExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2363:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
-    public final void entryRuleXThrowExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2364:1: ( ruleXThrowExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2365:1: ruleXThrowExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXThrowExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression4990);
-            ruleXThrowExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXThrowExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXThrowExpression4997); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXThrowExpression"
-
-
-    // $ANTLR start "ruleXThrowExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2372:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
-    public final void ruleXThrowExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2376:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2377:1: ( ( rule__XThrowExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2377:1: ( ( rule__XThrowExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2378:1: ( rule__XThrowExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2379:1: ( rule__XThrowExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2379:2: rule__XThrowExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XThrowExpression__Group__0_in_ruleXThrowExpression5023);
-            rule__XThrowExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXThrowExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXThrowExpression"
-
-
-    // $ANTLR start "entryRuleXReturnExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2391:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
-    public final void entryRuleXReturnExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2392:1: ( ruleXReturnExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2393:1: ruleXReturnExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXReturnExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression5050);
-            ruleXReturnExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXReturnExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXReturnExpression5057); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXReturnExpression"
-
-
-    // $ANTLR start "ruleXReturnExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2400:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
-    public final void ruleXReturnExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2404:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2405:1: ( ( rule__XReturnExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2405:1: ( ( rule__XReturnExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2406:1: ( rule__XReturnExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2407:1: ( rule__XReturnExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2407:2: rule__XReturnExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XReturnExpression__Group__0_in_ruleXReturnExpression5083);
-            rule__XReturnExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXReturnExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXReturnExpression"
-
-
-    // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2419:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
-    public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2420:1: ( ruleXTryCatchFinallyExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2421:1: ruleXTryCatchFinallyExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression5110);
-            ruleXTryCatchFinallyExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXTryCatchFinallyExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression5117); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXTryCatchFinallyExpression"
-
-
-    // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2428:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
-    public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2432:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2433:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2433:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2434:1: ( rule__XTryCatchFinallyExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2435:1: ( rule__XTryCatchFinallyExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2435:2: rule__XTryCatchFinallyExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__0_in_ruleXTryCatchFinallyExpression5143);
-            rule__XTryCatchFinallyExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXTryCatchFinallyExpression"
-
-
-    // $ANTLR start "entryRuleXSynchronizedExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2447:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
-    public final void entryRuleXSynchronizedExpression() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2448:1: ( ruleXSynchronizedExpression EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2449:1: ruleXSynchronizedExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXSynchronizedExpressionRule()); 
-            }
-            pushFollow(FOLLOW_ruleXSynchronizedExpression_in_entryRuleXSynchronizedExpression5170);
-            ruleXSynchronizedExpression();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXSynchronizedExpressionRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXSynchronizedExpression5177); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXSynchronizedExpression"
-
-
-    // $ANTLR start "ruleXSynchronizedExpression"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2456:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
-    public final void ruleXSynchronizedExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2460:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2461:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2461:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2462:1: ( rule__XSynchronizedExpression__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2463:1: ( rule__XSynchronizedExpression__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2463:2: rule__XSynchronizedExpression__Group__0
-            {
-            pushFollow(FOLLOW_rule__XSynchronizedExpression__Group__0_in_ruleXSynchronizedExpression5203);
-            rule__XSynchronizedExpression__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXSynchronizedExpression"
-
-
-    // $ANTLR start "entryRuleXCatchClause"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2475:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
-    public final void entryRuleXCatchClause() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2476:1: ( ruleXCatchClause EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2477:1: ruleXCatchClause EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCatchClauseRule()); 
-            }
-            pushFollow(FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause5230);
-            ruleXCatchClause();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCatchClauseRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXCatchClause5237); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXCatchClause"
-
-
-    // $ANTLR start "ruleXCatchClause"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2484:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
-    public final void ruleXCatchClause() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2488:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2489:1: ( ( rule__XCatchClause__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2489:1: ( ( rule__XCatchClause__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2490:1: ( rule__XCatchClause__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXCatchClauseAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2491:1: ( rule__XCatchClause__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2491:2: rule__XCatchClause__Group__0
-            {
-            pushFollow(FOLLOW_rule__XCatchClause__Group__0_in_ruleXCatchClause5263);
-            rule__XCatchClause__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXCatchClauseAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXCatchClause"
-
-
-    // $ANTLR start "entryRuleNumber"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2503:1: entryRuleNumber : ruleNumber EOF ;
-    public final void entryRuleNumber() throws RecognitionException {
-
-        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
-
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2507:1: ( ruleNumber EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2508:1: ruleNumber EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getNumberRule()); 
-            }
-            pushFollow(FOLLOW_ruleNumber_in_entryRuleNumber5295);
-            ruleNumber();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getNumberRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleNumber5302); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	myHiddenTokenState.restore();
-
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleNumber"
-
-
-    // $ANTLR start "ruleNumber"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2518:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
-    public final void ruleNumber() throws RecognitionException {
-
-        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2523:2: ( ( ( rule__Number__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2524:1: ( ( rule__Number__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2524:1: ( ( rule__Number__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2525:1: ( rule__Number__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getNumberAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2526:1: ( rule__Number__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2526:2: rule__Number__Alternatives
-            {
-            pushFollow(FOLLOW_rule__Number__Alternatives_in_ruleNumber5332);
-            rule__Number__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getNumberAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-            	myHiddenTokenState.restore();
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleNumber"
-
-
-    // $ANTLR start "entryRuleJvmTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2541:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
-    public final void entryRuleJvmTypeReference() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2542:1: ( ruleJvmTypeReference EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2543:1: ruleJvmTypeReference EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmTypeReferenceRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference5361);
-            ruleJvmTypeReference();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmTypeReferenceRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmTypeReference5368); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmTypeReference"
-
-
-    // $ANTLR start "ruleJvmTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2550:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
-    public final void ruleJvmTypeReference() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2554:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2555:1: ( ( rule__JvmTypeReference__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2555:1: ( ( rule__JvmTypeReference__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2556:1: ( rule__JvmTypeReference__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2557:1: ( rule__JvmTypeReference__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2557:2: rule__JvmTypeReference__Alternatives
-            {
-            pushFollow(FOLLOW_rule__JvmTypeReference__Alternatives_in_ruleJvmTypeReference5394);
-            rule__JvmTypeReference__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmTypeReference"
-
-
-    // $ANTLR start "entryRuleArrayBrackets"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2569:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
-    public final void entryRuleArrayBrackets() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2570:1: ( ruleArrayBrackets EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2571:1: ruleArrayBrackets EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getArrayBracketsRule()); 
-            }
-            pushFollow(FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets5421);
-            ruleArrayBrackets();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getArrayBracketsRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleArrayBrackets5428); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleArrayBrackets"
-
-
-    // $ANTLR start "ruleArrayBrackets"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2578:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
-    public final void ruleArrayBrackets() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2582:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2583:1: ( ( rule__ArrayBrackets__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2583:1: ( ( rule__ArrayBrackets__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2584:1: ( rule__ArrayBrackets__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getArrayBracketsAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2585:1: ( rule__ArrayBrackets__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2585:2: rule__ArrayBrackets__Group__0
-            {
-            pushFollow(FOLLOW_rule__ArrayBrackets__Group__0_in_ruleArrayBrackets5454);
-            rule__ArrayBrackets__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getArrayBracketsAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleArrayBrackets"
-
-
-    // $ANTLR start "entryRuleXFunctionTypeRef"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2597:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
-    public final void entryRuleXFunctionTypeRef() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2598:1: ( ruleXFunctionTypeRef EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2599:1: ruleXFunctionTypeRef EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXFunctionTypeRefRule()); 
-            }
-            pushFollow(FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef5481);
-            ruleXFunctionTypeRef();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXFunctionTypeRefRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXFunctionTypeRef5488); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXFunctionTypeRef"
-
-
-    // $ANTLR start "ruleXFunctionTypeRef"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2606:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
-    public final void ruleXFunctionTypeRef() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2610:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2611:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2611:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2612:1: ( rule__XFunctionTypeRef__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2613:1: ( rule__XFunctionTypeRef__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2613:2: rule__XFunctionTypeRef__Group__0
-            {
-            pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__0_in_ruleXFunctionTypeRef5514);
-            rule__XFunctionTypeRef__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXFunctionTypeRef"
-
-
-    // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2625:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
-    public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2626:1: ( ruleJvmParameterizedTypeReference EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2627:1: ruleJvmParameterizedTypeReference EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference5541);
-            ruleJvmParameterizedTypeReference();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference5548); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmParameterizedTypeReference"
-
-
-    // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2634:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
-    public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2638:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2639:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2639:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2640:1: ( rule__JvmParameterizedTypeReference__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2641:1: ( rule__JvmParameterizedTypeReference__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2641:2: rule__JvmParameterizedTypeReference__Group__0
-            {
-            pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group__0_in_ruleJvmParameterizedTypeReference5574);
-            rule__JvmParameterizedTypeReference__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmParameterizedTypeReference"
-
-
-    // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2653:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
-    public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2654:1: ( ruleJvmArgumentTypeReference EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2655:1: ruleJvmArgumentTypeReference EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference5601);
-            ruleJvmArgumentTypeReference();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmArgumentTypeReferenceRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference5608); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmArgumentTypeReference"
-
-
-    // $ANTLR start "ruleJvmArgumentTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2662:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
-    public final void ruleJvmArgumentTypeReference() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2666:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2667:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2667:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2668:1: ( rule__JvmArgumentTypeReference__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2669:1: ( rule__JvmArgumentTypeReference__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2669:2: rule__JvmArgumentTypeReference__Alternatives
-            {
-            pushFollow(FOLLOW_rule__JvmArgumentTypeReference__Alternatives_in_ruleJvmArgumentTypeReference5634);
-            rule__JvmArgumentTypeReference__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmArgumentTypeReference"
-
-
-    // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2681:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
-    public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2682:1: ( ruleJvmWildcardTypeReference EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2683:1: ruleJvmWildcardTypeReference EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference5661);
-            ruleJvmWildcardTypeReference();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmWildcardTypeReferenceRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference5668); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmWildcardTypeReference"
-
-
-    // $ANTLR start "ruleJvmWildcardTypeReference"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2690:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
-    public final void ruleJvmWildcardTypeReference() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2694:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2695:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2695:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2696:1: ( rule__JvmWildcardTypeReference__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2697:1: ( rule__JvmWildcardTypeReference__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2697:2: rule__JvmWildcardTypeReference__Group__0
-            {
-            pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__0_in_ruleJvmWildcardTypeReference5694);
-            rule__JvmWildcardTypeReference__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmWildcardTypeReference"
-
-
-    // $ANTLR start "entryRuleJvmUpperBound"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2709:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
-    public final void entryRuleJvmUpperBound() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2710:1: ( ruleJvmUpperBound EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2711:1: ruleJvmUpperBound EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmUpperBoundRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound5721);
-            ruleJvmUpperBound();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmUpperBoundRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBound5728); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmUpperBound"
-
-
-    // $ANTLR start "ruleJvmUpperBound"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2718:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
-    public final void ruleJvmUpperBound() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2722:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2723:1: ( ( rule__JvmUpperBound__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2723:1: ( ( rule__JvmUpperBound__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2724:1: ( rule__JvmUpperBound__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2725:1: ( rule__JvmUpperBound__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2725:2: rule__JvmUpperBound__Group__0
-            {
-            pushFollow(FOLLOW_rule__JvmUpperBound__Group__0_in_ruleJvmUpperBound5754);
-            rule__JvmUpperBound__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmUpperBound"
-
-
-    // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2737:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
-    public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2738:1: ( ruleJvmUpperBoundAnded EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2739:1: ruleJvmUpperBoundAnded EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmUpperBoundAndedRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded5781);
-            ruleJvmUpperBoundAnded();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmUpperBoundAndedRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded5788); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmUpperBoundAnded"
-
-
-    // $ANTLR start "ruleJvmUpperBoundAnded"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2746:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
-    public final void ruleJvmUpperBoundAnded() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2750:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2751:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2751:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2752:1: ( rule__JvmUpperBoundAnded__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2753:1: ( rule__JvmUpperBoundAnded__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2753:2: rule__JvmUpperBoundAnded__Group__0
-            {
-            pushFollow(FOLLOW_rule__JvmUpperBoundAnded__Group__0_in_ruleJvmUpperBoundAnded5814);
-            rule__JvmUpperBoundAnded__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmUpperBoundAnded"
-
-
-    // $ANTLR start "entryRuleJvmLowerBound"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2765:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
-    public final void entryRuleJvmLowerBound() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2766:1: ( ruleJvmLowerBound EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2767:1: ruleJvmLowerBound EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmLowerBoundRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound5841);
-            ruleJvmLowerBound();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmLowerBoundRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBound5848); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmLowerBound"
-
-
-    // $ANTLR start "ruleJvmLowerBound"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2774:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
-    public final void ruleJvmLowerBound() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2778:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2779:1: ( ( rule__JvmLowerBound__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2779:1: ( ( rule__JvmLowerBound__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2780:1: ( rule__JvmLowerBound__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2781:1: ( rule__JvmLowerBound__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2781:2: rule__JvmLowerBound__Group__0
-            {
-            pushFollow(FOLLOW_rule__JvmLowerBound__Group__0_in_ruleJvmLowerBound5874);
-            rule__JvmLowerBound__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmLowerBound"
-
-
-    // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2793:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
-    public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2794:1: ( ruleJvmLowerBoundAnded EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2795:1: ruleJvmLowerBoundAnded EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmLowerBoundAndedRule()); 
-            }
-            pushFollow(FOLLOW_ruleJvmLowerBoundAnded_in_entryRuleJvmLowerBoundAnded5901);
-            ruleJvmLowerBoundAnded();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmLowerBoundAndedRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBoundAnded5908); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleJvmLowerBoundAnded"
-
-
-    // $ANTLR start "ruleJvmLowerBoundAnded"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2802:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
-    public final void ruleJvmLowerBoundAnded() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2806:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2807:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2807:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2808:1: ( rule__JvmLowerBoundAnded__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2809:1: ( rule__JvmLowerBoundAnded__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2809:2: rule__JvmLowerBoundAnded__Group__0
-            {
-            pushFollow(FOLLOW_rule__JvmLowerBoundAnded__Group__0_in_ruleJvmLowerBoundAnded5934);
-            rule__JvmLowerBoundAnded__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleJvmLowerBoundAnded"
-
-
-    // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2823:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
-    public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2824:1: ( ruleQualifiedNameWithWildcard EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2825:1: ruleQualifiedNameWithWildcard EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameWithWildcardRule()); 
-            }
-            pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard5963);
-            ruleQualifiedNameWithWildcard();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameWithWildcardRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard5970); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleQualifiedNameWithWildcard"
-
-
-    // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2832:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
-    public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2836:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2837:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2837:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2838:1: ( rule__QualifiedNameWithWildcard__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2839:1: ( rule__QualifiedNameWithWildcard__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2839:2: rule__QualifiedNameWithWildcard__Group__0
-            {
-            pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard5996);
-            rule__QualifiedNameWithWildcard__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleQualifiedNameWithWildcard"
-
-
-    // $ANTLR start "entryRuleXImportDeclaration"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2853:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
-    public final void entryRuleXImportDeclaration() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2854:1: ( ruleXImportDeclaration EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2855:1: ruleXImportDeclaration EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXImportDeclarationRule()); 
-            }
-            pushFollow(FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration6025);
-            ruleXImportDeclaration();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXImportDeclarationRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleXImportDeclaration6032); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleXImportDeclaration"
-
-
-    // $ANTLR start "ruleXImportDeclaration"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2862:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
-    public final void ruleXImportDeclaration() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2866:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2867:1: ( ( rule__XImportDeclaration__Group__0 ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2867:1: ( ( rule__XImportDeclaration__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2868:1: ( rule__XImportDeclaration__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2869:1: ( rule__XImportDeclaration__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2869:2: rule__XImportDeclaration__Group__0
-            {
-            pushFollow(FOLLOW_rule__XImportDeclaration__Group__0_in_ruleXImportDeclaration6058);
-            rule__XImportDeclaration__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getXImportDeclarationAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleXImportDeclaration"
-
-
-    // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2881:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
-    public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2882:1: ( ruleQualifiedNameInStaticImport EOF )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2883:1: ruleQualifiedNameInStaticImport EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameInStaticImportRule()); 
-            }
-            pushFollow(FOLLOW_ruleQualifiedNameInStaticImport_in_entryRuleQualifiedNameInStaticImport6085);
-            ruleQualifiedNameInStaticImport();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameInStaticImportRule()); 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameInStaticImport6092); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleQualifiedNameInStaticImport"
-
-
-    // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2890:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
-    public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2894:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2895:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2895:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2896:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2896:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2897:1: ( rule__QualifiedNameInStaticImport__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2898:1: ( rule__QualifiedNameInStaticImport__Group__0 )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2898:2: rule__QualifiedNameInStaticImport__Group__0
-            {
-            pushFollow(FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport6120);
-            rule__QualifiedNameInStaticImport__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
-            }
-
-            }
-
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2901:1: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2902:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2903:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
-            loop2:
-            do {
-                int alt2=2;
-                int LA2_0 = input.LA(1);
-
-                if ( (LA2_0==RULE_ID) ) {
-                    int LA2_2 = input.LA(2);
-
-                    if ( (LA2_2==43) ) {
-                        alt2=1;
-                    }
-
-
-                }
-
-
-                switch (alt2) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2903:2: rule__QualifiedNameInStaticImport__Group__0
-            	    {
-            	    pushFollow(FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport6132);
-            	    rule__QualifiedNameInStaticImport__Group__0();
-
-            	    state._fsp--;
-            	    if (state.failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop2;
-                }
-            } while (true);
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleQualifiedNameInStaticImport"
-
-
-    // $ANTLR start "ruleSashOrientation"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2917:1: ruleSashOrientation : ( ( rule__SashOrientation__Alternatives ) ) ;
-    public final void ruleSashOrientation() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2921:1: ( ( ( rule__SashOrientation__Alternatives ) ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2922:1: ( ( rule__SashOrientation__Alternatives ) )
-            {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2922:1: ( ( rule__SashOrientation__Alternatives ) )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2923:1: ( rule__SashOrientation__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSashOrientationAccess().getAlternatives()); 
-            }
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2924:1: ( rule__SashOrientation__Alternatives )
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2924:2: rule__SashOrientation__Alternatives
-            {
-            pushFollow(FOLLOW_rule__SashOrientation__Alternatives_in_ruleSashOrientation6172);
-            rule__SashOrientation__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSashOrientationAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleSashOrientation"
-
-
-    // $ANTLR start "rule__PerspectiveElement__Alternatives"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2935:1: rule__PerspectiveElement__Alternatives : ( ( rulePerspectiveSashContainer ) | ( rulePerspectivePartStack ) | ( rulePerspectivePart ) );
-    public final void rule__PerspectiveElement__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2939:1: ( ( rulePerspectiveSashContainer ) | ( rulePerspectivePartStack ) | ( rulePerspectivePart ) )
-            int alt3=3;
-            switch ( input.LA(1) ) {
-            case 62:
-                {
-                alt3=1;
-                }
-                break;
-            case 66:
-                {
-                alt3=2;
-                }
-                break;
-            case 67:
-                {
-                alt3=3;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 3, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt3) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2940:1: ( rulePerspectiveSashContainer )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2940:1: ( rulePerspectiveSashContainer )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2941:1: rulePerspectiveSashContainer
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveElementAccess().getPerspectiveSashContainerParserRuleCall_0()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveSashContainer_in_rule__PerspectiveElement__Alternatives6207);
-                    rulePerspectiveSashContainer();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveElementAccess().getPerspectiveSashContainerParserRuleCall_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2946:6: ( rulePerspectivePartStack )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2946:6: ( rulePerspectivePartStack )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2947:1: rulePerspectivePartStack
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveElementAccess().getPerspectivePartStackParserRuleCall_1()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectivePartStack_in_rule__PerspectiveElement__Alternatives6224);
-                    rulePerspectivePartStack();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveElementAccess().getPerspectivePartStackParserRuleCall_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2952:6: ( rulePerspectivePart )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2952:6: ( rulePerspectivePart )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2953:1: rulePerspectivePart
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveElementAccess().getPerspectivePartParserRuleCall_2()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectivePart_in_rule__PerspectiveElement__Alternatives6241);
-                    rulePerspectivePart();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveElementAccess().getPerspectivePartParserRuleCall_2()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__PerspectiveElement__Alternatives"
-
-
-    // $ANTLR start "rule__PerspectiveView__Alternatives"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2963:1: rule__PerspectiveView__Alternatives : ( ( rulePerspectiveSelection ) | ( rulePerspectiveTable ) | ( rulePerspectiveChart ) | ( rulePerspectiveReport ) | ( rulePerspectiveOrganization ) | ( rulePerspectiveTopology ) | ( rulePerspectiveDialog ) | ( rulePerspectiveBPMN ) | ( rulePerspectiveGrid ) );
-    public final void rule__PerspectiveView__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2967:1: ( ( rulePerspectiveSelection ) | ( rulePerspectiveTable ) | ( rulePerspectiveChart ) | ( rulePerspectiveReport ) | ( rulePerspectiveOrganization ) | ( rulePerspectiveTopology ) | ( rulePerspectiveDialog ) | ( rulePerspectiveBPMN ) | ( rulePerspectiveGrid ) )
-            int alt4=9;
-            switch ( input.LA(1) ) {
-            case 69:
-                {
-                alt4=1;
-                }
-                break;
-            case 70:
-                {
-                alt4=2;
-                }
-                break;
-            case 72:
-                {
-                alt4=3;
-                }
-                break;
-            case 73:
-                {
-                alt4=4;
-                }
-                break;
-            case 74:
-                {
-                alt4=5;
-                }
-                break;
-            case 75:
-                {
-                alt4=6;
-                }
-                break;
-            case 76:
-                {
-                alt4=7;
-                }
-                break;
-            case 77:
-                {
-                alt4=8;
-                }
-                break;
-            case 71:
-                {
-                alt4=9;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 4, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt4) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2968:1: ( rulePerspectiveSelection )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2968:1: ( rulePerspectiveSelection )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2969:1: rulePerspectiveSelection
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveSelectionParserRuleCall_0()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveSelection_in_rule__PerspectiveView__Alternatives6273);
-                    rulePerspectiveSelection();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveSelectionParserRuleCall_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2974:6: ( rulePerspectiveTable )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2974:6: ( rulePerspectiveTable )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2975:1: rulePerspectiveTable
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveTableParserRuleCall_1()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveTable_in_rule__PerspectiveView__Alternatives6290);
-                    rulePerspectiveTable();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveTableParserRuleCall_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2980:6: ( rulePerspectiveChart )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2980:6: ( rulePerspectiveChart )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2981:1: rulePerspectiveChart
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveChartParserRuleCall_2()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveChart_in_rule__PerspectiveView__Alternatives6307);
-                    rulePerspectiveChart();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveChartParserRuleCall_2()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2986:6: ( rulePerspectiveReport )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2986:6: ( rulePerspectiveReport )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2987:1: rulePerspectiveReport
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveReportParserRuleCall_3()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveReport_in_rule__PerspectiveView__Alternatives6324);
-                    rulePerspectiveReport();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveReportParserRuleCall_3()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2992:6: ( rulePerspectiveOrganization )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2992:6: ( rulePerspectiveOrganization )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2993:1: rulePerspectiveOrganization
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveOrganizationParserRuleCall_4()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveOrganization_in_rule__PerspectiveView__Alternatives6341);
-                    rulePerspectiveOrganization();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveOrganizationParserRuleCall_4()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 6 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2998:6: ( rulePerspectiveTopology )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2998:6: ( rulePerspectiveTopology )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:2999:1: rulePerspectiveTopology
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveTopologyParserRuleCall_5()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveTopology_in_rule__PerspectiveView__Alternatives6358);
-                    rulePerspectiveTopology();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveTopologyParserRuleCall_5()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 7 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3004:6: ( rulePerspectiveDialog )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3004:6: ( rulePerspectiveDialog )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3005:1: rulePerspectiveDialog
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveDialogParserRuleCall_6()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveDialog_in_rule__PerspectiveView__Alternatives6375);
-                    rulePerspectiveDialog();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveDialogParserRuleCall_6()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 8 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3010:6: ( rulePerspectiveBPMN )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3010:6: ( rulePerspectiveBPMN )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3011:1: rulePerspectiveBPMN
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_7()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveBPMN_in_rule__PerspectiveView__Alternatives6392);
-                    rulePerspectiveBPMN();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_7()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 9 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3016:6: ( rulePerspectiveGrid )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3016:6: ( rulePerspectiveGrid )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3017:1: rulePerspectiveGrid
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); 
-                    }
-                    pushFollow(FOLLOW_rulePerspectiveGrid_in_rule__PerspectiveView__Alternatives6409);
-                    rulePerspectiveGrid();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__PerspectiveView__Alternatives"
-
-
-    // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3027: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 {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3031:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
-            int alt5=2;
-            alt5 = dfa5.predict(input);
-            switch (alt5) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3032:1: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3032:1: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3033:1: ( rule__XAnnotation__Group_3_1_0__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3034:1: ( rule__XAnnotation__Group_3_1_0__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3034:2: rule__XAnnotation__Group_3_1_0__0
-                    {
-                    pushFollow(FOLLOW_rule__XAnnotation__Group_3_1_0__0_in_rule__XAnnotation__Alternatives_3_16441);
-                    rule__XAnnotation__Group_3_1_0__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3038:6: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3038:6: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3039:1: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3040:1: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3040:2: rule__XAnnotation__ValueAssignment_3_1_1
-                    {
-                    pushFollow(FOLLOW_rule__XAnnotation__ValueAssignment_3_1_1_in_rule__XAnnotation__Alternatives_3_16459);
-                    rule__XAnnotation__ValueAssignment_3_1_1();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__XAnnotation__Alternatives_3_1"
-
-
-    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3049: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 {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3053:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
-            int alt6=2;
-            alt6 = dfa6.predict(input);
-            switch (alt6) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3054:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3054:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3055:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3056:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3056:2: rule__XAnnotationElementValueOrCommaList__Group_0__0
-                    {
-                    pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives6492);
-                    rule__XAnnotationElementValueOrCommaList__Group_0__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3060:6: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3060:6: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3061:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3062:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3062:2: rule__XAnnotationElementValueOrCommaList__Group_1__0
-                    {
-                    pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives6510);
-                    rule__XAnnotationElementValueOrCommaList__Group_1__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Alternatives"
-
-
-    // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3071:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
-    public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3075:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
-            int alt7=2;
-            alt7 = dfa7.predict(input);
-            switch (alt7) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3076:1: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3076:1: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3077:1: ( rule__XAnnotationElementValue__Group_0__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3078:1: ( rule__XAnnotationElementValue__Group_0__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3078:2: rule__XAnnotationElementValue__Group_0__0
-                    {
-                    pushFollow(FOLLOW_rule__XAnnotationElementValue__Group_0__0_in_rule__XAnnotationElementValue__Alternatives6543);
-                    rule__XAnnotationElementValue__Group_0__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3082:6: ( ruleXAnnotationOrExpression )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3082:6: ( ruleXAnnotationOrExpression )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3083:1: ruleXAnnotationOrExpression
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
-                    }
-                    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_rule__XAnnotationElementValue__Alternatives6561);
-                    ruleXAnnotationOrExpression();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__XAnnotationElementValue__Alternatives"
-
-
-    // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3093:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
-    public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-            
-        try {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3097:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
-            int alt8=2;
-            int LA8_0 = input.LA(1);
-
-            if ( (LA8_0==78) ) {
-                alt8=1;
-            }
-            else if ( ((LA8_0>=RULE_ID && LA8_0<=RULE_DECIMAL)||LA8_0==27||(LA8_0>=34 && LA8_0<=35)||LA8_0==40||(LA8_0>=45 && LA8_0<=50)||LA8_0==54||LA8_0==79||(LA8_0>=83 && LA8_0<=84)||LA8_0==88||LA8_0==90||(LA8_0>=94 && LA8_0<=102)||LA8_0==104||LA8_0==114) ) {
-                alt8=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 8, 0, input);
-
-                throw nvae;
-            }
-            switch (alt8) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3098:1: ( ruleXAnnotation )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3098:1: ( ruleXAnnotation )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3099:1: ruleXAnnotation
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
-                    }
-                    pushFollow(FOLLOW_ruleXAnnotation_in_rule__XAnnotationOrExpression__Alternatives6593);
-                    ruleXAnnotation();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3104:6: ( ruleXExpression )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3104:6: ( ruleXExpression )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3105:1: ruleXExpression
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
-                    }
-                    pushFollow(FOLLOW_ruleXExpression_in_rule__XAnnotationOrExpression__Alternatives6610);
-                    ruleXExpression();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__XAnnotationOrExpression__Alternatives"
-
-
-    // $ANTLR start "rule__XAssignment__Alternatives"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3115: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 {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3119:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
-            int alt9=2;
-            switch ( input.LA(1) ) {
-            case RULE_ID:
-                {
-                int LA9_1 = input.LA(2);
-
-                if ( (LA9_1==13) ) {
-                    alt9=1;
-                }
-                else if ( (LA9_1==EOF||(LA9_1>=RULE_ID && LA9_1<=RULE_DECIMAL)||(LA9_1>=14 && LA9_1<=50)||(LA9_1>=54 && LA9_1<=55)||(LA9_1>=79 && LA9_1<=105)||(LA9_1>=110 && LA9_1<=111)||(LA9_1>=113 && LA9_1<=114)) ) {
-                    alt9=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 9, 1, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 45:
-                {
-                int LA9_2 = input.LA(2);
-
-                if ( (LA9_2==EOF||(LA9_2>=RULE_ID && LA9_2<=RULE_DECIMAL)||(LA9_2>=14 && LA9_2<=50)||(LA9_2>=54 && LA9_2<=55)||(LA9_2>=79 && LA9_2<=105)||(LA9_2>=110 && LA9_2<=111)||(LA9_2>=113 && LA9_2<=114)) ) {
-                    alt9=2;
-                }
-                else if ( (LA9_2==13) ) {
-                    alt9=1;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 9, 2, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 46:
-                {
-                int LA9_3 = input.LA(2);
-
-                if ( (LA9_3==EOF||(LA9_3>=RULE_ID && LA9_3<=RULE_DECIMAL)||(LA9_3>=14 && LA9_3<=50)||(LA9_3>=54 && LA9_3<=55)||(LA9_3>=79 && LA9_3<=105)||(LA9_3>=110 && LA9_3<=111)||(LA9_3>=113 && LA9_3<=114)) ) {
-                    alt9=2;
-                }
-                else if ( (LA9_3==13) ) {
-                    alt9=1;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 9, 3, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 47:
-                {
-                int LA9_4 = input.LA(2);
-
-                if ( (LA9_4==13) ) {
-                    alt9=1;
-                }
-                else if ( (LA9_4==EOF||(LA9_4>=RULE_ID && LA9_4<=RULE_DECIMAL)||(LA9_4>=14 && LA9_4<=50)||(LA9_4>=54 && LA9_4<=55)||(LA9_4>=79 && LA9_4<=105)||(LA9_4>=110 && LA9_4<=111)||(LA9_4>=113 && LA9_4<=114)) ) {
-                    alt9=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 9, 4, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 48:
-                {
-                int LA9_5 = input.LA(2);
-
-                if ( (LA9_5==EOF||(LA9_5>=RULE_ID && LA9_5<=RULE_DECIMAL)||(LA9_5>=14 && LA9_5<=50)||(LA9_5>=54 && LA9_5<=55)||(LA9_5>=79 && LA9_5<=105)||(LA9_5>=110 && LA9_5<=111)||(LA9_5>=113 && LA9_5<=114)) ) {
-                    alt9=2;
-                }
-                else if ( (LA9_5==13) ) {
-                    alt9=1;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 9, 5, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case RULE_STRING:
-            case RULE_HEX:
-            case RULE_INT:
-            case RULE_DECIMAL:
-            case 27:
-            case 34:
-            case 35:
-            case 40:
-            case 49:
-            case 50:
-            case 54:
-            case 79:
-            case 83:
-            case 84:
-            case 88:
-            case 90:
-            case 94:
-            case 95:
-            case 96:
-            case 97:
-            case 98:
-            case 99:
-            case 100:
-            case 101:
-            case 102:
-            case 104:
-            case 114:
-                {
-                alt9=2;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 9, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt9) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3120:1: ( ( rule__XAssignment__Group_0__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3120:1: ( ( rule__XAssignment__Group_0__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3121:1: ( rule__XAssignment__Group_0__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3122:1: ( rule__XAssignment__Group_0__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3122:2: rule__XAssignment__Group_0__0
-                    {
-                    pushFollow(FOLLOW_rule__XAssignment__Group_0__0_in_rule__XAssignment__Alternatives6642);
-                    rule__XAssignment__Group_0__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAssignmentAccess().getGroup_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3126:6: ( ( rule__XAssignment__Group_1__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3126:6: ( ( rule__XAssignment__Group_1__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3127:1: ( rule__XAssignment__Group_1__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3128:1: ( rule__XAssignment__Group_1__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3128:2: rule__XAssignment__Group_1__0
-                    {
-                    pushFollow(FOLLOW_rule__XAssignment__Group_1__0_in_rule__XAssignment__Alternatives6660);
-                    rule__XAssignment__Group_1__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getXAssignmentAccess().getGroup_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__XAssignment__Alternatives"
-
-
-    // $ANTLR start "rule__OpMultiAssign__Alternatives"
-    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3137: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 {
-            // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3141:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
-            int alt10=7;
-            switch ( input.LA(1) ) {
-            case 16:
-                {
-                alt10=1;
-                }
-                break;
-            case 17:
-                {
-                alt10=2;
-                }
-                break;
-            case 18:
-                {
-                alt10=3;
-                }
-                break;
-            case 19:
-                {
-                alt10=4;
-                }
-                break;
-            case 20:
-                {
-                alt10=5;
-                }
-                break;
-            case 27:
-                {
-                alt10=6;
-                }
-                break;
-            case 26:
-                {
-                alt10=7;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 10, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt10) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3142:1: ( '+=' )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3142:1: ( '+=' )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3143:1: '+='
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
-                    }
-                    match(input,16,FOLLOW_16_in_rule__OpMultiAssign__Alternatives6694); if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3150:6: ( '-=' )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3150:6: ( '-=' )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3151:1: '-='
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
-                    }
-                    match(input,17,FOLLOW_17_in_rule__OpMultiAssign__Alternatives6714); if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3158:6: ( '*=' )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3158:6: ( '*=' )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3159:1: '*='
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
-                    }
-                    match(input,18,FOLLOW_18_in_rule__OpMultiAssign__Alternatives6734); if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3166:6: ( '/=' )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3166:6: ( '/=' )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3167:1: '/='
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
-                    }
-                    match(input,19,FOLLOW_19_in_rule__OpMultiAssign__Alternatives6754); if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3174:6: ( '%=' )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3174:6: ( '%=' )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3175:1: '%='
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
-                    }
-                    match(input,20,FOLLOW_20_in_rule__OpMultiAssign__Alternatives6774); if (state.failed) return ;
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 6 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3182:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3182:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3183:1: ( rule__OpMultiAssign__Group_5__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3184:1: ( rule__OpMultiAssign__Group_5__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3184:2: rule__OpMultiAssign__Group_5__0
-                    {
-                    pushFollow(FOLLOW_rule__OpMultiAssign__Group_5__0_in_rule__OpMultiAssign__Alternatives6793);
-                    rule__OpMultiAssign__Group_5__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 7 :
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3188:6: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3188:6: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3189:1: ( rule__OpMultiAssign__Group_6__0 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
-                    }
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3190:1: ( rule__OpMultiAssign__Group_6__0 )
-                    // ../org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/contentassist/antlr/internal/InternalPerspectiveDsl.g:3190:2: rule__OpMultiAssign__Group_6__0
-                    {
-                    pushFollow(FOLLOW_rule__OpMultiAssign__Group_6__0_in_rule__OpMultiAssign__Alternatives6811);
-                    rule__OpMultiAssign__Group_6__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/internal/PerspectiveDslActivator.java b/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/internal/PerspectiveDslActivator.java
deleted file mode 100644
index 41a5eb9..0000000
--- a/org.eclipse.osbp.xtext.perspective.ui/src-gen/org/eclipse/osbp/xtext/perspective/ui/internal/PerspectiveDslActivator.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.perspective.ui.internal;
-
-import java.util.Collections;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.xtext.ui.shared.SharedStateModule;
-import org.eclipse.xtext.util.Modules2;
-import org.osgi.framework.BundleContext;
-
-import com.google.common.collect.Maps;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-/**
- * This class was generated. Customizations should only happen in a newly
- * introduced subclass. 
- */
-public class PerspectiveDslActivator extends AbstractUIPlugin {
-	
-	public static final String ORG_ECLIPSE_OSBP_XTEXT_PERSPECTIVE_PERSPECTIVEDSL = "org.eclipse.osbp.xtext.perspective.PerspectiveDsl";
-	
-	private static final Logger logger = Logger.getLogger(PerspectiveDslActivator.class);
-	
-	private static PerspectiveDslActivator INSTANCE;
-	
-	private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
-	
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		INSTANCE = this;
-	}
-	
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		injectors.clear();
-		INSTANCE = null;
-		super.stop(context);
-	}
-	
-	public static PerspectiveDslActivator getInstance() {
-		return INSTANCE;
-	}
-	
-	public Injector getInjector(String language) {
-		synchronized (injectors) {
-			Injector injector = injectors.get(language);
-			if (injector == null) {
-				injectors.put(language, injector = createInjector(language));
-			}
-			return injector;
-		}
-	}
-	
-	protected Injector createInjector(String language) {
-		try {
-			Module runtimeModule = getRuntimeModule(language);
-			Module sharedStateModule = getSharedStateModule();
-			Module uiModule = getUiModule(language);
-			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
-			return Guice.createInjector(mergedModule);
-		} catch (Exception e) {
-			logger.error("Failed to create injector for " + language);
-			logger.error(e.getMessage(), e);
-			throw new RuntimeException("Failed to create injector for " + language, e);
-		}
-	}
-
-	protected Module getRuntimeModule(String grammar) {
-		if (ORG_ECLIPSE_OSBP_XTEXT_PERSPECTIVE_PERSPECTIVEDSL.equals(grammar)) {
-			return new org.eclipse.osbp.xtext.perspective.PerspectiveDslRuntimeModule();
-		}
-		
-		throw new IllegalArgumentException(grammar);
-	}
-	
-	protected Module getUiModule(String grammar) {
-		if (ORG_ECLIPSE_OSBP_XTEXT_PERSPECTIVE_PERSPECTIVEDSL.equals(grammar)) {
-			return new org.eclipse.osbp.xtext.perspective.ui.PerspectiveDslUiModule(this);
-		}
-		
-		throw new IllegalArgumentException(grammar);
-	}
-	
-	protected Module getSharedStateModule() {
-		return new SharedStateModule();
-	}
-	
-}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.xtend b/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.xtend
index 5f475a5..b0290be 100644
--- a/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.xtend
+++ b/org.eclipse.osbp.xtext.perspective.ui/src/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.xtend
@@ -21,21 +21,19 @@
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
 import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider
 import org.eclipse.osbp.xtext.perspective.Perspective
-import org.eclipse.osbp.xtext.perspective.PerspectiveModel
-import org.eclipse.osbp.xtext.perspective.PerspectivePackage
-import org.eclipse.osbp.xtext.perspective.PerspectivePartStack
-import org.eclipse.osbp.xtext.perspective.PerspectiveSashContainer
-import org.eclipse.osbp.xtext.perspective.PerspectivePart
-import org.eclipse.osbp.xtext.perspective.PerspectiveTable
-import org.eclipse.osbp.xtext.perspective.PerspectiveGrid
 import org.eclipse.osbp.xtext.perspective.PerspectiveChart
-import org.eclipse.osbp.xtext.perspective.services.PerspectiveDslGrammarAccess.PerspectiveGridElements
-import org.eclipse.osbp.xtext.perspective.PerspectiveReport
-import org.eclipse.osbp.xtext.perspective.PerspectiveOrganization
-import org.eclipse.osbp.xtext.perspective.PerspectiveTopology
 import org.eclipse.osbp.xtext.perspective.PerspectiveDialog
-import org.eclipse.osbp.xtext.perspective.PerspectiveBPMN
+import org.eclipse.osbp.xtext.perspective.PerspectiveGrid
+import org.eclipse.osbp.xtext.perspective.PerspectiveModel
+import org.eclipse.osbp.xtext.perspective.PerspectiveOrganization
+import org.eclipse.osbp.xtext.perspective.PerspectivePackage
+import org.eclipse.osbp.xtext.perspective.PerspectivePart
+import org.eclipse.osbp.xtext.perspective.PerspectivePartStack
+import org.eclipse.osbp.xtext.perspective.PerspectiveReport
+import org.eclipse.osbp.xtext.perspective.PerspectiveSashContainer
 import org.eclipse.osbp.xtext.perspective.PerspectiveSelection
+import org.eclipse.osbp.xtext.perspective.PerspectiveTable
+import org.eclipse.osbp.xtext.perspective.PerspectiveTopology
 
 /**
  * Provides labels for a EObjects.
@@ -66,7 +64,6 @@
 			PerspectiveOrganization		: generateText( o, 'organigram'   , o.ref.name )
 			PerspectiveTopology			: generateText( o, 'topology'     , o.ref.name )
 			PerspectiveDialog			: generateText( o, 'dialog'       , o.ref.name )
-			PerspectiveBPMN				: generateText( o, 'bpmn'         )
 			default						: super.text( o )
 		}
 	}
diff --git a/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/converter/E4PerspectiveToDSLConverter.java b/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/converter/E4PerspectiveToDSLConverter.java
index 068afee..e7ccae9 100644
--- a/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/converter/E4PerspectiveToDSLConverter.java
+++ b/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/converter/E4PerspectiveToDSLConverter.java
@@ -30,24 +30,36 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.osbp.xtext.chart.Chart;
 import org.eclipse.osbp.xtext.chart.ChartDSLPackage;
+import org.eclipse.osbp.xtext.dialogdsl.Dialog;
 import org.eclipse.osbp.xtext.dialogdsl.DialogDSLPackage;
 import org.eclipse.osbp.xtext.oxtype.oxtype.OXImportDeclaration;
 import org.eclipse.osbp.xtext.oxtype.oxtype.OXtypeFactory;
 import org.eclipse.osbp.xtext.perspective.Perspective;
+import org.eclipse.osbp.xtext.perspective.PerspectiveChart;
+import org.eclipse.osbp.xtext.perspective.PerspectiveDialog;
 import org.eclipse.osbp.xtext.perspective.PerspectiveDslFactory;
 import org.eclipse.osbp.xtext.perspective.PerspectiveElement;
+import org.eclipse.osbp.xtext.perspective.PerspectiveGrid;
 import org.eclipse.osbp.xtext.perspective.PerspectiveModel;
 import org.eclipse.osbp.xtext.perspective.PerspectivePackage;
 import org.eclipse.osbp.xtext.perspective.PerspectivePart;
 import org.eclipse.osbp.xtext.perspective.PerspectivePartStack;
+import org.eclipse.osbp.xtext.perspective.PerspectiveReport;
 import org.eclipse.osbp.xtext.perspective.PerspectiveSashContainer;
+import org.eclipse.osbp.xtext.perspective.PerspectiveTable;
 import org.eclipse.osbp.xtext.perspective.SashOrientation;
+import org.eclipse.osbp.xtext.reportdsl.Report;
 import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.table.Table;
 import org.eclipse.osbp.xtext.table.TableDSLPackage;
 import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.resource.IEObjectDescription;
 import org.eclipse.xtext.resource.IResourceDescriptions;
 import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
 import org.eclipse.xtext.xtype.XImportDeclaration;
 import org.eclipse.xtext.xtype.XImportSection;
 import org.eclipse.xtext.xtype.XtypeFactory;
@@ -197,24 +209,107 @@
   }
   
   protected void _convertView(final TableDSLPackage ePackage, final MPart mPart, final PerspectivePart oPart) {
-    throw new Error("Unresolved compilation problems:"
-      + "\nType mismatch: cannot convert from Table to Table"
-      + "\nType mismatch: cannot convert from Table to Table");
+    final String flavor = mPart.getPersistedState().get(E4PerspectiveToDSLConverter.OSBP_FLAVOR);
+    if (((!Objects.equal(flavor, null)) && flavor.equals("grid"))) {
+      final PerspectiveGrid oTable = this.pFactory.createPerspectiveGrid();
+      oPart.setView(oTable);
+      final String fqn = mPart.getPersistedState().get(E4PerspectiveToDSLConverter.OSBP_FQN);
+      boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(fqn);
+      if (_isNullOrEmpty) {
+        return;
+      }
+      String _substring = fqn.substring(0, fqn.lastIndexOf("."));
+      this.imports.add(_substring);
+      final Iterable<IEObjectDescription> result = this.descriptions.getExportedObjects(TableDSLPackage.Literals.TABLE, 
+        QualifiedName.create(fqn.split("\\.")), false);
+      boolean _hasNext = result.iterator().hasNext();
+      if (_hasNext) {
+        final IEObjectDescription eObjectDesc = result.iterator().next();
+        EObject _eObjectOrProxy = eObjectDesc.getEObjectOrProxy();
+        oTable.setRef(((Table) _eObjectOrProxy));
+      }
+    } else {
+      final PerspectiveTable oTable_1 = this.pFactory.createPerspectiveTable();
+      oPart.setView(oTable_1);
+      final String fqn_1 = mPart.getPersistedState().get(E4PerspectiveToDSLConverter.OSBP_FQN);
+      boolean _isNullOrEmpty_1 = StringExtensions.isNullOrEmpty(fqn_1);
+      if (_isNullOrEmpty_1) {
+        return;
+      }
+      String _substring_1 = fqn_1.substring(0, fqn_1.lastIndexOf("."));
+      this.imports.add(_substring_1);
+      final Iterable<IEObjectDescription> result_1 = this.descriptions.getExportedObjects(TableDSLPackage.Literals.TABLE, 
+        QualifiedName.create(fqn_1.split("\\.")), false);
+      boolean _hasNext_1 = result_1.iterator().hasNext();
+      if (_hasNext_1) {
+        final IEObjectDescription eObjectDesc_1 = result_1.iterator().next();
+        EObject _eObjectOrProxy_1 = eObjectDesc_1.getEObjectOrProxy();
+        oTable_1.setRef(((Table) _eObjectOrProxy_1));
+      }
+    }
   }
   
   protected void _convertView(final ChartDSLPackage ePackage, final MPart mPart, final PerspectivePart oPart) {
-    throw new Error("Unresolved compilation problems:"
-      + "\nType mismatch: cannot convert from Chart to Chart");
+    final PerspectiveChart oChart = this.pFactory.createPerspectiveChart();
+    oPart.setView(oChart);
+    final String fqn = mPart.getPersistedState().get(E4PerspectiveToDSLConverter.OSBP_FQN);
+    boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(fqn);
+    if (_isNullOrEmpty) {
+      return;
+    }
+    String _substring = fqn.substring(0, fqn.lastIndexOf("."));
+    this.imports.add(_substring);
+    final String[] tokens = fqn.split("\\.");
+    int _length = tokens.length;
+    int _minus = (_length - 1);
+    final Iterable<IEObjectDescription> result = this.descriptions.getExportedObjects(ChartDSLPackage.Literals.CHART, 
+      QualifiedName.create(tokens[_minus]), false);
+    boolean _hasNext = result.iterator().hasNext();
+    if (_hasNext) {
+      final IEObjectDescription eObjectDesc = result.iterator().next();
+      EObject _eObjectOrProxy = eObjectDesc.getEObjectOrProxy();
+      oChart.setRef(((Chart) _eObjectOrProxy));
+    }
   }
   
   protected void _convertView(final ReportDSLPackage ePackage, final MPart mPart, final PerspectivePart oPart) {
-    throw new Error("Unresolved compilation problems:"
-      + "\nType mismatch: cannot convert from Report to Report");
+    final PerspectiveReport oReport = this.pFactory.createPerspectiveReport();
+    oPart.setView(oReport);
+    final String fqn = mPart.getPersistedState().get(E4PerspectiveToDSLConverter.OSBP_FQN);
+    boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(fqn);
+    if (_isNullOrEmpty) {
+      return;
+    }
+    String _substring = fqn.substring(0, fqn.lastIndexOf("."));
+    this.imports.add(_substring);
+    final Iterable<IEObjectDescription> result = this.descriptions.getExportedObjects(ReportDSLPackage.Literals.REPORT, 
+      QualifiedName.create(fqn.split("\\.")), false);
+    boolean _hasNext = result.iterator().hasNext();
+    if (_hasNext) {
+      final IEObjectDescription eObjectDesc = result.iterator().next();
+      EObject _eObjectOrProxy = eObjectDesc.getEObjectOrProxy();
+      oReport.setRef(((Report) _eObjectOrProxy));
+    }
   }
   
   protected void _convertView(final DialogDSLPackage ePackage, final MPart mPart, final PerspectivePart oPart) {
-    throw new Error("Unresolved compilation problems:"
-      + "\nType mismatch: cannot convert from Dialog to Dialog");
+    final PerspectiveDialog oDialog = this.pFactory.createPerspectiveDialog();
+    oPart.setView(oDialog);
+    final String fqn = mPart.getPersistedState().get(E4PerspectiveToDSLConverter.OSBP_FQN);
+    boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(fqn);
+    if (_isNullOrEmpty) {
+      return;
+    }
+    String _substring = fqn.substring(0, fqn.lastIndexOf("."));
+    this.imports.add(_substring);
+    final Iterable<IEObjectDescription> result = this.descriptions.getExportedObjects(DialogDSLPackage.Literals.DIALOG, 
+      QualifiedName.create(fqn.split("\\.")), false);
+    boolean _hasNext = result.iterator().hasNext();
+    if (_hasNext) {
+      final IEObjectDescription eObjectDesc = result.iterator().next();
+      EObject _eObjectOrProxy = eObjectDesc.getEObjectOrProxy();
+      oDialog.setRef(((Dialog) _eObjectOrProxy));
+    }
   }
   
   public SashOrientation toOrientation(final boolean isHorizontal) {
diff --git a/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.java b/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.java
index fab13fd..a38bedb 100644
--- a/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.java
+++ b/org.eclipse.osbp.xtext.perspective.ui/xtend-gen/org/eclipse/osbp/xtext/perspective/ui/labeling/PerspectiveDslLabelProvider.java
@@ -18,7 +18,6 @@
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
 import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider;
 import org.eclipse.osbp.xtext.perspective.Perspective;
-import org.eclipse.osbp.xtext.perspective.PerspectiveBPMN;
 import org.eclipse.osbp.xtext.perspective.PerspectiveChart;
 import org.eclipse.osbp.xtext.perspective.PerspectiveDialog;
 import org.eclipse.osbp.xtext.perspective.PerspectiveGrid;
@@ -126,12 +125,6 @@
       }
     }
     if (!_matched) {
-      if (o instanceof PerspectiveBPMN) {
-        _matched=true;
-        _switchResult = this.generateText(o, "bpmn");
-      }
-    }
-    if (!_matched) {
       _switchResult = super.text(o);
     }
     return _switchResult;
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveBPMN.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveBPMN.java
deleted file mode 100644
index 6b68573..0000000
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveBPMN.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http{//www.eclipse.org/legal/epl-v10.html 
- * 
- *  Based on ideas from Xtext, Xtend, Xcore
- *   
- *  Contributors{  
- *  		Joerg Riegel - Initial implementation 
- *  
- */
-package org.eclipse.osbp.xtext.perspective;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Perspective BPMN</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage#getPerspectiveBPMN()
- * @model
- * @generated
- */
-public interface PerspectiveBPMN extends PerspectiveView {
-} // PerspectiveBPMN
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java
index 7e6550f..a104e3b 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslFactory.java
@@ -195,15 +195,6 @@
 	PerspectiveDialog createPerspectiveDialog();
 
 	/**
-	 * Returns a new object of class '<em>Perspective BPMN</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Perspective BPMN</em>'.
-	 * @generated
-	 */
-	PerspectiveBPMN createPerspectiveBPMN();
-
-	/**
 	 * Returns a new object of class '<em>Perspective Kanban</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java
index 628a09b..4051455 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDslPackage.java
@@ -201,7 +201,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PERSPECTIVE_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int PERSPECTIVE_PACKAGE___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Perspective Package</em>' class.
@@ -1255,43 +1255,6 @@
 	int PERSPECTIVE_DIALOG_OPERATION_COUNT = PERSPECTIVE_VIEW_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveBPMNImpl <em>Perspective BPMN</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveBPMNImpl
-	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveBPMN()
-	 * @generated
-	 */
-	int PERSPECTIVE_BPMN = 19;
-
-	/**
-	 * The number of structural features of the '<em>Perspective BPMN</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERSPECTIVE_BPMN_FEATURE_COUNT = PERSPECTIVE_VIEW_FEATURE_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>EResolve Proxy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERSPECTIVE_BPMN___ERESOLVE_PROXY__INTERNALEOBJECT = PERSPECTIVE_VIEW___ERESOLVE_PROXY__INTERNALEOBJECT;
-
-	/**
-	 * The number of operations of the '<em>Perspective BPMN</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERSPECTIVE_BPMN_OPERATION_COUNT = PERSPECTIVE_VIEW_OPERATION_COUNT + 0;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveKanbanImpl <em>Perspective Kanban</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1299,7 +1262,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveKanban()
 	 * @generated
 	 */
-	int PERSPECTIVE_KANBAN = 20;
+	int PERSPECTIVE_KANBAN = 19;
 
 	/**
 	 * The feature id for the '<em><b>Dto Ref</b></em>' reference.
@@ -1363,7 +1326,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveWelcome()
 	 * @generated
 	 */
-	int PERSPECTIVE_WELCOME = 21;
+	int PERSPECTIVE_WELCOME = 20;
 
 	/**
 	 * The number of structural features of the '<em>Perspective Welcome</em>' class.
@@ -1400,7 +1363,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveSearch()
 	 * @generated
 	 */
-	int PERSPECTIVE_SEARCH = 22;
+	int PERSPECTIVE_SEARCH = 21;
 
 	/**
 	 * The feature id for the '<em><b>Dto Ref</b></em>' reference.
@@ -1464,7 +1427,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveDataInterchange()
 	 * @generated
 	 */
-	int PERSPECTIVE_DATA_INTERCHANGE = 23;
+	int PERSPECTIVE_DATA_INTERCHANGE = 22;
 
 	/**
 	 * The feature id for the '<em><b>Ref</b></em>' reference.
@@ -1519,7 +1482,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getSashOrientation()
 	 * @generated
 	 */
-	int SASH_ORIENTATION = 24;
+	int SASH_ORIENTATION = 23;
 
 	/**
 	 * The meta object id for the '<em>Internal EObject</em>' data type.
@@ -1529,7 +1492,7 @@
 	 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getInternalEObject()
 	 * @generated
 	 */
-	int INTERNAL_EOBJECT = 25;
+	int INTERNAL_EOBJECT = 24;
 
 
 	/**
@@ -2173,16 +2136,6 @@
 	EReference getPerspectiveDialog_RefTypeJvm();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveBPMN <em>Perspective BPMN</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Perspective BPMN</em>'.
-	 * @see org.eclipse.osbp.xtext.perspective.PerspectiveBPMN
-	 * @generated
-	 */
-	EClass getPerspectiveBPMN();
-
-	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveKanban <em>Perspective Kanban</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2873,16 +2826,6 @@
 		EReference PERSPECTIVE_DIALOG__REF_TYPE_JVM = eINSTANCE.getPerspectiveDialog_RefTypeJvm();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveBPMNImpl <em>Perspective BPMN</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveBPMNImpl
-		 * @see org.eclipse.osbp.xtext.perspective.impl.PerspectiveDslPackageImpl#getPerspectiveBPMN()
-		 * @generated
-		 */
-		EClass PERSPECTIVE_BPMN = eINSTANCE.getPerspectiveBPMN();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.perspective.impl.PerspectiveKanbanImpl <em>Perspective Kanban</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveBPMNImpl.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveBPMNImpl.java
deleted file mode 100644
index 101c84e..0000000
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveBPMNImpl.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http{//www.eclipse.org/legal/epl-v10.html 
- * 
- *  Based on ideas from Xtext, Xtend, Xcore
- *   
- *  Contributors{  
- *  		Joerg Riegel - Initial implementation 
- *  
- */
-package org.eclipse.osbp.xtext.perspective.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.osbp.xtext.perspective.PerspectiveBPMN;
-import org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Perspective BPMN</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class PerspectiveBPMNImpl extends PerspectiveLazyResolverImpl implements PerspectiveBPMN {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PerspectiveBPMNImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PerspectiveDslPackage.Literals.PERSPECTIVE_BPMN;
-	}
-
-} //PerspectiveBPMNImpl
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java
index 92ffd2c..9bfd2c8 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslFactoryImpl.java
@@ -87,7 +87,6 @@
 			case PerspectiveDslPackage.PERSPECTIVE_ORGANIZATION: return createPerspectiveOrganization();
 			case PerspectiveDslPackage.PERSPECTIVE_TOPOLOGY: return createPerspectiveTopology();
 			case PerspectiveDslPackage.PERSPECTIVE_DIALOG: return createPerspectiveDialog();
-			case PerspectiveDslPackage.PERSPECTIVE_BPMN: return createPerspectiveBPMN();
 			case PerspectiveDslPackage.PERSPECTIVE_KANBAN: return createPerspectiveKanban();
 			case PerspectiveDslPackage.PERSPECTIVE_WELCOME: return createPerspectiveWelcome();
 			case PerspectiveDslPackage.PERSPECTIVE_SEARCH: return createPerspectiveSearch();
@@ -316,16 +315,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public PerspectiveBPMN createPerspectiveBPMN() {
-		PerspectiveBPMNImpl perspectiveBPMN = new PerspectiveBPMNImpl();
-		return perspectiveBPMN;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public PerspectiveKanban createPerspectiveKanban() {
 		PerspectiveKanbanImpl perspectiveKanban = new PerspectiveKanbanImpl();
 		return perspectiveKanban;
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java
index 26bca70..0c1a439 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/impl/PerspectiveDslPackageImpl.java
@@ -42,7 +42,6 @@
 import org.eclipse.osbp.xtext.organizationdsl.OrganizationDSLPackage;
 
 import org.eclipse.osbp.xtext.perspective.Perspective;
-import org.eclipse.osbp.xtext.perspective.PerspectiveBPMN;
 import org.eclipse.osbp.xtext.perspective.PerspectiveBase;
 import org.eclipse.osbp.xtext.perspective.PerspectiveBean;
 import org.eclipse.osbp.xtext.perspective.PerspectiveChart;
@@ -224,13 +223,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass perspectiveBPMNEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EClass perspectiveKanbanEClass = null;
 
 	/**
@@ -882,15 +874,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getPerspectiveBPMN() {
-		return perspectiveBPMNEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EClass getPerspectiveKanban() {
 		return perspectiveKanbanEClass;
 	}
@@ -1119,8 +1102,6 @@
 		createEReference(perspectiveDialogEClass, PERSPECTIVE_DIALOG__REF);
 		createEReference(perspectiveDialogEClass, PERSPECTIVE_DIALOG__REF_TYPE_JVM);
 
-		perspectiveBPMNEClass = createEClass(PERSPECTIVE_BPMN);
-
 		perspectiveKanbanEClass = createEClass(PERSPECTIVE_KANBAN);
 		createEReference(perspectiveKanbanEClass, PERSPECTIVE_KANBAN__DTO_REF);
 		createEReference(perspectiveKanbanEClass, PERSPECTIVE_KANBAN__CARD_REF);
@@ -1205,7 +1186,6 @@
 		perspectiveOrganizationEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveTopologyEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveDialogEClass.getESuperTypes().add(this.getPerspectiveView());
-		perspectiveBPMNEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveKanbanEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveWelcomeEClass.getESuperTypes().add(this.getPerspectiveView());
 		perspectiveSearchEClass.getESuperTypes().add(this.getPerspectiveView());
@@ -1293,8 +1273,6 @@
 		initEReference(getPerspectiveDialog_Ref(), theDialogDSLPackage.getDialog(), null, "ref", null, 0, 1, PerspectiveDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getPerspectiveDialog_RefTypeJvm(), theTypesPackage.getJvmTypeReference(), null, "refTypeJvm", null, 0, 1, PerspectiveDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(perspectiveBPMNEClass, PerspectiveBPMN.class, "PerspectiveBPMN", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
 		initEClass(perspectiveKanbanEClass, PerspectiveKanban.class, "PerspectiveKanban", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getPerspectiveKanban_DtoRef(), theOSBPDtoPackage.getLDto(), null, "dtoRef", null, 0, 1, PerspectiveKanban.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getPerspectiveKanban_CardRef(), theDialogDSLPackage.getDialog(), null, "cardRef", null, 0, 1, PerspectiveKanban.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java
index f27e05e..c6bd578 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslAdapterFactory.java
@@ -158,10 +158,6 @@
 				return createPerspectiveDialogAdapter();
 			}
 			@Override
-			public Adapter casePerspectiveBPMN(PerspectiveBPMN object) {
-				return createPerspectiveBPMNAdapter();
-			}
-			@Override
 			public Adapter casePerspectiveKanban(PerspectiveKanban object) {
 				return createPerspectiveKanbanAdapter();
 			}
@@ -472,20 +468,6 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveBPMN <em>Perspective BPMN</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.perspective.PerspectiveBPMN
-	 * @generated
-	 */
-	public Adapter createPerspectiveBPMNAdapter() {
-		return null;
-	}
-
-	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.perspective.PerspectiveKanban <em>Perspective Kanban</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java
index 0af7974..728efe4 100644
--- a/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java
+++ b/org.eclipse.osbp.xtext.perspective/emf-gen/org/eclipse/osbp/xtext/perspective/util/PerspectiveDslSwitch.java
@@ -225,14 +225,6 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case PerspectiveDslPackage.PERSPECTIVE_BPMN: {
-				PerspectiveBPMN perspectiveBPMN = (PerspectiveBPMN)theEObject;
-				T result = casePerspectiveBPMN(perspectiveBPMN);
-				if (result == null) result = casePerspectiveView(perspectiveBPMN);
-				if (result == null) result = casePerspectiveLazyResolver(perspectiveBPMN);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case PerspectiveDslPackage.PERSPECTIVE_KANBAN: {
 				PerspectiveKanban perspectiveKanban = (PerspectiveKanban)theEObject;
 				T result = casePerspectiveKanban(perspectiveKanban);
@@ -555,21 +547,6 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Perspective BPMN</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Perspective BPMN</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T casePerspectiveBPMN(PerspectiveBPMN object) {
-		return null;
-	}
-
-	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Perspective Kanban</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore b/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore
index 554e41f..c69e241 100644
--- a/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore
+++ b/org.eclipse.osbp.xtext.perspective/model/PerspectiveDsl.xcore
@@ -141,9 +141,6 @@
 	contains resolving  JvmTypeReference refTypeJvm
 }
 
-class PerspectiveBPMN extends PerspectiveView {
-}
-
 class PerspectiveKanban extends PerspectiveView {
 	refers LDto dtoRef
 	refers Dialog cardRef
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin
index e66d5e3..d7dfcec 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtextbin
Binary files differ
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g
index 313e1b8..fbd4e13 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.g
@@ -1217,56 +1217,47 @@
 		}
 		    |
 		{
-			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_8());
+			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8());
 		}
-		this_PerspectiveBPMN_8=rulePerspectiveBPMN
+		this_PerspectiveGrid_8=rulePerspectiveGrid
 		{
-			$current = $this_PerspectiveBPMN_8.current;
+			$current = $this_PerspectiveGrid_8.current;
 			afterParserOrEnumRuleCall();
 		}
 		    |
 		{
-			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_9());
+			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_9());
 		}
-		this_PerspectiveGrid_9=rulePerspectiveGrid
+		this_PerspectiveWelcome_9=rulePerspectiveWelcome
 		{
-			$current = $this_PerspectiveGrid_9.current;
+			$current = $this_PerspectiveWelcome_9.current;
 			afterParserOrEnumRuleCall();
 		}
 		    |
 		{
-			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_10());
+			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_10());
 		}
-		this_PerspectiveWelcome_10=rulePerspectiveWelcome
+		this_PerspectiveSearch_10=rulePerspectiveSearch
 		{
-			$current = $this_PerspectiveWelcome_10.current;
+			$current = $this_PerspectiveSearch_10.current;
 			afterParserOrEnumRuleCall();
 		}
 		    |
 		{
-			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_11());
+			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_11());
 		}
-		this_PerspectiveSearch_11=rulePerspectiveSearch
+		this_PerspectiveDataInterchange_11=rulePerspectiveDataInterchange
 		{
-			$current = $this_PerspectiveSearch_11.current;
+			$current = $this_PerspectiveDataInterchange_11.current;
 			afterParserOrEnumRuleCall();
 		}
 		    |
 		{
-			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_12());
+			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_12());
 		}
-		this_PerspectiveDataInterchange_12=rulePerspectiveDataInterchange
+		this_PerspectiveKanban_12=rulePerspectiveKanban
 		{
-			$current = $this_PerspectiveDataInterchange_12.current;
-			afterParserOrEnumRuleCall();
-		}
-		    |
-		{
-			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_13());
-		}
-		this_PerspectiveKanban_13=rulePerspectiveKanban
-		{
-			$current = $this_PerspectiveKanban_13.current;
+			$current = $this_PerspectiveKanban_12.current;
 			afterParserOrEnumRuleCall();
 		}
 	)
@@ -1659,36 +1650,6 @@
 	)
 ;
 
-// Entry rule entryRulePerspectiveBPMN
-entryRulePerspectiveBPMN returns [EObject current=null]:
-	{ newCompositeNode(grammarAccess.getPerspectiveBPMNRule()); }
-	iv_rulePerspectiveBPMN=rulePerspectiveBPMN
-	{ $current=$iv_rulePerspectiveBPMN.current; }
-	EOF;
-
-// Rule PerspectiveBPMN
-rulePerspectiveBPMN returns [EObject current=null]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		(
-			{
-				$current = forceCreateModelElement(
-					grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0(),
-					$current);
-			}
-		)
-		otherlv_1='bpmn'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1());
-		}
-	)
-;
-
 // Entry rule entryRulePerspectiveKanban
 entryRulePerspectiveKanban returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPerspectiveKanbanRule()); }
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens
index 7c0e5bd..2d75b9a 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDsl.tokens
@@ -1,80 +1,79 @@
-'!'=90
-'!='=75
-'!=='=77
-'#'=61
-'%'=89
-'%='=68
-'&&'=73
-'&'=123
-'('=57
-')'=59
-'*'=53
-'**'=87
-'*='=66
-'+'=85
-'++'=92
-'+='=64
-','=58
-'-'=86
-'--'=93
-'-='=65
-'->'=79
-'.'=94
-'..'=81
-'..<'=80
-'/'=88
-'/='=67
-':'=101
-'::'=95
-';'=55
-'<'=69
-'<>'=83
-'='=60
-'=='=74
-'==='=76
-'=>'=82
-'>'=70
-'>='=71
-'?'=122
-'?.'=96
-'?:'=84
-'@'=56
-'['=62
-']'=63
+'!'=89
+'!='=74
+'!=='=76
+'#'=60
+'%'=88
+'%='=67
+'&&'=72
+'&'=122
+'('=56
+')'=58
+'*'=52
+'**'=86
+'*='=65
+'+'=84
+'++'=91
+'+='=63
+','=57
+'-'=85
+'--'=92
+'-='=64
+'->'=78
+'.'=93
+'..'=80
+'..<'=79
+'/'=87
+'/='=66
+':'=100
+'::'=94
+';'=54
+'<'=68
+'<>'=82
+'='=59
+'=='=73
+'==='=75
+'=>'=81
+'>'=69
+'>='=70
+'?'=121
+'?.'=95
+'?:'=83
+'@'=55
+'['=61
+']'=62
 'accessibility'=21
-'as'=91
+'as'=90
 'bean'=34
-'bpmn'=40
-'card'=43
-'case'=103
-'catch'=121
+'card'=42
+'case'=102
+'catch'=120
 'chart'=35
-'dataInterchange'=49
-'default'=102
-'depth'=47
+'dataInterchange'=48
+'default'=101
+'depth'=46
 'describedBy'=17
 'dialog'=39
-'do'=106
-'else'=99
-'extends'=109
-'extension'=52
-'false'=112
-'filterColumns'=48
-'finally'=119
-'for'=104
+'do'=105
+'else'=98
+'extends'=108
+'extension'=51
+'false'=111
+'filterColumns'=47
+'finally'=118
+'for'=103
 'grid'=33
-'horizontal'=124
+'horizontal'=123
 'iconURI'=20
-'if'=98
-'import'=50
-'in'=46
-'instanceof'=78
+'if'=97
+'import'=49
+'in'=45
+'instanceof'=77
 'isClosable'=30
-'kanban'=41
-'new'=111
-'ns'=54
-'null'=114
-'of'=42
+'kanban'=40
+'new'=110
+'ns'=53
+'null'=113
+'of'=41
 'organigram'=37
 'orientation'=24
 'package'=13
@@ -83,33 +82,33 @@
 'perspective'=16
 'process'=18
 'report'=36
-'return'=117
+'return'=116
 'sashContainer'=23
-'search'=45
+'search'=44
 'select'=31
 'selectedElement'=25
 'spaceVolume'=26
-'static'=51
-'super'=110
-'switch'=100
-'synchronized'=120
+'static'=50
+'super'=109
+'switch'=99
+'synchronized'=119
 'table'=32
-'throw'=116
+'throw'=115
 'toolbar'=22
 'topology'=38
-'true'=113
-'try'=118
-'typeof'=115
+'true'=112
+'try'=117
+'typeof'=114
 'usertask'=19
-'val'=108
-'var'=107
-'vertical'=125
+'val'=107
+'var'=106
+'vertical'=124
 'view'=29
-'welcome'=44
-'while'=105
+'welcome'=43
+'while'=104
 '{'=14
-'|'=97
-'||'=72
+'|'=96
+'||'=71
 '}'=15
 RULE_ANY_OTHER=12
 RULE_DECIMAL=8
@@ -145,7 +144,6 @@
 T__122=122
 T__123=123
 T__124=124
-T__125=125
 T__13=13
 T__14=14
 T__15=15
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java
index 14452e2..fd6c13d 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslLexer.java
@@ -1,16 +1,3 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
 package org.eclipse.osbp.xtext.perspective.parser.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -47,7 +34,6 @@
     public static final int T__69=69;
     public static final int T__62=62;
     public static final int T__63=63;
-    public static final int T__125=125;
     public static final int T__64=64;
     public static final int T__65=65;
     public static final int T__37=37;
@@ -732,10 +718,10 @@
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:38:7: ( 'bpmn' )
-            // InternalPerspectiveDsl.g:38:9: 'bpmn'
+            // InternalPerspectiveDsl.g:38:7: ( 'kanban' )
+            // InternalPerspectiveDsl.g:38:9: 'kanban'
             {
-            match("bpmn"); 
+            match("kanban"); 
 
 
             }
@@ -753,10 +739,10 @@
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:39:7: ( 'kanban' )
-            // InternalPerspectiveDsl.g:39:9: 'kanban'
+            // InternalPerspectiveDsl.g:39:7: ( 'of' )
+            // InternalPerspectiveDsl.g:39:9: 'of'
             {
-            match("kanban"); 
+            match("of"); 
 
 
             }
@@ -774,10 +760,10 @@
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:40:7: ( 'of' )
-            // InternalPerspectiveDsl.g:40:9: 'of'
+            // InternalPerspectiveDsl.g:40:7: ( 'card' )
+            // InternalPerspectiveDsl.g:40:9: 'card'
             {
-            match("of"); 
+            match("card"); 
 
 
             }
@@ -795,10 +781,10 @@
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:41:7: ( 'card' )
-            // InternalPerspectiveDsl.g:41:9: 'card'
+            // InternalPerspectiveDsl.g:41:7: ( 'welcome' )
+            // InternalPerspectiveDsl.g:41:9: 'welcome'
             {
-            match("card"); 
+            match("welcome"); 
 
 
             }
@@ -816,10 +802,10 @@
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:42:7: ( 'welcome' )
-            // InternalPerspectiveDsl.g:42:9: 'welcome'
+            // InternalPerspectiveDsl.g:42:7: ( 'search' )
+            // InternalPerspectiveDsl.g:42:9: 'search'
             {
-            match("welcome"); 
+            match("search"); 
 
 
             }
@@ -837,10 +823,10 @@
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:43:7: ( 'search' )
-            // InternalPerspectiveDsl.g:43:9: 'search'
+            // InternalPerspectiveDsl.g:43:7: ( 'in' )
+            // InternalPerspectiveDsl.g:43:9: 'in'
             {
-            match("search"); 
+            match("in"); 
 
 
             }
@@ -858,10 +844,10 @@
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:44:7: ( 'in' )
-            // InternalPerspectiveDsl.g:44:9: 'in'
+            // InternalPerspectiveDsl.g:44:7: ( 'depth' )
+            // InternalPerspectiveDsl.g:44:9: 'depth'
             {
-            match("in"); 
+            match("depth"); 
 
 
             }
@@ -879,10 +865,10 @@
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:45:7: ( 'depth' )
-            // InternalPerspectiveDsl.g:45:9: 'depth'
+            // InternalPerspectiveDsl.g:45:7: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:45:9: 'filterColumns'
             {
-            match("depth"); 
+            match("filterColumns"); 
 
 
             }
@@ -900,10 +886,10 @@
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:46:7: ( 'filterColumns' )
-            // InternalPerspectiveDsl.g:46:9: 'filterColumns'
+            // InternalPerspectiveDsl.g:46:7: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:46:9: 'dataInterchange'
             {
-            match("filterColumns"); 
+            match("dataInterchange"); 
 
 
             }
@@ -921,10 +907,10 @@
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:47:7: ( 'dataInterchange' )
-            // InternalPerspectiveDsl.g:47:9: 'dataInterchange'
+            // InternalPerspectiveDsl.g:47:7: ( 'import' )
+            // InternalPerspectiveDsl.g:47:9: 'import'
             {
-            match("dataInterchange"); 
+            match("import"); 
 
 
             }
@@ -942,10 +928,10 @@
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:48:7: ( 'import' )
-            // InternalPerspectiveDsl.g:48:9: 'import'
+            // InternalPerspectiveDsl.g:48:7: ( 'static' )
+            // InternalPerspectiveDsl.g:48:9: 'static'
             {
-            match("import"); 
+            match("static"); 
 
 
             }
@@ -963,10 +949,10 @@
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:49:7: ( 'static' )
-            // InternalPerspectiveDsl.g:49:9: 'static'
+            // InternalPerspectiveDsl.g:49:7: ( 'extension' )
+            // InternalPerspectiveDsl.g:49:9: 'extension'
             {
-            match("static"); 
+            match("extension"); 
 
 
             }
@@ -984,11 +970,10 @@
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:50:7: ( 'extension' )
-            // InternalPerspectiveDsl.g:50:9: 'extension'
+            // InternalPerspectiveDsl.g:50:7: ( '*' )
+            // InternalPerspectiveDsl.g:50:9: '*'
             {
-            match("extension"); 
-
+            match('*'); 
 
             }
 
@@ -1005,10 +990,11 @@
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:51:7: ( '*' )
-            // InternalPerspectiveDsl.g:51:9: '*'
+            // InternalPerspectiveDsl.g:51:7: ( 'ns' )
+            // InternalPerspectiveDsl.g:51:9: 'ns'
             {
-            match('*'); 
+            match("ns"); 
+
 
             }
 
@@ -1025,11 +1011,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:52:7: ( 'ns' )
-            // InternalPerspectiveDsl.g:52:9: 'ns'
+            // InternalPerspectiveDsl.g:52:7: ( ';' )
+            // InternalPerspectiveDsl.g:52:9: ';'
             {
-            match("ns"); 
-
+            match(';'); 
 
             }
 
@@ -1046,10 +1031,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:53:7: ( ';' )
-            // InternalPerspectiveDsl.g:53:9: ';'
+            // InternalPerspectiveDsl.g:53:7: ( '@' )
+            // InternalPerspectiveDsl.g:53:9: '@'
             {
-            match(';'); 
+            match('@'); 
 
             }
 
@@ -1066,10 +1051,10 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:54:7: ( '@' )
-            // InternalPerspectiveDsl.g:54:9: '@'
+            // InternalPerspectiveDsl.g:54:7: ( '(' )
+            // InternalPerspectiveDsl.g:54:9: '('
             {
-            match('@'); 
+            match('('); 
 
             }
 
@@ -1086,10 +1071,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:55:7: ( '(' )
-            // InternalPerspectiveDsl.g:55:9: '('
+            // InternalPerspectiveDsl.g:55:7: ( ',' )
+            // InternalPerspectiveDsl.g:55:9: ','
             {
-            match('('); 
+            match(','); 
 
             }
 
@@ -1106,10 +1091,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:56:7: ( ',' )
-            // InternalPerspectiveDsl.g:56:9: ','
+            // InternalPerspectiveDsl.g:56:7: ( ')' )
+            // InternalPerspectiveDsl.g:56:9: ')'
             {
-            match(','); 
+            match(')'); 
 
             }
 
@@ -1126,10 +1111,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:57:7: ( ')' )
-            // InternalPerspectiveDsl.g:57:9: ')'
+            // InternalPerspectiveDsl.g:57:7: ( '=' )
+            // InternalPerspectiveDsl.g:57:9: '='
             {
-            match(')'); 
+            match('='); 
 
             }
 
@@ -1146,10 +1131,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:58:7: ( '=' )
-            // InternalPerspectiveDsl.g:58:9: '='
+            // InternalPerspectiveDsl.g:58:7: ( '#' )
+            // InternalPerspectiveDsl.g:58:9: '#'
             {
-            match('='); 
+            match('#'); 
 
             }
 
@@ -1166,10 +1151,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:59:7: ( '#' )
-            // InternalPerspectiveDsl.g:59:9: '#'
+            // InternalPerspectiveDsl.g:59:7: ( '[' )
+            // InternalPerspectiveDsl.g:59:9: '['
             {
-            match('#'); 
+            match('['); 
 
             }
 
@@ -1186,10 +1171,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:60:7: ( '[' )
-            // InternalPerspectiveDsl.g:60:9: '['
+            // InternalPerspectiveDsl.g:60:7: ( ']' )
+            // InternalPerspectiveDsl.g:60:9: ']'
             {
-            match('['); 
+            match(']'); 
 
             }
 
@@ -1206,10 +1191,11 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:61:7: ( ']' )
-            // InternalPerspectiveDsl.g:61:9: ']'
+            // InternalPerspectiveDsl.g:61:7: ( '+=' )
+            // InternalPerspectiveDsl.g:61:9: '+='
             {
-            match(']'); 
+            match("+="); 
+
 
             }
 
@@ -1226,10 +1212,10 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:62:7: ( '+=' )
-            // InternalPerspectiveDsl.g:62:9: '+='
+            // InternalPerspectiveDsl.g:62:7: ( '-=' )
+            // InternalPerspectiveDsl.g:62:9: '-='
             {
-            match("+="); 
+            match("-="); 
 
 
             }
@@ -1247,10 +1233,10 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:63:7: ( '-=' )
-            // InternalPerspectiveDsl.g:63:9: '-='
+            // InternalPerspectiveDsl.g:63:7: ( '*=' )
+            // InternalPerspectiveDsl.g:63:9: '*='
             {
-            match("-="); 
+            match("*="); 
 
 
             }
@@ -1268,10 +1254,10 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:64:7: ( '*=' )
-            // InternalPerspectiveDsl.g:64:9: '*='
+            // InternalPerspectiveDsl.g:64:7: ( '/=' )
+            // InternalPerspectiveDsl.g:64:9: '/='
             {
-            match("*="); 
+            match("/="); 
 
 
             }
@@ -1289,10 +1275,10 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:65:7: ( '/=' )
-            // InternalPerspectiveDsl.g:65:9: '/='
+            // InternalPerspectiveDsl.g:65:7: ( '%=' )
+            // InternalPerspectiveDsl.g:65:9: '%='
             {
-            match("/="); 
+            match("%="); 
 
 
             }
@@ -1310,11 +1296,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:66:7: ( '%=' )
-            // InternalPerspectiveDsl.g:66:9: '%='
+            // InternalPerspectiveDsl.g:66:7: ( '<' )
+            // InternalPerspectiveDsl.g:66:9: '<'
             {
-            match("%="); 
-
+            match('<'); 
 
             }
 
@@ -1331,10 +1316,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:67:7: ( '<' )
-            // InternalPerspectiveDsl.g:67:9: '<'
+            // InternalPerspectiveDsl.g:67:7: ( '>' )
+            // InternalPerspectiveDsl.g:67:9: '>'
             {
-            match('<'); 
+            match('>'); 
 
             }
 
@@ -1351,10 +1336,11 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:68:7: ( '>' )
-            // InternalPerspectiveDsl.g:68:9: '>'
+            // InternalPerspectiveDsl.g:68:7: ( '>=' )
+            // InternalPerspectiveDsl.g:68:9: '>='
             {
-            match('>'); 
+            match(">="); 
+
 
             }
 
@@ -1371,10 +1357,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:69:7: ( '>=' )
-            // InternalPerspectiveDsl.g:69:9: '>='
+            // InternalPerspectiveDsl.g:69:7: ( '||' )
+            // InternalPerspectiveDsl.g:69:9: '||'
             {
-            match(">="); 
+            match("||"); 
 
 
             }
@@ -1392,10 +1378,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:70:7: ( '||' )
-            // InternalPerspectiveDsl.g:70:9: '||'
+            // InternalPerspectiveDsl.g:70:7: ( '&&' )
+            // InternalPerspectiveDsl.g:70:9: '&&'
             {
-            match("||"); 
+            match("&&"); 
 
 
             }
@@ -1413,10 +1399,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:71:7: ( '&&' )
-            // InternalPerspectiveDsl.g:71:9: '&&'
+            // InternalPerspectiveDsl.g:71:7: ( '==' )
+            // InternalPerspectiveDsl.g:71:9: '=='
             {
-            match("&&"); 
+            match("=="); 
 
 
             }
@@ -1434,10 +1420,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:72:7: ( '==' )
-            // InternalPerspectiveDsl.g:72:9: '=='
+            // InternalPerspectiveDsl.g:72:7: ( '!=' )
+            // InternalPerspectiveDsl.g:72:9: '!='
             {
-            match("=="); 
+            match("!="); 
 
 
             }
@@ -1455,10 +1441,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:73:7: ( '!=' )
-            // InternalPerspectiveDsl.g:73:9: '!='
+            // InternalPerspectiveDsl.g:73:7: ( '===' )
+            // InternalPerspectiveDsl.g:73:9: '==='
             {
-            match("!="); 
+            match("==="); 
 
 
             }
@@ -1476,10 +1462,10 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:74:7: ( '===' )
-            // InternalPerspectiveDsl.g:74:9: '==='
+            // InternalPerspectiveDsl.g:74:7: ( '!==' )
+            // InternalPerspectiveDsl.g:74:9: '!=='
             {
-            match("==="); 
+            match("!=="); 
 
 
             }
@@ -1497,10 +1483,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:75:7: ( '!==' )
-            // InternalPerspectiveDsl.g:75:9: '!=='
+            // InternalPerspectiveDsl.g:75:7: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:75:9: 'instanceof'
             {
-            match("!=="); 
+            match("instanceof"); 
 
 
             }
@@ -1518,10 +1504,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:76:7: ( 'instanceof' )
-            // InternalPerspectiveDsl.g:76:9: 'instanceof'
+            // InternalPerspectiveDsl.g:76:7: ( '->' )
+            // InternalPerspectiveDsl.g:76:9: '->'
             {
-            match("instanceof"); 
+            match("->"); 
 
 
             }
@@ -1539,10 +1525,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:77:7: ( '->' )
-            // InternalPerspectiveDsl.g:77:9: '->'
+            // InternalPerspectiveDsl.g:77:7: ( '..<' )
+            // InternalPerspectiveDsl.g:77:9: '..<'
             {
-            match("->"); 
+            match("..<"); 
 
 
             }
@@ -1560,10 +1546,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:78:7: ( '..<' )
-            // InternalPerspectiveDsl.g:78:9: '..<'
+            // InternalPerspectiveDsl.g:78:7: ( '..' )
+            // InternalPerspectiveDsl.g:78:9: '..'
             {
-            match("..<"); 
+            match(".."); 
 
 
             }
@@ -1581,10 +1567,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:79:7: ( '..' )
-            // InternalPerspectiveDsl.g:79:9: '..'
+            // InternalPerspectiveDsl.g:79:7: ( '=>' )
+            // InternalPerspectiveDsl.g:79:9: '=>'
             {
-            match(".."); 
+            match("=>"); 
 
 
             }
@@ -1602,10 +1588,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:80:7: ( '=>' )
-            // InternalPerspectiveDsl.g:80:9: '=>'
+            // InternalPerspectiveDsl.g:80:7: ( '<>' )
+            // InternalPerspectiveDsl.g:80:9: '<>'
             {
-            match("=>"); 
+            match("<>"); 
 
 
             }
@@ -1623,10 +1609,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:81:7: ( '<>' )
-            // InternalPerspectiveDsl.g:81:9: '<>'
+            // InternalPerspectiveDsl.g:81:7: ( '?:' )
+            // InternalPerspectiveDsl.g:81:9: '?:'
             {
-            match("<>"); 
+            match("?:"); 
 
 
             }
@@ -1644,11 +1630,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:82:7: ( '?:' )
-            // InternalPerspectiveDsl.g:82:9: '?:'
+            // InternalPerspectiveDsl.g:82:7: ( '+' )
+            // InternalPerspectiveDsl.g:82:9: '+'
             {
-            match("?:"); 
-
+            match('+'); 
 
             }
 
@@ -1665,10 +1650,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:83:7: ( '+' )
-            // InternalPerspectiveDsl.g:83:9: '+'
+            // InternalPerspectiveDsl.g:83:7: ( '-' )
+            // InternalPerspectiveDsl.g:83:9: '-'
             {
-            match('+'); 
+            match('-'); 
 
             }
 
@@ -1685,10 +1670,11 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:84:7: ( '-' )
-            // InternalPerspectiveDsl.g:84:9: '-'
+            // InternalPerspectiveDsl.g:84:7: ( '**' )
+            // InternalPerspectiveDsl.g:84:9: '**'
             {
-            match('-'); 
+            match("**"); 
+
 
             }
 
@@ -1705,11 +1691,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:85:7: ( '**' )
-            // InternalPerspectiveDsl.g:85:9: '**'
+            // InternalPerspectiveDsl.g:85:7: ( '/' )
+            // InternalPerspectiveDsl.g:85:9: '/'
             {
-            match("**"); 
-
+            match('/'); 
 
             }
 
@@ -1726,10 +1711,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:86:7: ( '/' )
-            // InternalPerspectiveDsl.g:86:9: '/'
+            // InternalPerspectiveDsl.g:86:7: ( '%' )
+            // InternalPerspectiveDsl.g:86:9: '%'
             {
-            match('/'); 
+            match('%'); 
 
             }
 
@@ -1746,10 +1731,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:87:7: ( '%' )
-            // InternalPerspectiveDsl.g:87:9: '%'
+            // InternalPerspectiveDsl.g:87:7: ( '!' )
+            // InternalPerspectiveDsl.g:87:9: '!'
             {
-            match('%'); 
+            match('!'); 
 
             }
 
@@ -1766,10 +1751,11 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:88:7: ( '!' )
-            // InternalPerspectiveDsl.g:88:9: '!'
+            // InternalPerspectiveDsl.g:88:7: ( 'as' )
+            // InternalPerspectiveDsl.g:88:9: 'as'
             {
-            match('!'); 
+            match("as"); 
+
 
             }
 
@@ -1786,10 +1772,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:89:7: ( 'as' )
-            // InternalPerspectiveDsl.g:89:9: 'as'
+            // InternalPerspectiveDsl.g:89:7: ( '++' )
+            // InternalPerspectiveDsl.g:89:9: '++'
             {
-            match("as"); 
+            match("++"); 
 
 
             }
@@ -1807,10 +1793,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:90:7: ( '++' )
-            // InternalPerspectiveDsl.g:90:9: '++'
+            // InternalPerspectiveDsl.g:90:7: ( '--' )
+            // InternalPerspectiveDsl.g:90:9: '--'
             {
-            match("++"); 
+            match("--"); 
 
 
             }
@@ -1828,11 +1814,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:91:7: ( '--' )
-            // InternalPerspectiveDsl.g:91:9: '--'
+            // InternalPerspectiveDsl.g:91:7: ( '.' )
+            // InternalPerspectiveDsl.g:91:9: '.'
             {
-            match("--"); 
-
+            match('.'); 
 
             }
 
@@ -1849,10 +1834,11 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:92:7: ( '.' )
-            // InternalPerspectiveDsl.g:92:9: '.'
+            // InternalPerspectiveDsl.g:92:7: ( '::' )
+            // InternalPerspectiveDsl.g:92:9: '::'
             {
-            match('.'); 
+            match("::"); 
+
 
             }
 
@@ -1869,10 +1855,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:93:7: ( '::' )
-            // InternalPerspectiveDsl.g:93:9: '::'
+            // InternalPerspectiveDsl.g:93:7: ( '?.' )
+            // InternalPerspectiveDsl.g:93:9: '?.'
             {
-            match("::"); 
+            match("?."); 
 
 
             }
@@ -1890,11 +1876,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:94:7: ( '?.' )
-            // InternalPerspectiveDsl.g:94:9: '?.'
+            // InternalPerspectiveDsl.g:94:7: ( '|' )
+            // InternalPerspectiveDsl.g:94:9: '|'
             {
-            match("?."); 
-
+            match('|'); 
 
             }
 
@@ -1911,10 +1896,11 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:95:7: ( '|' )
-            // InternalPerspectiveDsl.g:95:9: '|'
+            // InternalPerspectiveDsl.g:95:7: ( 'if' )
+            // InternalPerspectiveDsl.g:95:9: 'if'
             {
-            match('|'); 
+            match("if"); 
+
 
             }
 
@@ -1931,10 +1917,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:96:7: ( 'if' )
-            // InternalPerspectiveDsl.g:96:9: 'if'
+            // InternalPerspectiveDsl.g:96:7: ( 'else' )
+            // InternalPerspectiveDsl.g:96:9: 'else'
             {
-            match("if"); 
+            match("else"); 
 
 
             }
@@ -1952,10 +1938,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:97:7: ( 'else' )
-            // InternalPerspectiveDsl.g:97:9: 'else'
+            // InternalPerspectiveDsl.g:97:7: ( 'switch' )
+            // InternalPerspectiveDsl.g:97:9: 'switch'
             {
-            match("else"); 
+            match("switch"); 
 
 
             }
@@ -1973,11 +1959,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:98:8: ( 'switch' )
-            // InternalPerspectiveDsl.g:98:10: 'switch'
+            // InternalPerspectiveDsl.g:98:8: ( ':' )
+            // InternalPerspectiveDsl.g:98:10: ':'
             {
-            match("switch"); 
-
+            match(':'); 
 
             }
 
@@ -1994,10 +1979,11 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:99:8: ( ':' )
-            // InternalPerspectiveDsl.g:99:10: ':'
+            // InternalPerspectiveDsl.g:99:8: ( 'default' )
+            // InternalPerspectiveDsl.g:99:10: 'default'
             {
-            match(':'); 
+            match("default"); 
+
 
             }
 
@@ -2014,10 +2000,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:100:8: ( 'default' )
-            // InternalPerspectiveDsl.g:100:10: 'default'
+            // InternalPerspectiveDsl.g:100:8: ( 'case' )
+            // InternalPerspectiveDsl.g:100:10: 'case'
             {
-            match("default"); 
+            match("case"); 
 
 
             }
@@ -2035,10 +2021,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:101:8: ( 'case' )
-            // InternalPerspectiveDsl.g:101:10: 'case'
+            // InternalPerspectiveDsl.g:101:8: ( 'for' )
+            // InternalPerspectiveDsl.g:101:10: 'for'
             {
-            match("case"); 
+            match("for"); 
 
 
             }
@@ -2056,10 +2042,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:102:8: ( 'for' )
-            // InternalPerspectiveDsl.g:102:10: 'for'
+            // InternalPerspectiveDsl.g:102:8: ( 'while' )
+            // InternalPerspectiveDsl.g:102:10: 'while'
             {
-            match("for"); 
+            match("while"); 
 
 
             }
@@ -2077,10 +2063,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:103:8: ( 'while' )
-            // InternalPerspectiveDsl.g:103:10: 'while'
+            // InternalPerspectiveDsl.g:103:8: ( 'do' )
+            // InternalPerspectiveDsl.g:103:10: 'do'
             {
-            match("while"); 
+            match("do"); 
 
 
             }
@@ -2098,10 +2084,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:104:8: ( 'do' )
-            // InternalPerspectiveDsl.g:104:10: 'do'
+            // InternalPerspectiveDsl.g:104:8: ( 'var' )
+            // InternalPerspectiveDsl.g:104:10: 'var'
             {
-            match("do"); 
+            match("var"); 
 
 
             }
@@ -2119,10 +2105,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:105:8: ( 'var' )
-            // InternalPerspectiveDsl.g:105:10: 'var'
+            // InternalPerspectiveDsl.g:105:8: ( 'val' )
+            // InternalPerspectiveDsl.g:105:10: 'val'
             {
-            match("var"); 
+            match("val"); 
 
 
             }
@@ -2140,10 +2126,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:106:8: ( 'val' )
-            // InternalPerspectiveDsl.g:106:10: 'val'
+            // InternalPerspectiveDsl.g:106:8: ( 'extends' )
+            // InternalPerspectiveDsl.g:106:10: 'extends'
             {
-            match("val"); 
+            match("extends"); 
 
 
             }
@@ -2161,10 +2147,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:107:8: ( 'extends' )
-            // InternalPerspectiveDsl.g:107:10: 'extends'
+            // InternalPerspectiveDsl.g:107:8: ( 'super' )
+            // InternalPerspectiveDsl.g:107:10: 'super'
             {
-            match("extends"); 
+            match("super"); 
 
 
             }
@@ -2182,10 +2168,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:108:8: ( 'super' )
-            // InternalPerspectiveDsl.g:108:10: 'super'
+            // InternalPerspectiveDsl.g:108:8: ( 'new' )
+            // InternalPerspectiveDsl.g:108:10: 'new'
             {
-            match("super"); 
+            match("new"); 
 
 
             }
@@ -2203,10 +2189,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:109:8: ( 'new' )
-            // InternalPerspectiveDsl.g:109:10: 'new'
+            // InternalPerspectiveDsl.g:109:8: ( 'false' )
+            // InternalPerspectiveDsl.g:109:10: 'false'
             {
-            match("new"); 
+            match("false"); 
 
 
             }
@@ -2224,10 +2210,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:110:8: ( 'false' )
-            // InternalPerspectiveDsl.g:110:10: 'false'
+            // InternalPerspectiveDsl.g:110:8: ( 'true' )
+            // InternalPerspectiveDsl.g:110:10: 'true'
             {
-            match("false"); 
+            match("true"); 
 
 
             }
@@ -2245,10 +2231,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:111:8: ( 'true' )
-            // InternalPerspectiveDsl.g:111:10: 'true'
+            // InternalPerspectiveDsl.g:111:8: ( 'null' )
+            // InternalPerspectiveDsl.g:111:10: 'null'
             {
-            match("true"); 
+            match("null"); 
 
 
             }
@@ -2266,10 +2252,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:112:8: ( 'null' )
-            // InternalPerspectiveDsl.g:112:10: 'null'
+            // InternalPerspectiveDsl.g:112:8: ( 'typeof' )
+            // InternalPerspectiveDsl.g:112:10: 'typeof'
             {
-            match("null"); 
+            match("typeof"); 
 
 
             }
@@ -2287,10 +2273,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:113:8: ( 'typeof' )
-            // InternalPerspectiveDsl.g:113:10: 'typeof'
+            // InternalPerspectiveDsl.g:113:8: ( 'throw' )
+            // InternalPerspectiveDsl.g:113:10: 'throw'
             {
-            match("typeof"); 
+            match("throw"); 
 
 
             }
@@ -2308,10 +2294,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:114:8: ( 'throw' )
-            // InternalPerspectiveDsl.g:114:10: 'throw'
+            // InternalPerspectiveDsl.g:114:8: ( 'return' )
+            // InternalPerspectiveDsl.g:114:10: 'return'
             {
-            match("throw"); 
+            match("return"); 
 
 
             }
@@ -2329,10 +2315,10 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:115:8: ( 'return' )
-            // InternalPerspectiveDsl.g:115:10: 'return'
+            // InternalPerspectiveDsl.g:115:8: ( 'try' )
+            // InternalPerspectiveDsl.g:115:10: 'try'
             {
-            match("return"); 
+            match("try"); 
 
 
             }
@@ -2350,10 +2336,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:116:8: ( 'try' )
-            // InternalPerspectiveDsl.g:116:10: 'try'
+            // InternalPerspectiveDsl.g:116:8: ( 'finally' )
+            // InternalPerspectiveDsl.g:116:10: 'finally'
             {
-            match("try"); 
+            match("finally"); 
 
 
             }
@@ -2371,10 +2357,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:117:8: ( 'finally' )
-            // InternalPerspectiveDsl.g:117:10: 'finally'
+            // InternalPerspectiveDsl.g:117:8: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:117:10: 'synchronized'
             {
-            match("finally"); 
+            match("synchronized"); 
 
 
             }
@@ -2392,10 +2378,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:118:8: ( 'synchronized' )
-            // InternalPerspectiveDsl.g:118:10: 'synchronized'
+            // InternalPerspectiveDsl.g:118:8: ( 'catch' )
+            // InternalPerspectiveDsl.g:118:10: 'catch'
             {
-            match("synchronized"); 
+            match("catch"); 
 
 
             }
@@ -2413,11 +2399,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:119:8: ( 'catch' )
-            // InternalPerspectiveDsl.g:119:10: 'catch'
+            // InternalPerspectiveDsl.g:119:8: ( '?' )
+            // InternalPerspectiveDsl.g:119:10: '?'
             {
-            match("catch"); 
-
+            match('?'); 
 
             }
 
@@ -2434,10 +2419,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:120:8: ( '?' )
-            // InternalPerspectiveDsl.g:120:10: '?'
+            // InternalPerspectiveDsl.g:120:8: ( '&' )
+            // InternalPerspectiveDsl.g:120:10: '&'
             {
-            match('?'); 
+            match('&'); 
 
             }
 
@@ -2454,10 +2439,11 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:121:8: ( '&' )
-            // InternalPerspectiveDsl.g:121:10: '&'
+            // InternalPerspectiveDsl.g:121:8: ( 'horizontal' )
+            // InternalPerspectiveDsl.g:121:10: 'horizontal'
             {
-            match('&'); 
+            match("horizontal"); 
+
 
             }
 
@@ -2474,29 +2460,8 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:122:8: ( 'horizontal' )
-            // InternalPerspectiveDsl.g:122:10: 'horizontal'
-            {
-            match("horizontal"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__124"
-
-    // $ANTLR start "T__125"
-    public final void mT__125() throws RecognitionException {
-        try {
-            int _type = T__125;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:123:8: ( 'vertical' )
-            // InternalPerspectiveDsl.g:123:10: 'vertical'
+            // InternalPerspectiveDsl.g:122:8: ( 'vertical' )
+            // InternalPerspectiveDsl.g:122:10: 'vertical'
             {
             match("vertical"); 
 
@@ -2509,17 +2474,17 @@
         finally {
         }
     }
-    // $ANTLR end "T__125"
+    // $ANTLR end "T__124"
 
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8909:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalPerspectiveDsl.g:8909:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:8870:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalPerspectiveDsl.g:8870:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalPerspectiveDsl.g:8909:12: ( '0x' | '0X' )
+            // InternalPerspectiveDsl.g:8870:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2547,7 +2512,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8909:13: '0x'
+                    // InternalPerspectiveDsl.g:8870:13: '0x'
                     {
                     match("0x"); 
 
@@ -2555,7 +2520,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8909:18: '0X'
+                    // InternalPerspectiveDsl.g:8870:18: '0X'
                     {
                     match("0X"); 
 
@@ -2565,7 +2530,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:8909:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalPerspectiveDsl.g:8870:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2603,7 +2568,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalPerspectiveDsl.g:8909:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:8870:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2612,10 +2577,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8909:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:8870:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalPerspectiveDsl.g:8909:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:8870:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2633,7 +2598,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:8909:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalPerspectiveDsl.g:8870:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2657,7 +2622,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:8909:84: ( 'l' | 'L' )
+                            // InternalPerspectiveDsl.g:8870:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2696,11 +2661,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8911:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalPerspectiveDsl.g:8911:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:8872:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalPerspectiveDsl.g:8872:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalPerspectiveDsl.g:8911:21: ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:8872:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2749,11 +2714,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8913:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalPerspectiveDsl.g:8913:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:8874:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalPerspectiveDsl.g:8874:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalPerspectiveDsl.g:8913:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalPerspectiveDsl.g:8874:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2762,7 +2727,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8913:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalPerspectiveDsl.g:8874:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2773,7 +2738,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalPerspectiveDsl.g:8913:36: ( '+' | '-' )?
+                    // InternalPerspectiveDsl.g:8874:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2806,7 +2771,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:8913:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:8874:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2818,7 +2783,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8913:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalPerspectiveDsl.g:8874:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2842,7 +2807,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8913:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalPerspectiveDsl.g:8874: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();
@@ -2875,10 +2840,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8915:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalPerspectiveDsl.g:8915:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:8876:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalPerspectiveDsl.g:8876:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalPerspectiveDsl.g:8915:11: ( '^' )?
+            // InternalPerspectiveDsl.g:8876:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -2887,7 +2852,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8915:11: '^'
+                    // InternalPerspectiveDsl.g:8876:11: '^'
                     {
                     match('^'); 
 
@@ -2905,7 +2870,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalPerspectiveDsl.g:8915:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:8876:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -2954,10 +2919,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8917:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalPerspectiveDsl.g:8917:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:8878:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalPerspectiveDsl.g:8878:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalPerspectiveDsl.g:8917:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:8878:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2975,10 +2940,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8917:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalPerspectiveDsl.g:8878:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalPerspectiveDsl.g:8917:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalPerspectiveDsl.g:8878:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -2994,7 +2959,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:8917:21: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:8878:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3002,7 +2967,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:8917:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalPerspectiveDsl.g:8878:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3022,7 +2987,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:8917:44: ( '\"' )?
+                    // InternalPerspectiveDsl.g:8878:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3031,7 +2996,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:8917:44: '\"'
+                            // InternalPerspectiveDsl.g:8878:44: '\"'
                             {
                             match('\"'); 
 
@@ -3044,10 +3009,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8917:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalPerspectiveDsl.g:8878:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalPerspectiveDsl.g:8917:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalPerspectiveDsl.g:8878:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3063,7 +3028,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:8917:55: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:8878:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3071,7 +3036,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:8917:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalPerspectiveDsl.g:8878:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3091,7 +3056,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:8917:79: ( '\\'' )?
+                    // InternalPerspectiveDsl.g:8878:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3100,7 +3065,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:8917:79: '\\''
+                            // InternalPerspectiveDsl.g:8878:79: '\\''
                             {
                             match('\''); 
 
@@ -3131,12 +3096,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8919:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalPerspectiveDsl.g:8919:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalPerspectiveDsl.g:8880:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalPerspectiveDsl.g:8880:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalPerspectiveDsl.g:8919:24: ( options {greedy=false; } : . )*
+            // InternalPerspectiveDsl.g:8880:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3161,7 +3126,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8919:52: .
+            	    // InternalPerspectiveDsl.g:8880:52: .
             	    {
             	    matchAny(); 
 
@@ -3191,12 +3156,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8921:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalPerspectiveDsl.g:8921:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:8882:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalPerspectiveDsl.g:8882:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalPerspectiveDsl.g:8921:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalPerspectiveDsl.g:8882:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3209,7 +3174,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8921:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalPerspectiveDsl.g:8882: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();
@@ -3229,7 +3194,7 @@
                 }
             } while (true);
 
-            // InternalPerspectiveDsl.g:8921:40: ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:8882:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3238,9 +3203,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8921:41: ( '\\r' )? '\\n'
+                    // InternalPerspectiveDsl.g:8882:41: ( '\\r' )? '\\n'
                     {
-                    // InternalPerspectiveDsl.g:8921:41: ( '\\r' )?
+                    // InternalPerspectiveDsl.g:8882:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3249,7 +3214,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:8921:41: '\\r'
+                            // InternalPerspectiveDsl.g:8882:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3281,10 +3246,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8923:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalPerspectiveDsl.g:8923:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:8884:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalPerspectiveDsl.g:8884:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalPerspectiveDsl.g:8923:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:8884:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3338,8 +3303,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:8925:16: ( . )
-            // InternalPerspectiveDsl.g:8925:18: .
+            // InternalPerspectiveDsl.g:8886:16: ( . )
+            // InternalPerspectiveDsl.g:8886:18: .
             {
             matchAny(); 
 
@@ -3354,8 +3319,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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=122;
+        // 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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=121;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -4143,70 +4108,63 @@
                 }
                 break;
             case 113 :
-                // InternalPerspectiveDsl.g:1:707: T__125
-                {
-                mT__125(); 
-
-                }
-                break;
-            case 114 :
-                // InternalPerspectiveDsl.g:1:714: RULE_HEX
+                // InternalPerspectiveDsl.g:1:707: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 115 :
-                // InternalPerspectiveDsl.g:1:723: RULE_INT
+            case 114 :
+                // InternalPerspectiveDsl.g:1:716: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 116 :
-                // InternalPerspectiveDsl.g:1:732: RULE_DECIMAL
+            case 115 :
+                // InternalPerspectiveDsl.g:1:725: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 117 :
-                // InternalPerspectiveDsl.g:1:745: RULE_ID
+            case 116 :
+                // InternalPerspectiveDsl.g:1:738: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 118 :
-                // InternalPerspectiveDsl.g:1:753: RULE_STRING
+            case 117 :
+                // InternalPerspectiveDsl.g:1:746: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 119 :
-                // InternalPerspectiveDsl.g:1:765: RULE_ML_COMMENT
+            case 118 :
+                // InternalPerspectiveDsl.g:1:758: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 120 :
-                // InternalPerspectiveDsl.g:1:781: RULE_SL_COMMENT
+            case 119 :
+                // InternalPerspectiveDsl.g:1:774: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 121 :
-                // InternalPerspectiveDsl.g:1:797: RULE_WS
+            case 120 :
+                // InternalPerspectiveDsl.g:1:790: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 122 :
-                // InternalPerspectiveDsl.g:1:805: RULE_ANY_OTHER
+            case 121 :
+                // InternalPerspectiveDsl.g:1:798: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -4220,17 +4178,17 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\67\2\uffff\20\67\1\147\1\67\5\uffff\1\162\3\uffff\1\170\1\174\1\u0080\1\u0082\1\u0084\1\u0086\1\u0088\1\u008a\1\u008c\1\u008e\1\u0091\1\u0093\1\67\2\u0097\1\63\5\uffff\3\67\3\uffff\3\67\1\u00a4\3\67\1\u00a9\1\67\1\u00ab\1\67\1\u00ad\15\67\1\u00bf\21\67\3\uffff\1\u00d6\2\67\5\uffff\1\u00da\32\uffff\1\u00dc\1\uffff\1\u00de\6\uffff\1\67\1\uffff\1\u0097\4\uffff\11\67\1\uffff\4\67\1\uffff\1\67\1\uffff\1\67\1\uffff\4\67\1\u00f3\14\67\1\uffff\1\67\1\u0101\1\u0102\17\67\1\u0112\3\67\1\uffff\1\u0116\1\67\6\uffff\2\67\1\u011b\20\67\1\u012c\1\uffff\14\67\1\u0139\2\uffff\1\67\1\u013b\1\u013c\1\u013d\1\67\1\u013f\1\u0140\10\67\1\uffff\2\67\1\u014b\1\uffff\1\u014c\3\67\1\uffff\3\67\1\u0153\13\67\1\u015f\1\uffff\1\67\1\u0161\6\67\1\u0168\3\67\1\uffff\1\67\3\uffff\1\u016d\2\uffff\1\u016e\4\67\1\u0173\2\67\1\u0176\1\67\2\uffff\6\67\1\uffff\1\67\1\u0180\5\67\1\u0186\3\67\1\uffff\1\u018a\1\uffff\1\67\1\u018d\1\u018e\1\67\1\u0190\1\u0191\1\uffff\4\67\2\uffff\1\u0196\1\u0197\1\u0198\1\67\1\uffff\2\67\1\uffff\3\67\1\u019f\2\67\1\u01a2\1\67\1\u01a4\1\uffff\2\67\1\u01a7\2\67\1\uffff\1\67\1\u01ab\1\67\1\uffff\2\67\2\uffff\1\67\2\uffff\4\67\3\uffff\1\u01b4\1\67\1\u01b6\1\67\1\u01b8\1\67\1\uffff\2\67\1\uffff\1\67\1\uffff\1\67\1\u01be\1\uffff\3\67\1\uffff\1\u01c2\6\67\1\u01c9\1\uffff\1\67\1\uffff\1\67\1\uffff\1\67\1\u01cd\3\67\1\uffff\3\67\1\uffff\6\67\1\uffff\1\67\1\u01db\1\67\1\uffff\3\67\1\u01e0\1\u01e1\6\67\1\u01e8\1\67\1\uffff\1\u01ea\1\u01eb\1\u01ec\1\67\2\uffff\3\67\1\u01f1\1\67\1\u01f3\1\uffff\1\67\3\uffff\4\67\1\uffff\1\u01f9\1\uffff\2\67\1\u01fc\1\u01fd\1\67\1\uffff\1\u01ff\1\67\2\uffff\1\67\1\uffff\1\u0202\1\u0203\2\uffff";
+        "\1\uffff\1\67\2\uffff\20\67\1\146\1\67\5\uffff\1\161\3\uffff\1\167\1\173\1\177\1\u0081\1\u0083\1\u0085\1\u0087\1\u0089\1\u008b\1\u008d\1\u0090\1\u0092\1\67\2\u0096\1\63\5\uffff\3\67\3\uffff\3\67\1\u00a3\3\67\1\u00a8\1\67\1\u00aa\1\67\1\u00ac\15\67\1\u00be\20\67\3\uffff\1\u00d4\2\67\5\uffff\1\u00d8\32\uffff\1\u00da\1\uffff\1\u00dc\6\uffff\1\67\1\uffff\1\u0096\4\uffff\11\67\1\uffff\4\67\1\uffff\1\67\1\uffff\1\67\1\uffff\4\67\1\u00f1\14\67\1\uffff\1\67\1\u00ff\1\u0100\16\67\1\u010f\3\67\1\uffff\1\u0113\1\67\6\uffff\2\67\1\u0118\20\67\1\u0129\1\uffff\14\67\1\u0136\2\uffff\1\67\1\u0138\1\u0139\1\67\1\u013b\1\u013c\10\67\1\uffff\2\67\1\u0147\1\uffff\1\u0148\3\67\1\uffff\3\67\1\u014f\13\67\1\u015b\1\uffff\1\67\1\u015d\6\67\1\u0164\3\67\1\uffff\1\67\2\uffff\1\u0169\2\uffff\1\u016a\4\67\1\u016f\2\67\1\u0172\1\67\2\uffff\6\67\1\uffff\1\67\1\u017c\5\67\1\u0182\3\67\1\uffff\1\u0186\1\uffff\1\67\1\u0189\1\u018a\1\67\1\u018c\1\u018d\1\uffff\4\67\2\uffff\1\u0192\1\u0193\1\u0194\1\67\1\uffff\2\67\1\uffff\3\67\1\u019b\2\67\1\u019e\1\67\1\u01a0\1\uffff\2\67\1\u01a3\2\67\1\uffff\1\67\1\u01a7\1\67\1\uffff\2\67\2\uffff\1\67\2\uffff\4\67\3\uffff\1\u01b0\1\67\1\u01b2\1\67\1\u01b4\1\67\1\uffff\2\67\1\uffff\1\67\1\uffff\1\67\1\u01ba\1\uffff\3\67\1\uffff\1\u01be\6\67\1\u01c5\1\uffff\1\67\1\uffff\1\67\1\uffff\1\67\1\u01c9\3\67\1\uffff\3\67\1\uffff\6\67\1\uffff\1\67\1\u01d7\1\67\1\uffff\3\67\1\u01dc\1\u01dd\6\67\1\u01e4\1\67\1\uffff\1\u01e6\1\u01e7\1\u01e8\1\67\2\uffff\3\67\1\u01ed\1\67\1\u01ef\1\uffff\1\67\3\uffff\4\67\1\uffff\1\u01f5\1\uffff\2\67\1\u01f8\1\u01f9\1\67\1\uffff\1\u01fb\1\67\2\uffff\1\67\1\uffff\1\u01fe\1\u01ff\2\uffff";
     static final String DFA21_eofS =
-        "\u0204\uffff";
+        "\u0200\uffff";
     static final String DFA21_minS =
-        "\1\0\1\141\2\uffff\1\141\1\163\2\143\2\141\1\146\1\141\1\162\1\145\1\141\1\145\1\141\1\145\1\141\1\154\1\52\1\145\5\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174\1\46\1\75\2\56\1\72\1\157\2\60\1\44\5\uffff\1\143\1\162\1\157\3\uffff\1\146\1\141\1\164\1\44\1\145\1\157\1\103\1\44\1\160\1\44\1\143\1\44\1\157\1\142\1\165\1\160\1\162\1\163\3\141\1\151\1\160\1\156\1\147\1\44\1\145\1\154\1\162\1\151\1\141\1\155\1\141\1\162\1\160\1\156\1\154\1\151\1\154\1\162\1\154\1\164\1\163\3\uffff\1\44\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\1\uffff\1\60\4\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\uffff\1\154\1\157\1\154\1\145\1\44\1\145\1\157\1\150\1\145\1\162\1\143\2\164\1\145\1\143\1\145\1\141\1\uffff\1\167\2\44\1\164\1\144\2\156\1\162\1\144\1\145\1\143\1\157\1\165\1\142\1\143\1\154\1\164\1\141\1\44\1\163\2\145\1\uffff\1\44\1\154\6\uffff\1\151\1\141\1\44\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\125\1\157\1\141\1\162\1\163\1\142\1\154\1\145\1\44\1\uffff\1\157\1\167\1\103\2\143\1\145\1\151\1\143\1\162\1\150\2\156\1\44\2\uffff\1\151\3\44\1\164\2\44\1\150\2\162\1\141\1\157\2\145\1\154\1\uffff\1\145\1\156\1\44\1\uffff\1\44\1\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\44\1\154\1\147\1\156\1\141\1\122\1\163\1\156\1\164\1\163\1\141\1\157\1\44\1\uffff\1\146\1\44\1\157\1\164\1\150\1\126\1\143\1\150\1\44\1\162\1\164\1\151\1\uffff\1\143\3\uffff\1\44\2\uffff\1\44\1\164\2\156\1\155\1\44\1\162\1\154\1\44\1\144\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\44\1\164\1\163\1\111\1\141\1\143\1\44\1\151\1\162\1\147\1\uffff\1\44\1\uffff\1\156\2\44\1\157\2\44\1\uffff\1\157\1\141\1\147\1\141\2\uffff\3\44\1\145\1\uffff\1\103\1\171\1\uffff\1\151\1\163\1\156\1\44\1\143\1\164\1\44\1\145\1\44\1\uffff\1\145\1\153\1\44\1\142\1\145\1\uffff\1\142\1\44\1\171\1\uffff\1\164\1\144\2\uffff\1\154\2\uffff\1\156\1\164\1\162\1\154\3\uffff\1\44\1\157\1\44\1\157\1\44\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\44\1\uffff\1\154\1\157\1\151\1\uffff\1\44\1\141\1\105\1\165\2\151\1\141\1\44\1\uffff\1\154\1\uffff\1\156\1\uffff\1\141\1\44\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\uffff\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\165\1\44\1\154\1\uffff\1\145\1\171\1\150\2\44\1\151\1\156\3\145\1\156\1\44\1\155\1\uffff\3\44\1\141\2\uffff\1\164\1\145\1\155\1\44\1\144\1\44\1\uffff\1\156\3\uffff\1\156\1\171\1\162\1\145\1\uffff\1\44\1\uffff\1\163\1\147\2\44\1\156\1\uffff\1\44\1\145\2\uffff\1\164\1\uffff\2\44\2\uffff";
+        "\1\0\1\141\2\uffff\1\141\1\163\2\143\2\141\1\146\1\141\1\162\1\145\1\141\1\145\1\141\1\145\1\141\1\154\1\52\1\145\5\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174\1\46\1\75\2\56\1\72\1\157\2\60\1\44\5\uffff\1\143\1\162\1\157\3\uffff\1\146\1\141\1\164\1\44\1\145\1\157\1\103\1\44\1\160\1\44\1\143\1\44\1\157\1\142\1\165\1\160\1\162\1\163\3\141\1\151\1\160\1\156\1\147\1\44\1\145\1\154\1\162\1\151\2\141\1\162\1\160\1\156\1\154\1\151\1\154\1\162\1\154\1\164\1\163\3\uffff\1\44\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\1\uffff\1\60\4\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\uffff\1\154\1\157\1\154\1\145\1\44\1\145\1\157\1\150\1\145\1\162\1\143\2\164\1\145\1\143\1\145\1\141\1\uffff\1\167\2\44\1\164\1\144\1\156\1\162\1\144\1\145\1\143\1\157\1\165\1\142\1\143\1\154\1\164\1\141\1\44\1\163\2\145\1\uffff\1\44\1\154\6\uffff\1\151\1\141\1\44\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\125\1\157\1\141\1\162\1\163\1\142\1\154\1\145\1\44\1\uffff\1\157\1\167\1\103\2\143\1\145\1\151\1\143\1\162\1\150\2\156\1\44\2\uffff\1\151\2\44\1\164\2\44\1\150\2\162\1\141\1\157\2\145\1\154\1\uffff\1\145\1\156\1\44\1\uffff\1\44\1\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\44\1\154\1\147\1\156\1\141\1\122\1\163\1\156\1\164\1\163\1\141\1\157\1\44\1\uffff\1\146\1\44\1\157\1\164\1\150\1\126\1\143\1\150\1\44\1\162\1\164\1\151\1\uffff\1\143\2\uffff\1\44\2\uffff\1\44\1\164\2\156\1\155\1\44\1\162\1\154\1\44\1\144\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\44\1\164\1\163\1\111\1\141\1\143\1\44\1\151\1\162\1\147\1\uffff\1\44\1\uffff\1\156\2\44\1\157\2\44\1\uffff\1\157\1\141\1\147\1\141\2\uffff\3\44\1\145\1\uffff\1\103\1\171\1\uffff\1\151\1\163\1\156\1\44\1\143\1\164\1\44\1\145\1\44\1\uffff\1\145\1\153\1\44\1\142\1\145\1\uffff\1\142\1\44\1\171\1\uffff\1\164\1\144\2\uffff\1\154\2\uffff\1\156\1\164\1\162\1\154\3\uffff\1\44\1\157\1\44\1\157\1\44\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\44\1\uffff\1\154\1\157\1\151\1\uffff\1\44\1\141\1\105\1\165\2\151\1\141\1\44\1\uffff\1\154\1\uffff\1\156\1\uffff\1\141\1\44\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\uffff\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\165\1\44\1\154\1\uffff\1\145\1\171\1\150\2\44\1\151\1\156\3\145\1\156\1\44\1\155\1\uffff\3\44\1\141\2\uffff\1\164\1\145\1\155\1\44\1\144\1\44\1\uffff\1\156\3\uffff\1\156\1\171\1\162\1\145\1\uffff\1\44\1\uffff\1\163\1\147\2\44\1\156\1\uffff\1\44\1\145\2\uffff\1\164\1\uffff\2\44\2\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\162\2\uffff\1\157\3\163\2\171\1\162\1\151\1\162\1\160\1\150\1\145\1\141\1\150\1\157\1\170\1\75\1\165\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\1\56\2\72\1\157\1\170\1\154\1\172\5\uffff\2\162\1\157\3\uffff\1\163\1\141\1\164\1\172\1\145\1\157\1\103\1\172\1\160\1\172\1\143\1\172\1\160\1\142\1\171\1\160\1\162\1\163\1\154\2\141\1\151\1\160\1\156\1\151\1\172\1\145\2\162\1\151\1\141\1\155\1\141\2\164\1\156\1\154\1\151\1\156\1\162\1\154\1\164\1\163\3\uffff\1\172\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\1\uffff\1\154\4\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\uffff\1\154\1\157\1\154\1\145\1\172\1\145\1\157\1\150\1\145\1\162\1\143\2\164\1\145\1\143\1\145\1\141\1\uffff\1\167\2\172\1\164\1\144\2\156\1\162\1\144\1\145\1\143\1\157\1\165\1\142\1\143\1\154\1\164\1\141\1\172\1\163\2\145\1\uffff\1\172\1\154\6\uffff\1\151\1\141\1\172\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\125\1\157\1\141\1\162\1\163\1\142\1\154\1\145\1\172\1\uffff\1\157\1\167\1\103\2\143\1\145\1\151\1\143\1\162\1\150\2\156\1\172\2\uffff\1\151\3\172\1\164\2\172\1\150\2\162\1\141\1\157\2\145\1\154\1\uffff\1\145\1\156\1\172\1\uffff\2\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\172\1\154\1\147\1\156\1\141\1\122\1\163\1\156\1\164\1\163\1\141\1\157\1\172\1\uffff\1\146\1\172\1\157\1\164\1\150\1\126\1\143\1\150\1\172\1\162\1\164\1\151\1\uffff\1\143\3\uffff\1\172\2\uffff\1\172\1\164\2\156\1\155\1\172\1\162\1\154\1\172\1\163\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\172\1\164\1\163\1\111\1\141\1\143\1\172\1\151\1\162\1\147\1\uffff\1\172\1\uffff\1\156\2\172\1\157\2\172\1\uffff\1\157\1\141\1\147\1\141\2\uffff\3\172\1\145\1\uffff\1\103\1\171\1\uffff\1\151\1\163\1\156\1\172\1\143\1\164\1\172\1\145\1\172\1\uffff\1\145\1\153\1\172\1\142\1\145\1\uffff\1\142\1\172\1\171\1\uffff\1\164\1\144\2\uffff\1\154\2\uffff\1\156\1\164\1\162\1\154\3\uffff\1\172\1\157\1\172\1\157\1\172\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\172\1\uffff\1\154\1\157\1\151\1\uffff\1\172\1\141\1\105\1\165\2\151\1\141\1\172\1\uffff\1\154\1\uffff\1\156\1\uffff\1\141\1\172\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\uffff\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\165\1\172\1\154\1\uffff\1\145\1\171\1\150\2\172\1\151\1\156\3\145\1\156\1\172\1\155\1\uffff\3\172\1\141\2\uffff\1\164\1\145\1\155\1\172\1\144\1\172\1\uffff\1\156\3\uffff\1\156\1\171\1\162\1\145\1\uffff\1\172\1\uffff\1\163\1\147\2\172\1\156\1\uffff\1\172\1\145\2\uffff\1\164\1\uffff\2\172\2\uffff";
+        "\1\uffff\1\162\2\uffff\1\157\3\163\2\171\1\162\1\151\1\162\1\145\1\150\1\145\1\141\1\150\1\157\1\170\1\75\1\165\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\1\56\2\72\1\157\1\170\1\154\1\172\5\uffff\2\162\1\157\3\uffff\1\163\1\141\1\164\1\172\1\145\1\157\1\103\1\172\1\160\1\172\1\143\1\172\1\160\1\142\1\171\1\160\1\162\1\163\1\154\2\141\1\151\1\160\1\156\1\151\1\172\1\145\2\162\1\151\2\141\2\164\1\156\1\154\1\151\1\156\1\162\1\154\1\164\1\163\3\uffff\1\172\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\6\uffff\1\162\1\uffff\1\154\4\uffff\1\153\1\164\1\163\2\143\1\164\1\141\1\154\1\141\1\uffff\1\162\1\156\1\154\1\164\1\uffff\1\157\1\uffff\1\145\1\uffff\1\154\1\157\1\154\1\145\1\172\1\145\1\157\1\150\1\145\1\162\1\143\2\164\1\145\1\143\1\145\1\141\1\uffff\1\167\2\172\1\164\1\144\1\156\1\162\1\144\1\145\1\143\1\157\1\165\1\142\1\143\1\154\1\164\1\141\1\172\1\163\2\145\1\uffff\1\172\1\154\6\uffff\1\151\1\141\1\172\1\160\1\145\1\162\1\150\1\165\1\157\1\111\1\164\1\125\1\157\1\141\1\162\1\163\1\142\1\154\1\145\1\172\1\uffff\1\157\1\167\1\103\2\143\1\145\1\151\1\143\1\162\1\150\2\156\1\172\2\uffff\1\151\2\172\1\164\2\172\1\150\2\162\1\141\1\157\2\145\1\154\1\uffff\1\145\1\156\1\172\1\uffff\2\172\1\147\1\164\1\uffff\1\145\1\163\1\151\1\172\1\154\1\147\1\156\1\141\1\122\1\163\1\156\1\164\1\163\1\141\1\157\1\172\1\uffff\1\146\1\172\1\157\1\164\1\150\1\126\1\143\1\150\1\172\1\162\1\164\1\151\1\uffff\1\143\2\uffff\1\172\2\uffff\1\172\1\164\2\156\1\155\1\172\1\162\1\154\1\172\1\163\2\uffff\1\157\1\145\1\141\1\143\1\163\1\142\1\uffff\1\164\1\172\1\164\1\163\1\111\1\141\1\143\1\172\1\151\1\162\1\147\1\uffff\1\172\1\uffff\1\156\2\172\1\157\2\172\1\uffff\1\157\1\141\1\147\1\141\2\uffff\3\172\1\145\1\uffff\1\103\1\171\1\uffff\1\151\1\163\1\156\1\172\1\143\1\164\1\172\1\145\1\172\1\uffff\1\145\1\153\1\172\1\142\1\145\1\uffff\1\142\1\172\1\171\1\uffff\1\164\1\144\2\uffff\1\154\2\uffff\1\156\1\164\1\162\1\154\3\uffff\1\172\1\157\1\172\1\157\1\172\1\164\1\uffff\1\153\1\151\1\uffff\1\144\1\uffff\1\162\1\172\1\uffff\1\154\1\157\1\151\1\uffff\1\172\1\141\1\105\1\165\2\151\1\141\1\172\1\uffff\1\154\1\uffff\1\156\1\uffff\1\141\1\172\1\166\1\102\1\143\1\uffff\1\145\1\146\1\154\1\uffff\1\151\1\154\1\155\1\172\1\157\1\155\1\uffff\1\165\1\172\1\154\1\uffff\1\145\1\171\1\150\2\172\1\151\1\156\3\145\1\156\1\172\1\155\1\uffff\3\172\1\141\2\uffff\1\164\1\145\1\155\1\172\1\144\1\172\1\uffff\1\156\3\uffff\1\156\1\171\1\162\1\145\1\uffff\1\172\1\uffff\1\163\1\147\2\172\1\156\1\uffff\1\172\1\145\2\uffff\1\164\1\uffff\2\172\2\uffff";
     static final String DFA21_acceptS =
-        "\2\uffff\1\2\1\3\22\uffff\1\53\1\54\1\55\1\56\1\57\1\uffff\1\61\1\62\1\63\20\uffff\1\165\2\166\1\171\1\172\3\uffff\1\165\1\2\1\3\53\uffff\1\66\1\113\1\51\3\uffff\1\53\1\54\1\55\1\56\1\57\1\uffff\1\106\1\60\1\61\1\62\1\63\1\64\1\120\1\111\1\65\1\103\1\121\1\112\1\67\1\167\1\170\1\114\1\70\1\115\1\107\1\71\1\73\1\72\1\74\1\125\1\75\1\157\1\uffff\1\116\1\uffff\1\122\1\110\1\124\1\156\1\123\1\131\1\uffff\1\162\1\uffff\1\163\1\164\1\166\1\171\11\uffff\1\136\4\uffff\1\42\1\uffff\1\126\1\uffff\1\117\21\uffff\1\36\26\uffff\1\52\2\uffff\1\100\1\76\1\101\1\77\1\104\1\105\24\uffff\1\152\15\uffff\1\137\1\140\17\uffff\1\134\3\uffff\1\143\4\uffff\1\20\20\uffff\1\145\14\uffff\1\21\1\uffff\1\25\1\26\1\34\1\uffff\1\37\1\133\12\uffff\1\127\1\146\6\uffff\1\43\13\uffff\1\24\1\uffff\1\150\6\uffff\1\142\4\uffff\1\27\1\155\4\uffff\1\135\2\uffff\1\144\11\uffff\1\33\5\uffff\1\46\3\uffff\1\147\2\uffff\1\23\1\41\1\uffff\1\47\1\130\4\uffff\1\30\1\151\1\35\6\uffff\1\1\2\uffff\1\6\1\uffff\1\132\2\uffff\1\10\3\uffff\1\12\10\uffff\1\40\1\uffff\1\153\1\uffff\1\141\5\uffff\1\7\3\uffff\1\32\6\uffff\1\161\3\uffff\1\17\15\uffff\1\50\4\uffff\1\22\1\102\6\uffff\1\31\1\uffff\1\160\1\4\1\5\4\uffff\1\16\1\uffff\1\14\5\uffff\1\154\2\uffff\1\11\1\13\1\uffff\1\44\2\uffff\1\45\1\15";
+        "\2\uffff\1\2\1\3\22\uffff\1\52\1\53\1\54\1\55\1\56\1\uffff\1\60\1\61\1\62\20\uffff\1\164\2\165\1\170\1\171\3\uffff\1\164\1\2\1\3\52\uffff\1\65\1\112\1\50\3\uffff\1\52\1\53\1\54\1\55\1\56\1\uffff\1\105\1\57\1\60\1\61\1\62\1\63\1\117\1\110\1\64\1\102\1\120\1\111\1\66\1\166\1\167\1\113\1\67\1\114\1\106\1\70\1\72\1\71\1\73\1\124\1\74\1\156\1\uffff\1\115\1\uffff\1\121\1\107\1\123\1\155\1\122\1\130\1\uffff\1\161\1\uffff\1\162\1\163\1\165\1\170\11\uffff\1\135\4\uffff\1\41\1\uffff\1\125\1\uffff\1\116\21\uffff\1\35\25\uffff\1\51\2\uffff\1\77\1\75\1\100\1\76\1\103\1\104\24\uffff\1\151\15\uffff\1\136\1\137\16\uffff\1\133\3\uffff\1\142\4\uffff\1\20\20\uffff\1\144\14\uffff\1\21\1\uffff\1\25\1\26\1\uffff\1\36\1\132\12\uffff\1\126\1\145\6\uffff\1\42\13\uffff\1\24\1\uffff\1\147\6\uffff\1\141\4\uffff\1\27\1\154\4\uffff\1\134\2\uffff\1\143\11\uffff\1\33\5\uffff\1\45\3\uffff\1\146\2\uffff\1\23\1\40\1\uffff\1\46\1\127\4\uffff\1\30\1\150\1\34\6\uffff\1\1\2\uffff\1\6\1\uffff\1\131\2\uffff\1\10\3\uffff\1\12\10\uffff\1\37\1\uffff\1\152\1\uffff\1\140\5\uffff\1\7\3\uffff\1\32\6\uffff\1\160\3\uffff\1\17\15\uffff\1\47\4\uffff\1\22\1\101\6\uffff\1\31\1\uffff\1\157\1\4\1\5\4\uffff\1\16\1\uffff\1\14\5\uffff\1\153\2\uffff\1\11\1\13\1\uffff\1\43\2\uffff\1\44\1\15";
     static final String DFA21_specialS =
-        "\1\0\u0203\uffff}>";
+        "\1\0\u01ff\uffff}>";
     static final String[] DFA21_transitionS = {
             "\11\63\2\62\2\63\1\62\22\63\1\62\1\47\1\60\1\34\1\57\1\42\1\46\1\61\1\30\1\32\1\24\1\37\1\31\1\40\1\50\1\41\1\54\11\55\1\52\1\26\1\43\1\33\1\44\1\51\1\27\32\57\1\35\1\63\1\36\1\56\1\57\1\63\1\7\1\15\1\16\1\4\1\23\1\22\1\14\1\53\1\6\1\57\1\20\2\57\1\25\1\12\1\1\1\57\1\17\1\11\1\10\1\5\1\13\1\21\3\57\1\2\1\45\1\3\uff82\63",
             "\1\64\3\uffff\1\65\14\uffff\1\66",
@@ -4245,100 +4203,126 @@
             "\1\123\13\uffff\1\122",
             "\1\125\3\uffff\1\126\3\uffff\1\124",
             "\1\127",
-            "\1\130\12\uffff\1\131",
-            "\1\133\6\uffff\1\132",
+            "\1\130",
+            "\1\132\6\uffff\1\131",
+            "\1\133",
             "\1\134",
-            "\1\135",
-            "\1\136\2\uffff\1\137",
-            "\1\142\7\uffff\1\140\5\uffff\1\141",
-            "\1\144\13\uffff\1\143",
-            "\1\146\22\uffff\1\145",
-            "\1\151\15\uffff\1\150\1\uffff\1\152",
+            "\1\135\2\uffff\1\136",
+            "\1\141\7\uffff\1\137\5\uffff\1\140",
+            "\1\143\13\uffff\1\142",
+            "\1\145\22\uffff\1\144",
+            "\1\150\15\uffff\1\147\1\uffff\1\151",
             "",
             "",
             "",
             "",
             "",
-            "\1\160\1\161",
+            "\1\157\1\160",
             "",
             "",
             "",
-            "\1\167\21\uffff\1\166",
-            "\1\173\17\uffff\1\171\1\172",
-            "\1\176\4\uffff\1\177\15\uffff\1\175",
-            "\1\u0081",
-            "\1\u0083",
-            "\1\u0085",
-            "\1\u0087",
-            "\1\u0089",
-            "\1\u008b",
-            "\1\u008d",
-            "\1\u0090\13\uffff\1\u008f",
-            "\1\u0092",
-            "\1\u0094",
-            "\12\u0096\10\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\13\uffff\1\u0095\6\uffff\1\u0096\2\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\13\uffff\1\u0095",
-            "\12\u0096\10\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\22\uffff\1\u0096\2\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098",
+            "\1\166\21\uffff\1\165",
+            "\1\172\17\uffff\1\170\1\171",
+            "\1\175\4\uffff\1\176\15\uffff\1\174",
+            "\1\u0080",
+            "\1\u0082",
+            "\1\u0084",
+            "\1\u0086",
+            "\1\u0088",
+            "\1\u008a",
+            "\1\u008c",
+            "\1\u008f\13\uffff\1\u008e",
+            "\1\u0091",
+            "\1\u0093",
+            "\12\u0095\10\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\13\uffff\1\u0094\6\uffff\1\u0095\2\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\13\uffff\1\u0094",
+            "\12\u0095\10\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\22\uffff\1\u0095\2\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097",
             "\1\67\34\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
             "",
             "",
             "",
             "",
-            "\1\u009b\16\uffff\1\u009c",
+            "\1\u009a\16\uffff\1\u009b",
+            "\1\u009c",
             "\1\u009d",
-            "\1\u009e",
             "",
             "",
             "",
-            "\1\u00a1\11\uffff\1\u00a0\2\uffff\1\u009f",
+            "\1\u00a0\11\uffff\1\u009f\2\uffff\1\u009e",
+            "\1\u00a1",
             "\1\u00a2",
-            "\1\u00a3",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u00a4",
             "\1\u00a5",
             "\1\u00a6",
-            "\1\u00a7",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\22\67\1\u00a8\7\67",
-            "\1\u00aa",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\22\67\1\u00a7\7\67",
+            "\1\u00a9",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u00ac",
+            "\1\u00ab",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u00ae\1\u00af",
-            "\1\u00b0",
-            "\1\u00b1\3\uffff\1\u00b2",
+            "\1\u00ad\1\u00ae",
+            "\1\u00af",
+            "\1\u00b0\3\uffff\1\u00b1",
+            "\1\u00b2",
             "\1\u00b3",
             "\1\u00b4",
-            "\1\u00b5",
-            "\1\u00b7\12\uffff\1\u00b6",
+            "\1\u00b6\12\uffff\1\u00b5",
+            "\1\u00b7",
             "\1\u00b8",
             "\1\u00b9",
             "\1\u00ba",
             "\1\u00bb",
-            "\1\u00bc",
-            "\1\u00be\1\uffff\1\u00bd",
+            "\1\u00bd\1\uffff\1\u00bc",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u00c0",
-            "\1\u00c2\5\uffff\1\u00c1",
+            "\1\u00bf",
+            "\1\u00c1\5\uffff\1\u00c0",
+            "\1\u00c2",
             "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
-            "\1\u00c6",
-            "\1\u00c7",
-            "\1\u00c8\1\u00c9\1\u00ca",
-            "\1\u00cb\3\uffff\1\u00cc",
+            "\1\u00c6\1\u00c7\1\u00c8",
+            "\1\u00c9\3\uffff\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cc",
             "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf",
-            "\1\u00d0\1\uffff\1\u00d1",
+            "\1\u00ce\1\uffff\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
             "\1\u00d2",
             "\1\u00d3",
-            "\1\u00d4",
-            "\1\u00d5",
             "",
             "",
             "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u00d5",
+            "\1\u00d6",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00d7",
-            "\1\u00d8",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "",
             "",
             "",
@@ -4346,47 +4330,22 @@
             "",
             "\1\u00d9",
             "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
             "\1\u00db",
             "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00dd",
             "",
+            "\12\u0095\10\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097\22\uffff\1\u0095\2\uffff\1\u0097\1\uffff\3\u0097\5\uffff\1\u0097",
             "",
             "",
             "",
             "",
-            "",
+            "\1\u00de",
             "\1\u00df",
-            "",
-            "\12\u0096\10\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098\22\uffff\1\u0096\2\uffff\1\u0098\1\uffff\3\u0098\5\uffff\1\u0098",
-            "",
-            "",
-            "",
-            "",
             "\1\u00e0",
             "\1\u00e1",
             "\1\u00e2",
@@ -4394,23 +4353,23 @@
             "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
+            "",
             "\1\u00e7",
             "\1\u00e8",
-            "",
             "\1\u00e9",
             "\1\u00ea",
+            "",
             "\1\u00eb",
+            "",
             "\1\u00ec",
             "",
             "\1\u00ed",
-            "",
             "\1\u00ee",
-            "",
             "\1\u00ef",
             "\1\u00f0",
-            "\1\u00f1",
-            "\1\u00f2",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u00f2",
+            "\1\u00f3",
             "\1\u00f4",
             "\1\u00f5",
             "\1\u00f6",
@@ -4421,12 +4380,12 @@
             "\1\u00fb",
             "\1\u00fc",
             "\1\u00fd",
-            "\1\u00fe",
-            "\1\u00ff",
             "",
-            "\1\u0100",
+            "\1\u00fe",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u0101",
+            "\1\u0102",
             "\1\u0103",
             "\1\u0104",
             "\1\u0105",
@@ -4439,25 +4398,25 @@
             "\1\u010c",
             "\1\u010d",
             "\1\u010e",
-            "\1\u010f",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0110",
             "\1\u0111",
+            "\1\u0112",
+            "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u0113",
             "\1\u0114",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u0115",
-            "",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u0117",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u0118",
+            "\1\u0116",
+            "\1\67\13\uffff\12\67\7\uffff\22\67\1\u0117\7\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0119",
-            "\1\67\13\uffff\12\67\7\uffff\22\67\1\u011a\7\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u011a",
+            "\1\u011b",
             "\1\u011c",
             "\1\u011d",
             "\1\u011e",
@@ -4471,11 +4430,11 @@
             "\1\u0126",
             "\1\u0127",
             "\1\u0128",
-            "\1\u0129",
-            "\1\u012a",
-            "\1\u012b",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
             "\1\u012d",
             "\1\u012e",
             "\1\u012f",
@@ -4485,41 +4444,41 @@
             "\1\u0133",
             "\1\u0134",
             "\1\u0135",
-            "\1\u0136",
-            "\1\u0137",
-            "\1\u0138",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
             "",
+            "\1\u0137",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u013a",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u013d",
             "\1\u013e",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u013f",
+            "\1\u0140",
             "\1\u0141",
             "\1\u0142",
             "\1\u0143",
             "\1\u0144",
+            "",
             "\1\u0145",
             "\1\u0146",
-            "\1\u0147",
-            "\1\u0148",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0149",
             "\1\u014a",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u014b",
             "",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u014c",
             "\1\u014d",
             "\1\u014e",
-            "\1\u014f",
-            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0150",
             "\1\u0151",
             "\1\u0152",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u0153",
             "\1\u0154",
             "\1\u0155",
             "\1\u0156",
@@ -4527,222 +4486,217 @@
             "\1\u0158",
             "\1\u0159",
             "\1\u015a",
-            "\1\u015b",
-            "\1\u015c",
-            "\1\u015d",
-            "\1\u015e",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
-            "\1\u0160",
+            "\1\u015c",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u015e",
+            "\1\u015f",
+            "\1\u0160",
+            "\1\u0161",
             "\1\u0162",
             "\1\u0163",
-            "\1\u0164",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0165",
             "\1\u0166",
             "\1\u0167",
+            "",
+            "\1\u0168",
+            "",
+            "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u0169",
-            "\1\u016a",
+            "",
+            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u016b",
-            "",
             "\1\u016c",
-            "",
-            "",
-            "",
+            "\1\u016d",
+            "\1\u016e",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "",
-            "",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u016f",
             "\1\u0170",
             "\1\u0171",
-            "\1\u0172",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u0174",
+            "\1\u0174\16\uffff\1\u0173",
+            "",
+            "",
             "\1\u0175",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u0178\16\uffff\1\u0177",
-            "",
-            "",
+            "\1\u0176",
+            "\1\u0177",
+            "\1\u0178",
             "\1\u0179",
             "\1\u017a",
+            "",
             "\1\u017b",
-            "\1\u017c",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u017d",
             "\1\u017e",
-            "",
             "\1\u017f",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u0180",
             "\1\u0181",
-            "\1\u0182",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0183",
             "\1\u0184",
             "\1\u0185",
+            "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
             "\1\u0187",
-            "\1\u0188",
-            "\1\u0189",
-            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\4\67\1\u0188\25\67",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "",
             "\1\u018b",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\4\67\1\u018c\25\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u018f",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
-            "\1\u0192",
-            "\1\u0193",
-            "\1\u0194",
+            "\1\u018e",
+            "\1\u018f",
+            "\1\u0190",
+            "\1\u0191",
+            "",
+            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0195",
             "",
+            "\1\u0196",
+            "\1\u0197",
             "",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u0198",
             "\1\u0199",
-            "",
             "\1\u019a",
-            "\1\u019b",
-            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u019c",
             "\1\u019d",
-            "\1\u019e",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u01a0",
-            "\1\u01a1",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u01a3",
+            "\1\u019f",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u01a4",
             "\1\u01a5",
+            "",
             "\1\u01a6",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01a8",
+            "",
             "\1\u01a9",
-            "",
             "\1\u01aa",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u01ac",
             "",
+            "",
+            "\1\u01ab",
+            "",
+            "",
+            "\1\u01ac",
             "\1\u01ad",
             "\1\u01ae",
-            "",
-            "",
             "\1\u01af",
             "",
             "",
-            "\1\u01b0",
+            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01b1",
-            "\1\u01b2",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01b3",
-            "",
-            "",
-            "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01b5",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
+            "\1\u01b6",
             "\1\u01b7",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
+            "\1\u01b8",
+            "",
             "\1\u01b9",
-            "",
-            "\1\u01ba",
-            "\1\u01bb",
-            "",
-            "\1\u01bc",
-            "",
-            "\1\u01bd",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
+            "\1\u01bb",
+            "\1\u01bc",
+            "\1\u01bd",
+            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01bf",
             "\1\u01c0",
             "\1\u01c1",
-            "",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u01c2",
             "\1\u01c3",
             "\1\u01c4",
-            "\1\u01c5",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
             "\1\u01c6",
+            "",
             "\1\u01c7",
+            "",
             "\1\u01c8",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "",
             "\1\u01ca",
-            "",
             "\1\u01cb",
-            "",
             "\1\u01cc",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
+            "\1\u01cd",
             "\1\u01ce",
             "\1\u01cf",
-            "\1\u01d0",
             "",
+            "\1\u01d0",
             "\1\u01d1",
             "\1\u01d2",
             "\1\u01d3",
-            "",
             "\1\u01d4",
             "\1\u01d5",
+            "",
             "\1\u01d6",
-            "\1\u01d7",
-            "\1\u01d8",
-            "\1\u01d9",
-            "",
-            "\1\u01da",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u01dc",
+            "\1\u01d8",
             "",
-            "\1\u01dd",
+            "\1\u01d9",
+            "\1\u01da",
+            "\1\u01db",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01de",
             "\1\u01df",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u01e0",
+            "\1\u01e1",
             "\1\u01e2",
             "\1\u01e3",
-            "\1\u01e4",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01e5",
-            "\1\u01e6",
-            "\1\u01e7",
+            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01e9",
             "",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u01ed",
             "",
-            "",
+            "\1\u01ea",
+            "\1\u01eb",
+            "\1\u01ec",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01ee",
-            "\1\u01ef",
-            "\1\u01f0",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u01f2",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
+            "\1\u01f0",
+            "",
+            "",
+            "",
+            "\1\u01f1",
+            "\1\u01f2",
+            "\1\u01f3",
             "\1\u01f4",
             "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
-            "",
-            "\1\u01f5",
             "\1\u01f6",
             "\1\u01f7",
-            "\1\u01f8",
-            "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "",
+            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u01fa",
-            "\1\u01fb",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u01fe",
             "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u0200",
+            "\1\u01fc",
             "",
             "",
-            "\1\u0201",
+            "\1\u01fd",
             "",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\67\13\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
@@ -4780,7 +4734,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 | 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 | 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;
@@ -4903,4 +4857,4 @@
     }
  
 
-}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java
index 0de137d..10fe850 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/parser/antlr/internal/InternalPerspectiveDslParser.java
@@ -38,7 +38,7 @@
 @SuppressWarnings("all")
 public class InternalPerspectiveDslParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'perspective'", "'describedBy'", "'process'", "'usertask'", "'iconURI'", "'accessibility'", "'toolbar'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'part'", "'view'", "'isClosable'", "'select'", "'table'", "'grid'", "'bean'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'horizontal'", "'vertical'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'perspective'", "'describedBy'", "'process'", "'usertask'", "'iconURI'", "'accessibility'", "'toolbar'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'part'", "'view'", "'isClosable'", "'select'", "'table'", "'grid'", "'bean'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'horizontal'", "'vertical'"
     };
     public static final int RULE_HEX=7;
     public static final int T__50=50;
@@ -62,7 +62,6 @@
     public static final int T__69=69;
     public static final int T__62=62;
     public static final int T__63=63;
-    public static final int T__125=125;
     public static final int T__64=64;
     public static final int T__65=65;
     public static final int T__37=37;
@@ -267,7 +266,7 @@
             int alt1=2;
             int LA1_0 = input.LA(1);
 
-            if ( (LA1_0==50) ) {
+            if ( (LA1_0==49) ) {
                 alt1=1;
             }
             switch (alt1) {
@@ -3068,7 +3067,7 @@
 
 
     // $ANTLR start "rulePerspectiveView"
-    // InternalPerspectiveDsl.g:1139:1: rulePerspectiveView returns [EObject current=null] : (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveBPMN_8= rulePerspectiveBPMN | this_PerspectiveGrid_9= rulePerspectiveGrid | this_PerspectiveWelcome_10= rulePerspectiveWelcome | this_PerspectiveSearch_11= rulePerspectiveSearch | this_PerspectiveDataInterchange_12= rulePerspectiveDataInterchange | this_PerspectiveKanban_13= rulePerspectiveKanban ) ;
+    // InternalPerspectiveDsl.g:1139:1: rulePerspectiveView returns [EObject current=null] : (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveGrid_8= rulePerspectiveGrid | this_PerspectiveWelcome_9= rulePerspectiveWelcome | this_PerspectiveSearch_10= rulePerspectiveSearch | this_PerspectiveDataInterchange_11= rulePerspectiveDataInterchange | this_PerspectiveKanban_12= rulePerspectiveKanban ) ;
     public final EObject rulePerspectiveView() throws RecognitionException {
         EObject current = null;
 
@@ -3088,28 +3087,26 @@
 
         EObject this_PerspectiveDialog_7 = null;
 
-        EObject this_PerspectiveBPMN_8 = null;
+        EObject this_PerspectiveGrid_8 = null;
 
-        EObject this_PerspectiveGrid_9 = null;
+        EObject this_PerspectiveWelcome_9 = null;
 
-        EObject this_PerspectiveWelcome_10 = null;
+        EObject this_PerspectiveSearch_10 = null;
 
-        EObject this_PerspectiveSearch_11 = null;
+        EObject this_PerspectiveDataInterchange_11 = null;
 
-        EObject this_PerspectiveDataInterchange_12 = null;
-
-        EObject this_PerspectiveKanban_13 = null;
+        EObject this_PerspectiveKanban_12 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1145:2: ( (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveBPMN_8= rulePerspectiveBPMN | this_PerspectiveGrid_9= rulePerspectiveGrid | this_PerspectiveWelcome_10= rulePerspectiveWelcome | this_PerspectiveSearch_11= rulePerspectiveSearch | this_PerspectiveDataInterchange_12= rulePerspectiveDataInterchange | this_PerspectiveKanban_13= rulePerspectiveKanban ) )
-            // InternalPerspectiveDsl.g:1146:2: (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveBPMN_8= rulePerspectiveBPMN | this_PerspectiveGrid_9= rulePerspectiveGrid | this_PerspectiveWelcome_10= rulePerspectiveWelcome | this_PerspectiveSearch_11= rulePerspectiveSearch | this_PerspectiveDataInterchange_12= rulePerspectiveDataInterchange | this_PerspectiveKanban_13= rulePerspectiveKanban )
+            // InternalPerspectiveDsl.g:1145:2: ( (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveGrid_8= rulePerspectiveGrid | this_PerspectiveWelcome_9= rulePerspectiveWelcome | this_PerspectiveSearch_10= rulePerspectiveSearch | this_PerspectiveDataInterchange_11= rulePerspectiveDataInterchange | this_PerspectiveKanban_12= rulePerspectiveKanban ) )
+            // InternalPerspectiveDsl.g:1146:2: (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveGrid_8= rulePerspectiveGrid | this_PerspectiveWelcome_9= rulePerspectiveWelcome | this_PerspectiveSearch_10= rulePerspectiveSearch | this_PerspectiveDataInterchange_11= rulePerspectiveDataInterchange | this_PerspectiveKanban_12= rulePerspectiveKanban )
             {
-            // InternalPerspectiveDsl.g:1146:2: (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveBPMN_8= rulePerspectiveBPMN | this_PerspectiveGrid_9= rulePerspectiveGrid | this_PerspectiveWelcome_10= rulePerspectiveWelcome | this_PerspectiveSearch_11= rulePerspectiveSearch | this_PerspectiveDataInterchange_12= rulePerspectiveDataInterchange | this_PerspectiveKanban_13= rulePerspectiveKanban )
-            int alt15=14;
+            // InternalPerspectiveDsl.g:1146:2: (this_PerspectiveSelection_0= rulePerspectiveSelection | this_PerspectiveTable_1= rulePerspectiveTable | this_PerspectiveChart_2= rulePerspectiveChart | this_PerspectiveBean_3= rulePerspectiveBean | this_PerspectiveReport_4= rulePerspectiveReport | this_PerspectiveOrganization_5= rulePerspectiveOrganization | this_PerspectiveTopology_6= rulePerspectiveTopology | this_PerspectiveDialog_7= rulePerspectiveDialog | this_PerspectiveGrid_8= rulePerspectiveGrid | this_PerspectiveWelcome_9= rulePerspectiveWelcome | this_PerspectiveSearch_10= rulePerspectiveSearch | this_PerspectiveDataInterchange_11= rulePerspectiveDataInterchange | this_PerspectiveKanban_12= rulePerspectiveKanban )
+            int alt15=13;
             switch ( input.LA(1) ) {
             case 31:
                 {
@@ -3151,12 +3148,12 @@
                 alt15=8;
                 }
                 break;
-            case 40:
+            case 33:
                 {
                 alt15=9;
                 }
                 break;
-            case 33:
+            case 43:
                 {
                 alt15=10;
                 }
@@ -3166,21 +3163,16 @@
                 alt15=11;
                 }
                 break;
-            case 45:
+            case 48:
                 {
                 alt15=12;
                 }
                 break;
-            case 49:
+            case 40:
                 {
                 alt15=13;
                 }
                 break;
-            case 41:
-                {
-                alt15=14;
-                }
-                break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
@@ -3367,21 +3359,21 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:1219:3: this_PerspectiveBPMN_8= rulePerspectiveBPMN
+                    // InternalPerspectiveDsl.g:1219:3: this_PerspectiveGrid_8= rulePerspectiveGrid
                     {
                     if ( state.backtracking==0 ) {
 
-                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveBPMNParserRuleCall_8());
+                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_8());
                       		
                     }
                     pushFollow(FOLLOW_2);
-                    this_PerspectiveBPMN_8=rulePerspectiveBPMN();
+                    this_PerspectiveGrid_8=rulePerspectiveGrid();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      			current = this_PerspectiveBPMN_8;
+                      			current = this_PerspectiveGrid_8;
                       			afterParserOrEnumRuleCall();
                       		
                     }
@@ -3389,21 +3381,21 @@
                     }
                     break;
                 case 10 :
-                    // InternalPerspectiveDsl.g:1228:3: this_PerspectiveGrid_9= rulePerspectiveGrid
+                    // InternalPerspectiveDsl.g:1228:3: this_PerspectiveWelcome_9= rulePerspectiveWelcome
                     {
                     if ( state.backtracking==0 ) {
 
-                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveGridParserRuleCall_9());
+                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_9());
                       		
                     }
                     pushFollow(FOLLOW_2);
-                    this_PerspectiveGrid_9=rulePerspectiveGrid();
+                    this_PerspectiveWelcome_9=rulePerspectiveWelcome();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      			current = this_PerspectiveGrid_9;
+                      			current = this_PerspectiveWelcome_9;
                       			afterParserOrEnumRuleCall();
                       		
                     }
@@ -3411,21 +3403,21 @@
                     }
                     break;
                 case 11 :
-                    // InternalPerspectiveDsl.g:1237:3: this_PerspectiveWelcome_10= rulePerspectiveWelcome
+                    // InternalPerspectiveDsl.g:1237:3: this_PerspectiveSearch_10= rulePerspectiveSearch
                     {
                     if ( state.backtracking==0 ) {
 
-                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveWelcomeParserRuleCall_10());
+                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_10());
                       		
                     }
                     pushFollow(FOLLOW_2);
-                    this_PerspectiveWelcome_10=rulePerspectiveWelcome();
+                    this_PerspectiveSearch_10=rulePerspectiveSearch();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      			current = this_PerspectiveWelcome_10;
+                      			current = this_PerspectiveSearch_10;
                       			afterParserOrEnumRuleCall();
                       		
                     }
@@ -3433,21 +3425,21 @@
                     }
                     break;
                 case 12 :
-                    // InternalPerspectiveDsl.g:1246:3: this_PerspectiveSearch_11= rulePerspectiveSearch
+                    // InternalPerspectiveDsl.g:1246:3: this_PerspectiveDataInterchange_11= rulePerspectiveDataInterchange
                     {
                     if ( state.backtracking==0 ) {
 
-                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveSearchParserRuleCall_11());
+                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_11());
                       		
                     }
                     pushFollow(FOLLOW_2);
-                    this_PerspectiveSearch_11=rulePerspectiveSearch();
+                    this_PerspectiveDataInterchange_11=rulePerspectiveDataInterchange();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      			current = this_PerspectiveSearch_11;
+                      			current = this_PerspectiveDataInterchange_11;
                       			afterParserOrEnumRuleCall();
                       		
                     }
@@ -3455,43 +3447,21 @@
                     }
                     break;
                 case 13 :
-                    // InternalPerspectiveDsl.g:1255:3: this_PerspectiveDataInterchange_12= rulePerspectiveDataInterchange
+                    // InternalPerspectiveDsl.g:1255:3: this_PerspectiveKanban_12= rulePerspectiveKanban
                     {
                     if ( state.backtracking==0 ) {
 
-                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveDataInterchangeParserRuleCall_12());
+                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_12());
                       		
                     }
                     pushFollow(FOLLOW_2);
-                    this_PerspectiveDataInterchange_12=rulePerspectiveDataInterchange();
+                    this_PerspectiveKanban_12=rulePerspectiveKanban();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      			current = this_PerspectiveDataInterchange_12;
-                      			afterParserOrEnumRuleCall();
-                      		
-                    }
-
-                    }
-                    break;
-                case 14 :
-                    // InternalPerspectiveDsl.g:1264:3: this_PerspectiveKanban_13= rulePerspectiveKanban
-                    {
-                    if ( state.backtracking==0 ) {
-
-                      			newCompositeNode(grammarAccess.getPerspectiveViewAccess().getPerspectiveKanbanParserRuleCall_13());
-                      		
-                    }
-                    pushFollow(FOLLOW_2);
-                    this_PerspectiveKanban_13=rulePerspectiveKanban();
-
-                    state._fsp--;
-                    if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current = this_PerspectiveKanban_13;
+                      			current = this_PerspectiveKanban_12;
                       			afterParserOrEnumRuleCall();
                       		
                     }
@@ -3523,7 +3493,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveSelection"
-    // InternalPerspectiveDsl.g:1276:1: entryRulePerspectiveSelection returns [EObject current=null] : iv_rulePerspectiveSelection= rulePerspectiveSelection EOF ;
+    // InternalPerspectiveDsl.g:1267:1: entryRulePerspectiveSelection returns [EObject current=null] : iv_rulePerspectiveSelection= rulePerspectiveSelection EOF ;
     public final EObject entryRulePerspectiveSelection() throws RecognitionException {
         EObject current = null;
 
@@ -3531,8 +3501,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1276:61: (iv_rulePerspectiveSelection= rulePerspectiveSelection EOF )
-            // InternalPerspectiveDsl.g:1277:2: iv_rulePerspectiveSelection= rulePerspectiveSelection EOF
+            // InternalPerspectiveDsl.g:1267:61: (iv_rulePerspectiveSelection= rulePerspectiveSelection EOF )
+            // InternalPerspectiveDsl.g:1268:2: iv_rulePerspectiveSelection= rulePerspectiveSelection EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveSelectionRule()); 
@@ -3563,7 +3533,7 @@
 
 
     // $ANTLR start "rulePerspectiveSelection"
-    // InternalPerspectiveDsl.g:1283:1: rulePerspectiveSelection returns [EObject current=null] : ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1274:1: rulePerspectiveSelection returns [EObject current=null] : ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveSelection() throws RecognitionException {
         EObject current = null;
 
@@ -3574,14 +3544,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1289:2: ( ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1290:2: ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1280:2: ( ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1281:2: ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1290:2: ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1291:3: () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1281:2: ( () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1282:3: () otherlv_1= 'select' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1291:3: ()
-            // InternalPerspectiveDsl.g:1292:4: 
+            // InternalPerspectiveDsl.g:1282:3: ()
+            // InternalPerspectiveDsl.g:1283:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3599,11 +3569,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveSelectionAccess().getSelectKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1302:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1303:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1293:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1294:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1303:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1304:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1294:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1295:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -3649,7 +3619,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveTable"
-    // InternalPerspectiveDsl.g:1319:1: entryRulePerspectiveTable returns [EObject current=null] : iv_rulePerspectiveTable= rulePerspectiveTable EOF ;
+    // InternalPerspectiveDsl.g:1310:1: entryRulePerspectiveTable returns [EObject current=null] : iv_rulePerspectiveTable= rulePerspectiveTable EOF ;
     public final EObject entryRulePerspectiveTable() throws RecognitionException {
         EObject current = null;
 
@@ -3657,8 +3627,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1319:57: (iv_rulePerspectiveTable= rulePerspectiveTable EOF )
-            // InternalPerspectiveDsl.g:1320:2: iv_rulePerspectiveTable= rulePerspectiveTable EOF
+            // InternalPerspectiveDsl.g:1310:57: (iv_rulePerspectiveTable= rulePerspectiveTable EOF )
+            // InternalPerspectiveDsl.g:1311:2: iv_rulePerspectiveTable= rulePerspectiveTable EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveTableRule()); 
@@ -3689,7 +3659,7 @@
 
 
     // $ANTLR start "rulePerspectiveTable"
-    // InternalPerspectiveDsl.g:1326:1: rulePerspectiveTable returns [EObject current=null] : ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1317:1: rulePerspectiveTable returns [EObject current=null] : ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveTable() throws RecognitionException {
         EObject current = null;
 
@@ -3700,14 +3670,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1332:2: ( ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1333:2: ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1323:2: ( ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1324:2: ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1333:2: ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1334:3: () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1324:2: ( () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1325:3: () otherlv_1= 'table' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1334:3: ()
-            // InternalPerspectiveDsl.g:1335:4: 
+            // InternalPerspectiveDsl.g:1325:3: ()
+            // InternalPerspectiveDsl.g:1326:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3725,11 +3695,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveTableAccess().getTableKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1345:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1346:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1336:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1337:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1346:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1347:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1337:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1338:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -3775,7 +3745,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveGrid"
-    // InternalPerspectiveDsl.g:1362:1: entryRulePerspectiveGrid returns [EObject current=null] : iv_rulePerspectiveGrid= rulePerspectiveGrid EOF ;
+    // InternalPerspectiveDsl.g:1353:1: entryRulePerspectiveGrid returns [EObject current=null] : iv_rulePerspectiveGrid= rulePerspectiveGrid EOF ;
     public final EObject entryRulePerspectiveGrid() throws RecognitionException {
         EObject current = null;
 
@@ -3783,8 +3753,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1362:56: (iv_rulePerspectiveGrid= rulePerspectiveGrid EOF )
-            // InternalPerspectiveDsl.g:1363:2: iv_rulePerspectiveGrid= rulePerspectiveGrid EOF
+            // InternalPerspectiveDsl.g:1353:56: (iv_rulePerspectiveGrid= rulePerspectiveGrid EOF )
+            // InternalPerspectiveDsl.g:1354:2: iv_rulePerspectiveGrid= rulePerspectiveGrid EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveGridRule()); 
@@ -3815,7 +3785,7 @@
 
 
     // $ANTLR start "rulePerspectiveGrid"
-    // InternalPerspectiveDsl.g:1369:1: rulePerspectiveGrid returns [EObject current=null] : ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1360:1: rulePerspectiveGrid returns [EObject current=null] : ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveGrid() throws RecognitionException {
         EObject current = null;
 
@@ -3826,14 +3796,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1375:2: ( ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1376:2: ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1366:2: ( ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1367:2: ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1376:2: ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1377:3: () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1367:2: ( () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1368:3: () otherlv_1= 'grid' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1377:3: ()
-            // InternalPerspectiveDsl.g:1378:4: 
+            // InternalPerspectiveDsl.g:1368:3: ()
+            // InternalPerspectiveDsl.g:1369:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3851,11 +3821,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveGridAccess().getGridKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1388:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1389:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1379:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1380:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1389:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1390:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1380:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1381:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -3901,7 +3871,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveBean"
-    // InternalPerspectiveDsl.g:1405:1: entryRulePerspectiveBean returns [EObject current=null] : iv_rulePerspectiveBean= rulePerspectiveBean EOF ;
+    // InternalPerspectiveDsl.g:1396:1: entryRulePerspectiveBean returns [EObject current=null] : iv_rulePerspectiveBean= rulePerspectiveBean EOF ;
     public final EObject entryRulePerspectiveBean() throws RecognitionException {
         EObject current = null;
 
@@ -3909,8 +3879,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1405:56: (iv_rulePerspectiveBean= rulePerspectiveBean EOF )
-            // InternalPerspectiveDsl.g:1406:2: iv_rulePerspectiveBean= rulePerspectiveBean EOF
+            // InternalPerspectiveDsl.g:1396:56: (iv_rulePerspectiveBean= rulePerspectiveBean EOF )
+            // InternalPerspectiveDsl.g:1397:2: iv_rulePerspectiveBean= rulePerspectiveBean EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveBeanRule()); 
@@ -3941,7 +3911,7 @@
 
 
     // $ANTLR start "rulePerspectiveBean"
-    // InternalPerspectiveDsl.g:1412:1: rulePerspectiveBean returns [EObject current=null] : ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1403:1: rulePerspectiveBean returns [EObject current=null] : ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveBean() throws RecognitionException {
         EObject current = null;
 
@@ -3952,14 +3922,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1418:2: ( ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1419:2: ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1409:2: ( ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1410:2: ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1419:2: ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1420:3: () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1410:2: ( () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1411:3: () otherlv_1= 'bean' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1420:3: ()
-            // InternalPerspectiveDsl.g:1421:4: 
+            // InternalPerspectiveDsl.g:1411:3: ()
+            // InternalPerspectiveDsl.g:1412:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3977,11 +3947,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveBeanAccess().getBeanKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1431:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1432:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1422:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1423:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1432:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1433:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1423:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1424:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4027,7 +3997,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveChart"
-    // InternalPerspectiveDsl.g:1448:1: entryRulePerspectiveChart returns [EObject current=null] : iv_rulePerspectiveChart= rulePerspectiveChart EOF ;
+    // InternalPerspectiveDsl.g:1439:1: entryRulePerspectiveChart returns [EObject current=null] : iv_rulePerspectiveChart= rulePerspectiveChart EOF ;
     public final EObject entryRulePerspectiveChart() throws RecognitionException {
         EObject current = null;
 
@@ -4035,8 +4005,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1448:57: (iv_rulePerspectiveChart= rulePerspectiveChart EOF )
-            // InternalPerspectiveDsl.g:1449:2: iv_rulePerspectiveChart= rulePerspectiveChart EOF
+            // InternalPerspectiveDsl.g:1439:57: (iv_rulePerspectiveChart= rulePerspectiveChart EOF )
+            // InternalPerspectiveDsl.g:1440:2: iv_rulePerspectiveChart= rulePerspectiveChart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveChartRule()); 
@@ -4067,7 +4037,7 @@
 
 
     // $ANTLR start "rulePerspectiveChart"
-    // InternalPerspectiveDsl.g:1455:1: rulePerspectiveChart returns [EObject current=null] : ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1446:1: rulePerspectiveChart returns [EObject current=null] : ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveChart() throws RecognitionException {
         EObject current = null;
 
@@ -4078,14 +4048,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1461:2: ( ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1462:2: ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1452:2: ( ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1453:2: ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1462:2: ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1463:3: () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1453:2: ( () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1454:3: () otherlv_1= 'chart' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1463:3: ()
-            // InternalPerspectiveDsl.g:1464:4: 
+            // InternalPerspectiveDsl.g:1454:3: ()
+            // InternalPerspectiveDsl.g:1455:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -4103,11 +4073,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveChartAccess().getChartKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1474:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1475:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1465:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1466:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1475:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1476:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1466:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1467:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4153,7 +4123,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveReport"
-    // InternalPerspectiveDsl.g:1491:1: entryRulePerspectiveReport returns [EObject current=null] : iv_rulePerspectiveReport= rulePerspectiveReport EOF ;
+    // InternalPerspectiveDsl.g:1482:1: entryRulePerspectiveReport returns [EObject current=null] : iv_rulePerspectiveReport= rulePerspectiveReport EOF ;
     public final EObject entryRulePerspectiveReport() throws RecognitionException {
         EObject current = null;
 
@@ -4161,8 +4131,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1491:58: (iv_rulePerspectiveReport= rulePerspectiveReport EOF )
-            // InternalPerspectiveDsl.g:1492:2: iv_rulePerspectiveReport= rulePerspectiveReport EOF
+            // InternalPerspectiveDsl.g:1482:58: (iv_rulePerspectiveReport= rulePerspectiveReport EOF )
+            // InternalPerspectiveDsl.g:1483:2: iv_rulePerspectiveReport= rulePerspectiveReport EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveReportRule()); 
@@ -4193,7 +4163,7 @@
 
 
     // $ANTLR start "rulePerspectiveReport"
-    // InternalPerspectiveDsl.g:1498:1: rulePerspectiveReport returns [EObject current=null] : ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1489:1: rulePerspectiveReport returns [EObject current=null] : ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveReport() throws RecognitionException {
         EObject current = null;
 
@@ -4204,14 +4174,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1504:2: ( ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1505:2: ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1495:2: ( ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1496:2: ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1505:2: ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1506:3: () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1496:2: ( () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1497:3: () otherlv_1= 'report' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1506:3: ()
-            // InternalPerspectiveDsl.g:1507:4: 
+            // InternalPerspectiveDsl.g:1497:3: ()
+            // InternalPerspectiveDsl.g:1498:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -4229,11 +4199,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveReportAccess().getReportKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1517:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1518:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1508:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1509:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1518:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1519:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1509:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1510:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4279,7 +4249,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveOrganization"
-    // InternalPerspectiveDsl.g:1534:1: entryRulePerspectiveOrganization returns [EObject current=null] : iv_rulePerspectiveOrganization= rulePerspectiveOrganization EOF ;
+    // InternalPerspectiveDsl.g:1525:1: entryRulePerspectiveOrganization returns [EObject current=null] : iv_rulePerspectiveOrganization= rulePerspectiveOrganization EOF ;
     public final EObject entryRulePerspectiveOrganization() throws RecognitionException {
         EObject current = null;
 
@@ -4287,8 +4257,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1534:64: (iv_rulePerspectiveOrganization= rulePerspectiveOrganization EOF )
-            // InternalPerspectiveDsl.g:1535:2: iv_rulePerspectiveOrganization= rulePerspectiveOrganization EOF
+            // InternalPerspectiveDsl.g:1525:64: (iv_rulePerspectiveOrganization= rulePerspectiveOrganization EOF )
+            // InternalPerspectiveDsl.g:1526:2: iv_rulePerspectiveOrganization= rulePerspectiveOrganization EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveOrganizationRule()); 
@@ -4319,7 +4289,7 @@
 
 
     // $ANTLR start "rulePerspectiveOrganization"
-    // InternalPerspectiveDsl.g:1541:1: rulePerspectiveOrganization returns [EObject current=null] : ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1532:1: rulePerspectiveOrganization returns [EObject current=null] : ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveOrganization() throws RecognitionException {
         EObject current = null;
 
@@ -4330,14 +4300,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1547:2: ( ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1548:2: ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1538:2: ( ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1539:2: ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1548:2: ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1549:3: () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1539:2: ( () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1540:3: () otherlv_1= 'organigram' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1549:3: ()
-            // InternalPerspectiveDsl.g:1550:4: 
+            // InternalPerspectiveDsl.g:1540:3: ()
+            // InternalPerspectiveDsl.g:1541:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -4355,11 +4325,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveOrganizationAccess().getOrganigramKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1560:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1561:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1551:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1552:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1561:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1562:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1552:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1553:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4405,7 +4375,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveTopology"
-    // InternalPerspectiveDsl.g:1577:1: entryRulePerspectiveTopology returns [EObject current=null] : iv_rulePerspectiveTopology= rulePerspectiveTopology EOF ;
+    // InternalPerspectiveDsl.g:1568:1: entryRulePerspectiveTopology returns [EObject current=null] : iv_rulePerspectiveTopology= rulePerspectiveTopology EOF ;
     public final EObject entryRulePerspectiveTopology() throws RecognitionException {
         EObject current = null;
 
@@ -4413,8 +4383,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1577:60: (iv_rulePerspectiveTopology= rulePerspectiveTopology EOF )
-            // InternalPerspectiveDsl.g:1578:2: iv_rulePerspectiveTopology= rulePerspectiveTopology EOF
+            // InternalPerspectiveDsl.g:1568:60: (iv_rulePerspectiveTopology= rulePerspectiveTopology EOF )
+            // InternalPerspectiveDsl.g:1569:2: iv_rulePerspectiveTopology= rulePerspectiveTopology EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveTopologyRule()); 
@@ -4445,7 +4415,7 @@
 
 
     // $ANTLR start "rulePerspectiveTopology"
-    // InternalPerspectiveDsl.g:1584:1: rulePerspectiveTopology returns [EObject current=null] : ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1575:1: rulePerspectiveTopology returns [EObject current=null] : ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveTopology() throws RecognitionException {
         EObject current = null;
 
@@ -4456,14 +4426,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1590:2: ( ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1591:2: ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1581:2: ( ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1582:2: ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1591:2: ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1592:3: () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1582:2: ( () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1583:3: () otherlv_1= 'topology' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1592:3: ()
-            // InternalPerspectiveDsl.g:1593:4: 
+            // InternalPerspectiveDsl.g:1583:3: ()
+            // InternalPerspectiveDsl.g:1584:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -4481,11 +4451,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveTopologyAccess().getTopologyKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1603:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1604:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1594:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1595:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1604:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1605:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1595:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1596:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4531,7 +4501,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveDialog"
-    // InternalPerspectiveDsl.g:1620:1: entryRulePerspectiveDialog returns [EObject current=null] : iv_rulePerspectiveDialog= rulePerspectiveDialog EOF ;
+    // InternalPerspectiveDsl.g:1611:1: entryRulePerspectiveDialog returns [EObject current=null] : iv_rulePerspectiveDialog= rulePerspectiveDialog EOF ;
     public final EObject entryRulePerspectiveDialog() throws RecognitionException {
         EObject current = null;
 
@@ -4539,8 +4509,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1620:58: (iv_rulePerspectiveDialog= rulePerspectiveDialog EOF )
-            // InternalPerspectiveDsl.g:1621:2: iv_rulePerspectiveDialog= rulePerspectiveDialog EOF
+            // InternalPerspectiveDsl.g:1611:58: (iv_rulePerspectiveDialog= rulePerspectiveDialog EOF )
+            // InternalPerspectiveDsl.g:1612:2: iv_rulePerspectiveDialog= rulePerspectiveDialog EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveDialogRule()); 
@@ -4571,7 +4541,7 @@
 
 
     // $ANTLR start "rulePerspectiveDialog"
-    // InternalPerspectiveDsl.g:1627:1: rulePerspectiveDialog returns [EObject current=null] : ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1618:1: rulePerspectiveDialog returns [EObject current=null] : ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveDialog() throws RecognitionException {
         EObject current = null;
 
@@ -4582,14 +4552,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1633:2: ( ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1634:2: ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1624:2: ( ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1625:2: ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1634:2: ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1635:3: () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1625:2: ( () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1626:3: () otherlv_1= 'dialog' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1635:3: ()
-            // InternalPerspectiveDsl.g:1636:4: 
+            // InternalPerspectiveDsl.g:1626:3: ()
+            // InternalPerspectiveDsl.g:1627:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -4607,11 +4577,11 @@
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveDialogAccess().getDialogKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1646:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1647:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1637:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1638:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1647:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1648:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1638:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1639:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4656,108 +4626,8 @@
     // $ANTLR end "rulePerspectiveDialog"
 
 
-    // $ANTLR start "entryRulePerspectiveBPMN"
-    // InternalPerspectiveDsl.g:1663:1: entryRulePerspectiveBPMN returns [EObject current=null] : iv_rulePerspectiveBPMN= rulePerspectiveBPMN EOF ;
-    public final EObject entryRulePerspectiveBPMN() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_rulePerspectiveBPMN = null;
-
-
-        try {
-            // InternalPerspectiveDsl.g:1663:56: (iv_rulePerspectiveBPMN= rulePerspectiveBPMN EOF )
-            // InternalPerspectiveDsl.g:1664:2: iv_rulePerspectiveBPMN= rulePerspectiveBPMN EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getPerspectiveBPMNRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_rulePerspectiveBPMN=rulePerspectiveBPMN();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_rulePerspectiveBPMN; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRulePerspectiveBPMN"
-
-
-    // $ANTLR start "rulePerspectiveBPMN"
-    // InternalPerspectiveDsl.g:1670:1: rulePerspectiveBPMN returns [EObject current=null] : ( () otherlv_1= 'bpmn' ) ;
-    public final EObject rulePerspectiveBPMN() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_1=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalPerspectiveDsl.g:1676:2: ( ( () otherlv_1= 'bpmn' ) )
-            // InternalPerspectiveDsl.g:1677:2: ( () otherlv_1= 'bpmn' )
-            {
-            // InternalPerspectiveDsl.g:1677:2: ( () otherlv_1= 'bpmn' )
-            // InternalPerspectiveDsl.g:1678:3: () otherlv_1= 'bpmn'
-            {
-            // InternalPerspectiveDsl.g:1678:3: ()
-            // InternalPerspectiveDsl.g:1679:4: 
-            {
-            if ( state.backtracking==0 ) {
-
-              				current = forceCreateModelElement(
-              					grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0(),
-              					current);
-              			
-            }
-
-            }
-
-            otherlv_1=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_1, grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1());
-              		
-            }
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "rulePerspectiveBPMN"
-
-
     // $ANTLR start "entryRulePerspectiveKanban"
-    // InternalPerspectiveDsl.g:1693:1: entryRulePerspectiveKanban returns [EObject current=null] : iv_rulePerspectiveKanban= rulePerspectiveKanban EOF ;
+    // InternalPerspectiveDsl.g:1654:1: entryRulePerspectiveKanban returns [EObject current=null] : iv_rulePerspectiveKanban= rulePerspectiveKanban EOF ;
     public final EObject entryRulePerspectiveKanban() throws RecognitionException {
         EObject current = null;
 
@@ -4765,8 +4635,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1693:58: (iv_rulePerspectiveKanban= rulePerspectiveKanban EOF )
-            // InternalPerspectiveDsl.g:1694:2: iv_rulePerspectiveKanban= rulePerspectiveKanban EOF
+            // InternalPerspectiveDsl.g:1654:58: (iv_rulePerspectiveKanban= rulePerspectiveKanban EOF )
+            // InternalPerspectiveDsl.g:1655:2: iv_rulePerspectiveKanban= rulePerspectiveKanban EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveKanbanRule()); 
@@ -4797,7 +4667,7 @@
 
 
     // $ANTLR start "rulePerspectiveKanban"
-    // InternalPerspectiveDsl.g:1700:1: rulePerspectiveKanban returns [EObject current=null] : ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1661:1: rulePerspectiveKanban returns [EObject current=null] : ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveKanban() throws RecognitionException {
         EObject current = null;
 
@@ -4813,14 +4683,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1706:2: ( ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1707:2: ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1667:2: ( ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1668:2: ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1707:2: ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1708:3: () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1668:2: ( () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1669:3: () otherlv_1= 'kanban' otherlv_2= 'of' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'card' ( (otherlv_5= RULE_ID ) ) otherlv_6= 'dialog' ( (otherlv_7= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1708:3: ()
-            // InternalPerspectiveDsl.g:1709:4: 
+            // InternalPerspectiveDsl.g:1669:3: ()
+            // InternalPerspectiveDsl.g:1670:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -4832,23 +4702,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,41,FOLLOW_18); if (state.failed) return current;
+            otherlv_1=(Token)match(input,40,FOLLOW_18); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveKanbanAccess().getKanbanKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,42,FOLLOW_4); if (state.failed) return current;
+            otherlv_2=(Token)match(input,41,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getPerspectiveKanbanAccess().getOfKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:1723:3: ( (otherlv_3= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1724:4: (otherlv_3= RULE_ID )
+            // InternalPerspectiveDsl.g:1684:3: ( (otherlv_3= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1685:4: (otherlv_3= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1724:4: (otherlv_3= RULE_ID )
-            // InternalPerspectiveDsl.g:1725:5: otherlv_3= RULE_ID
+            // InternalPerspectiveDsl.g:1685:4: (otherlv_3= RULE_ID )
+            // InternalPerspectiveDsl.g:1686:5: otherlv_3= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4869,17 +4739,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,43,FOLLOW_4); if (state.failed) return current;
+            otherlv_4=(Token)match(input,42,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getPerspectiveKanbanAccess().getCardKeyword_4());
               		
             }
-            // InternalPerspectiveDsl.g:1740:3: ( (otherlv_5= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1741:4: (otherlv_5= RULE_ID )
+            // InternalPerspectiveDsl.g:1701:3: ( (otherlv_5= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1702:4: (otherlv_5= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1741:4: (otherlv_5= RULE_ID )
-            // InternalPerspectiveDsl.g:1742:5: otherlv_5= RULE_ID
+            // InternalPerspectiveDsl.g:1702:4: (otherlv_5= RULE_ID )
+            // InternalPerspectiveDsl.g:1703:5: otherlv_5= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4906,11 +4776,11 @@
               			newLeafNode(otherlv_6, grammarAccess.getPerspectiveKanbanAccess().getDialogKeyword_6());
               		
             }
-            // InternalPerspectiveDsl.g:1757:3: ( (otherlv_7= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1758:4: (otherlv_7= RULE_ID )
+            // InternalPerspectiveDsl.g:1718:3: ( (otherlv_7= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1719:4: (otherlv_7= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1758:4: (otherlv_7= RULE_ID )
-            // InternalPerspectiveDsl.g:1759:5: otherlv_7= RULE_ID
+            // InternalPerspectiveDsl.g:1719:4: (otherlv_7= RULE_ID )
+            // InternalPerspectiveDsl.g:1720:5: otherlv_7= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4956,7 +4826,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveWelcome"
-    // InternalPerspectiveDsl.g:1774:1: entryRulePerspectiveWelcome returns [EObject current=null] : iv_rulePerspectiveWelcome= rulePerspectiveWelcome EOF ;
+    // InternalPerspectiveDsl.g:1735:1: entryRulePerspectiveWelcome returns [EObject current=null] : iv_rulePerspectiveWelcome= rulePerspectiveWelcome EOF ;
     public final EObject entryRulePerspectiveWelcome() throws RecognitionException {
         EObject current = null;
 
@@ -4964,8 +4834,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1774:59: (iv_rulePerspectiveWelcome= rulePerspectiveWelcome EOF )
-            // InternalPerspectiveDsl.g:1775:2: iv_rulePerspectiveWelcome= rulePerspectiveWelcome EOF
+            // InternalPerspectiveDsl.g:1735:59: (iv_rulePerspectiveWelcome= rulePerspectiveWelcome EOF )
+            // InternalPerspectiveDsl.g:1736:2: iv_rulePerspectiveWelcome= rulePerspectiveWelcome EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveWelcomeRule()); 
@@ -4996,7 +4866,7 @@
 
 
     // $ANTLR start "rulePerspectiveWelcome"
-    // InternalPerspectiveDsl.g:1781:1: rulePerspectiveWelcome returns [EObject current=null] : ( () otherlv_1= 'welcome' ) ;
+    // InternalPerspectiveDsl.g:1742:1: rulePerspectiveWelcome returns [EObject current=null] : ( () otherlv_1= 'welcome' ) ;
     public final EObject rulePerspectiveWelcome() throws RecognitionException {
         EObject current = null;
 
@@ -5006,14 +4876,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1787:2: ( ( () otherlv_1= 'welcome' ) )
-            // InternalPerspectiveDsl.g:1788:2: ( () otherlv_1= 'welcome' )
+            // InternalPerspectiveDsl.g:1748:2: ( ( () otherlv_1= 'welcome' ) )
+            // InternalPerspectiveDsl.g:1749:2: ( () otherlv_1= 'welcome' )
             {
-            // InternalPerspectiveDsl.g:1788:2: ( () otherlv_1= 'welcome' )
-            // InternalPerspectiveDsl.g:1789:3: () otherlv_1= 'welcome'
+            // InternalPerspectiveDsl.g:1749:2: ( () otherlv_1= 'welcome' )
+            // InternalPerspectiveDsl.g:1750:3: () otherlv_1= 'welcome'
             {
-            // InternalPerspectiveDsl.g:1789:3: ()
-            // InternalPerspectiveDsl.g:1790:4: 
+            // InternalPerspectiveDsl.g:1750:3: ()
+            // InternalPerspectiveDsl.g:1751:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -5025,7 +4895,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveWelcomeAccess().getWelcomeKeyword_1());
@@ -5056,7 +4926,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveSearch"
-    // InternalPerspectiveDsl.g:1804:1: entryRulePerspectiveSearch returns [EObject current=null] : iv_rulePerspectiveSearch= rulePerspectiveSearch EOF ;
+    // InternalPerspectiveDsl.g:1765:1: entryRulePerspectiveSearch returns [EObject current=null] : iv_rulePerspectiveSearch= rulePerspectiveSearch EOF ;
     public final EObject entryRulePerspectiveSearch() throws RecognitionException {
         EObject current = null;
 
@@ -5064,8 +4934,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1804:58: (iv_rulePerspectiveSearch= rulePerspectiveSearch EOF )
-            // InternalPerspectiveDsl.g:1805:2: iv_rulePerspectiveSearch= rulePerspectiveSearch EOF
+            // InternalPerspectiveDsl.g:1765:58: (iv_rulePerspectiveSearch= rulePerspectiveSearch EOF )
+            // InternalPerspectiveDsl.g:1766:2: iv_rulePerspectiveSearch= rulePerspectiveSearch EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveSearchRule()); 
@@ -5096,7 +4966,7 @@
 
 
     // $ANTLR start "rulePerspectiveSearch"
-    // InternalPerspectiveDsl.g:1811:1: rulePerspectiveSearch returns [EObject current=null] : ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) ) ;
+    // InternalPerspectiveDsl.g:1772:1: rulePerspectiveSearch returns [EObject current=null] : ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) ) ;
     public final EObject rulePerspectiveSearch() throws RecognitionException {
         EObject current = null;
 
@@ -5112,14 +4982,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1817:2: ( ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) ) )
-            // InternalPerspectiveDsl.g:1818:2: ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) )
+            // InternalPerspectiveDsl.g:1778:2: ( ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) ) )
+            // InternalPerspectiveDsl.g:1779:2: ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) )
             {
-            // InternalPerspectiveDsl.g:1818:2: ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) )
-            // InternalPerspectiveDsl.g:1819:3: () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) )
+            // InternalPerspectiveDsl.g:1779:2: ( () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) ) )
+            // InternalPerspectiveDsl.g:1780:3: () otherlv_1= 'search' otherlv_2= 'in' ( (otherlv_3= RULE_ID ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) )
             {
-            // InternalPerspectiveDsl.g:1819:3: ()
-            // InternalPerspectiveDsl.g:1820:4: 
+            // InternalPerspectiveDsl.g:1780:3: ()
+            // InternalPerspectiveDsl.g:1781:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -5131,23 +5001,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,45,FOLLOW_21); if (state.failed) return current;
+            otherlv_1=(Token)match(input,44,FOLLOW_21); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveSearchAccess().getSearchKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,46,FOLLOW_4); if (state.failed) return current;
+            otherlv_2=(Token)match(input,45,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getPerspectiveSearchAccess().getInKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:1834:3: ( (otherlv_3= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1835:4: (otherlv_3= RULE_ID )
+            // InternalPerspectiveDsl.g:1795:3: ( (otherlv_3= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1796:4: (otherlv_3= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1835:4: (otherlv_3= RULE_ID )
-            // InternalPerspectiveDsl.g:1836:5: otherlv_3= RULE_ID
+            // InternalPerspectiveDsl.g:1796:4: (otherlv_3= RULE_ID )
+            // InternalPerspectiveDsl.g:1797:5: otherlv_3= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -5168,66 +5038,66 @@
 
             }
 
-            // InternalPerspectiveDsl.g:1847:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) )
-            // InternalPerspectiveDsl.g:1848:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) )
+            // InternalPerspectiveDsl.g:1808:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) ) )
+            // InternalPerspectiveDsl.g:1809:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) )
             {
-            // InternalPerspectiveDsl.g:1848:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) )
-            // InternalPerspectiveDsl.g:1849:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* )
+            // InternalPerspectiveDsl.g:1809:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* ) )
+            // InternalPerspectiveDsl.g:1810:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4());
-            // InternalPerspectiveDsl.g:1852:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* )
-            // InternalPerspectiveDsl.g:1853:6: ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )*
+            // InternalPerspectiveDsl.g:1813:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )* )
+            // InternalPerspectiveDsl.g:1814:6: ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )*
             {
-            // InternalPerspectiveDsl.g:1853:6: ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )*
+            // InternalPerspectiveDsl.g:1814:6: ( ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) ) )*
             loop16:
             do {
                 int alt16=3;
                 int LA16_0 = input.LA(1);
 
-                if ( LA16_0 == 47 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
+                if ( LA16_0 == 46 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
                     alt16=1;
                 }
-                else if ( LA16_0 == 48 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
+                else if ( LA16_0 == 47 && getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
                     alt16=2;
                 }
 
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:1854:4: ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1815:4: ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:1854:4: ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) )
-            	    // InternalPerspectiveDsl.g:1855:5: {...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1815:4: ({...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1816:5: {...}? => ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "rulePerspectiveSearch", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0)");
             	    }
-            	    // InternalPerspectiveDsl.g:1855:114: ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) )
-            	    // InternalPerspectiveDsl.g:1856:6: ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) )
+            	    // InternalPerspectiveDsl.g:1816:114: ( ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1817:6: ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 0);
-            	    // InternalPerspectiveDsl.g:1859:9: ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) )
-            	    // InternalPerspectiveDsl.g:1859:10: {...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) )
+            	    // InternalPerspectiveDsl.g:1820:9: ({...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) ) )
+            	    // InternalPerspectiveDsl.g:1820:10: {...}? => (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "rulePerspectiveSearch", "true");
             	    }
-            	    // InternalPerspectiveDsl.g:1859:19: (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) )
-            	    // InternalPerspectiveDsl.g:1859:20: otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) )
+            	    // InternalPerspectiveDsl.g:1820:19: (otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) ) )
+            	    // InternalPerspectiveDsl.g:1820:20: otherlv_5= 'depth' ( (lv_depth_6_0= RULE_INT ) )
             	    {
-            	    otherlv_5=(Token)match(input,47,FOLLOW_23); if (state.failed) return current;
+            	    otherlv_5=(Token)match(input,46,FOLLOW_23); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      									newLeafNode(otherlv_5, grammarAccess.getPerspectiveSearchAccess().getDepthKeyword_4_0_0());
             	      								
             	    }
-            	    // InternalPerspectiveDsl.g:1863:9: ( (lv_depth_6_0= RULE_INT ) )
-            	    // InternalPerspectiveDsl.g:1864:10: (lv_depth_6_0= RULE_INT )
+            	    // InternalPerspectiveDsl.g:1824:9: ( (lv_depth_6_0= RULE_INT ) )
+            	    // InternalPerspectiveDsl.g:1825:10: (lv_depth_6_0= RULE_INT )
             	    {
-            	    // InternalPerspectiveDsl.g:1864:10: (lv_depth_6_0= RULE_INT )
-            	    // InternalPerspectiveDsl.g:1865:11: lv_depth_6_0= RULE_INT
+            	    // InternalPerspectiveDsl.g:1825:10: (lv_depth_6_0= RULE_INT )
+            	    // InternalPerspectiveDsl.g:1826:11: lv_depth_6_0= RULE_INT
             	    {
             	    lv_depth_6_0=(Token)match(input,RULE_INT,FOLLOW_22); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -5270,40 +5140,40 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalPerspectiveDsl.g:1887:4: ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1848:4: ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:1887:4: ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) )
-            	    // InternalPerspectiveDsl.g:1888:5: {...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1848:4: ({...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1849:5: {...}? => ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "rulePerspectiveSearch", "getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1)");
             	    }
-            	    // InternalPerspectiveDsl.g:1888:114: ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) )
-            	    // InternalPerspectiveDsl.g:1889:6: ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) )
+            	    // InternalPerspectiveDsl.g:1849:114: ( ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:1850:6: ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4(), 1);
-            	    // InternalPerspectiveDsl.g:1892:9: ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) )
-            	    // InternalPerspectiveDsl.g:1892:10: {...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) )
+            	    // InternalPerspectiveDsl.g:1853:9: ({...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) ) )
+            	    // InternalPerspectiveDsl.g:1853:10: {...}? => (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "rulePerspectiveSearch", "true");
             	    }
-            	    // InternalPerspectiveDsl.g:1892:19: (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) )
-            	    // InternalPerspectiveDsl.g:1892:20: otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) )
+            	    // InternalPerspectiveDsl.g:1853:19: (otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) ) )
+            	    // InternalPerspectiveDsl.g:1853:20: otherlv_7= 'filterColumns' ( (lv_filterCols_8_0= RULE_INT ) )
             	    {
-            	    otherlv_7=(Token)match(input,48,FOLLOW_23); if (state.failed) return current;
+            	    otherlv_7=(Token)match(input,47,FOLLOW_23); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      									newLeafNode(otherlv_7, grammarAccess.getPerspectiveSearchAccess().getFilterColumnsKeyword_4_1_0());
             	      								
             	    }
-            	    // InternalPerspectiveDsl.g:1896:9: ( (lv_filterCols_8_0= RULE_INT ) )
-            	    // InternalPerspectiveDsl.g:1897:10: (lv_filterCols_8_0= RULE_INT )
+            	    // InternalPerspectiveDsl.g:1857:9: ( (lv_filterCols_8_0= RULE_INT ) )
+            	    // InternalPerspectiveDsl.g:1858:10: (lv_filterCols_8_0= RULE_INT )
             	    {
-            	    // InternalPerspectiveDsl.g:1897:10: (lv_filterCols_8_0= RULE_INT )
-            	    // InternalPerspectiveDsl.g:1898:11: lv_filterCols_8_0= RULE_INT
+            	    // InternalPerspectiveDsl.g:1858:10: (lv_filterCols_8_0= RULE_INT )
+            	    // InternalPerspectiveDsl.g:1859:11: lv_filterCols_8_0= RULE_INT
             	    {
             	    lv_filterCols_8_0=(Token)match(input,RULE_INT,FOLLOW_22); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -5386,7 +5256,7 @@
 
 
     // $ANTLR start "entryRulePerspectiveDataInterchange"
-    // InternalPerspectiveDsl.g:1931:1: entryRulePerspectiveDataInterchange returns [EObject current=null] : iv_rulePerspectiveDataInterchange= rulePerspectiveDataInterchange EOF ;
+    // InternalPerspectiveDsl.g:1892:1: entryRulePerspectiveDataInterchange returns [EObject current=null] : iv_rulePerspectiveDataInterchange= rulePerspectiveDataInterchange EOF ;
     public final EObject entryRulePerspectiveDataInterchange() throws RecognitionException {
         EObject current = null;
 
@@ -5394,8 +5264,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1931:67: (iv_rulePerspectiveDataInterchange= rulePerspectiveDataInterchange EOF )
-            // InternalPerspectiveDsl.g:1932:2: iv_rulePerspectiveDataInterchange= rulePerspectiveDataInterchange EOF
+            // InternalPerspectiveDsl.g:1892:67: (iv_rulePerspectiveDataInterchange= rulePerspectiveDataInterchange EOF )
+            // InternalPerspectiveDsl.g:1893:2: iv_rulePerspectiveDataInterchange= rulePerspectiveDataInterchange EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPerspectiveDataInterchangeRule()); 
@@ -5426,7 +5296,7 @@
 
 
     // $ANTLR start "rulePerspectiveDataInterchange"
-    // InternalPerspectiveDsl.g:1938:1: rulePerspectiveDataInterchange returns [EObject current=null] : ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) ) ;
+    // InternalPerspectiveDsl.g:1899:1: rulePerspectiveDataInterchange returns [EObject current=null] : ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) ) ;
     public final EObject rulePerspectiveDataInterchange() throws RecognitionException {
         EObject current = null;
 
@@ -5437,14 +5307,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1944:2: ( ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) ) )
-            // InternalPerspectiveDsl.g:1945:2: ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1905:2: ( ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalPerspectiveDsl.g:1906:2: ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) )
             {
-            // InternalPerspectiveDsl.g:1945:2: ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) )
-            // InternalPerspectiveDsl.g:1946:3: () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1906:2: ( () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) ) )
+            // InternalPerspectiveDsl.g:1907:3: () otherlv_1= 'dataInterchange' ( (otherlv_2= RULE_ID ) )
             {
-            // InternalPerspectiveDsl.g:1946:3: ()
-            // InternalPerspectiveDsl.g:1947:4: 
+            // InternalPerspectiveDsl.g:1907:3: ()
+            // InternalPerspectiveDsl.g:1908:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -5456,17 +5326,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,49,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,48,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getPerspectiveDataInterchangeAccess().getDataInterchangeKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:1957:3: ( (otherlv_2= RULE_ID ) )
-            // InternalPerspectiveDsl.g:1958:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1918:3: ( (otherlv_2= RULE_ID ) )
+            // InternalPerspectiveDsl.g:1919:4: (otherlv_2= RULE_ID )
             {
-            // InternalPerspectiveDsl.g:1958:4: (otherlv_2= RULE_ID )
-            // InternalPerspectiveDsl.g:1959:5: otherlv_2= RULE_ID
+            // InternalPerspectiveDsl.g:1919:4: (otherlv_2= RULE_ID )
+            // InternalPerspectiveDsl.g:1920:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -5512,7 +5382,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalPerspectiveDsl.g:1974:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
+    // InternalPerspectiveDsl.g:1935:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
     public final String entryRuleTRANSLATABLEID() throws RecognitionException {
         String current = null;
 
@@ -5520,8 +5390,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1974:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
-            // InternalPerspectiveDsl.g:1975:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
+            // InternalPerspectiveDsl.g:1935:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
+            // InternalPerspectiveDsl.g:1936:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -5552,7 +5422,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalPerspectiveDsl.g:1981:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalPerspectiveDsl.g:1942:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLEID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5562,8 +5432,8 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:1987:2: (this_ID_0= RULE_ID )
-            // InternalPerspectiveDsl.g:1988:2: this_ID_0= RULE_ID
+            // InternalPerspectiveDsl.g:1948:2: (this_ID_0= RULE_ID )
+            // InternalPerspectiveDsl.g:1949:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5598,7 +5468,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // InternalPerspectiveDsl.g:1998:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
+    // InternalPerspectiveDsl.g:1959:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
     public final String entryRuleTRANSLATABLESTRING() throws RecognitionException {
         String current = null;
 
@@ -5606,8 +5476,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:1998:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
-            // InternalPerspectiveDsl.g:1999:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
+            // InternalPerspectiveDsl.g:1959:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
+            // InternalPerspectiveDsl.g:1960:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); 
@@ -5638,7 +5508,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLESTRING"
-    // InternalPerspectiveDsl.g:2005:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+    // InternalPerspectiveDsl.g:1966:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLESTRING() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5648,8 +5518,8 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2011:2: (this_STRING_0= RULE_STRING )
-            // InternalPerspectiveDsl.g:2012:2: this_STRING_0= RULE_STRING
+            // InternalPerspectiveDsl.g:1972:2: (this_STRING_0= RULE_STRING )
+            // InternalPerspectiveDsl.g:1973:2: this_STRING_0= RULE_STRING
             {
             this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5684,7 +5554,7 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalPerspectiveDsl.g:2022:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+    // InternalPerspectiveDsl.g:1983:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
     public final EObject entryRuleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -5692,8 +5562,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2022:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
-            // InternalPerspectiveDsl.g:2023:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+            // InternalPerspectiveDsl.g:1983:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+            // InternalPerspectiveDsl.g:1984:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportDeclarationRule()); 
@@ -5724,7 +5594,7 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalPerspectiveDsl.g:2029:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
+    // InternalPerspectiveDsl.g:1990:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
     public final EObject ruleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -5745,14 +5615,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2035:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
-            // InternalPerspectiveDsl.g:2036:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalPerspectiveDsl.g:1996:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
+            // InternalPerspectiveDsl.g:1997:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
             {
-            // InternalPerspectiveDsl.g:2036:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
-            // InternalPerspectiveDsl.g:2037:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
+            // InternalPerspectiveDsl.g:1997:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalPerspectiveDsl.g:1998:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
             {
-            // InternalPerspectiveDsl.g:2037:3: ()
-            // InternalPerspectiveDsl.g:2038:4: 
+            // InternalPerspectiveDsl.g:1998:3: ()
+            // InternalPerspectiveDsl.g:1999:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -5764,29 +5634,29 @@
 
             }
 
-            otherlv_1=(Token)match(input,50,FOLLOW_24); if (state.failed) return current;
+            otherlv_1=(Token)match(input,49,FOLLOW_24); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:2048:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
+            // InternalPerspectiveDsl.g:2009:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
             int alt19=4;
             alt19 = dfa19.predict(input);
             switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2049:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalPerspectiveDsl.g:2010:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:2049:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
-                    // InternalPerspectiveDsl.g:2050:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    // InternalPerspectiveDsl.g:2010:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalPerspectiveDsl.g:2011:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
                     {
-                    // InternalPerspectiveDsl.g:2050:5: ( (lv_static_2_0= 'static' ) )
-                    // InternalPerspectiveDsl.g:2051:6: (lv_static_2_0= 'static' )
+                    // InternalPerspectiveDsl.g:2011:5: ( (lv_static_2_0= 'static' ) )
+                    // InternalPerspectiveDsl.g:2012:6: (lv_static_2_0= 'static' )
                     {
-                    // InternalPerspectiveDsl.g:2051:6: (lv_static_2_0= 'static' )
-                    // InternalPerspectiveDsl.g:2052:7: lv_static_2_0= 'static'
+                    // InternalPerspectiveDsl.g:2012:6: (lv_static_2_0= 'static' )
+                    // InternalPerspectiveDsl.g:2013:7: lv_static_2_0= 'static'
                     {
-                    lv_static_2_0=(Token)match(input,51,FOLLOW_25); if (state.failed) return current;
+                    lv_static_2_0=(Token)match(input,50,FOLLOW_25); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
@@ -5806,21 +5676,21 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2064:5: ( (lv_extension_3_0= 'extension' ) )?
+                    // InternalPerspectiveDsl.g:2025:5: ( (lv_extension_3_0= 'extension' ) )?
                     int alt17=2;
                     int LA17_0 = input.LA(1);
 
-                    if ( (LA17_0==52) ) {
+                    if ( (LA17_0==51) ) {
                         alt17=1;
                     }
                     switch (alt17) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2065:6: (lv_extension_3_0= 'extension' )
+                            // InternalPerspectiveDsl.g:2026:6: (lv_extension_3_0= 'extension' )
                             {
-                            // InternalPerspectiveDsl.g:2065:6: (lv_extension_3_0= 'extension' )
-                            // InternalPerspectiveDsl.g:2066:7: lv_extension_3_0= 'extension'
+                            // InternalPerspectiveDsl.g:2026:6: (lv_extension_3_0= 'extension' )
+                            // InternalPerspectiveDsl.g:2027:7: lv_extension_3_0= 'extension'
                             {
-                            lv_extension_3_0=(Token)match(input,52,FOLLOW_25); if (state.failed) return current;
+                            lv_extension_3_0=(Token)match(input,51,FOLLOW_25); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
@@ -5843,11 +5713,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2078:5: ( ( ruleQualifiedNameInStaticImport ) )
-                    // InternalPerspectiveDsl.g:2079:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalPerspectiveDsl.g:2039:5: ( ( ruleQualifiedNameInStaticImport ) )
+                    // InternalPerspectiveDsl.g:2040:6: ( ruleQualifiedNameInStaticImport )
                     {
-                    // InternalPerspectiveDsl.g:2079:6: ( ruleQualifiedNameInStaticImport )
-                    // InternalPerspectiveDsl.g:2080:7: ruleQualifiedNameInStaticImport
+                    // InternalPerspectiveDsl.g:2040:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalPerspectiveDsl.g:2041:7: ruleQualifiedNameInStaticImport
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5877,11 +5747,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2094:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    // InternalPerspectiveDsl.g:2055:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
-                    if ( (LA18_0==53) ) {
+                    if ( (LA18_0==52) ) {
                         alt18=1;
                     }
                     else if ( (LA18_0==RULE_ID) ) {
@@ -5896,15 +5766,15 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2095:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalPerspectiveDsl.g:2056:6: ( (lv_wildcard_5_0= '*' ) )
                             {
-                            // InternalPerspectiveDsl.g:2095:6: ( (lv_wildcard_5_0= '*' ) )
-                            // InternalPerspectiveDsl.g:2096:7: (lv_wildcard_5_0= '*' )
+                            // InternalPerspectiveDsl.g:2056:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalPerspectiveDsl.g:2057:7: (lv_wildcard_5_0= '*' )
                             {
-                            // InternalPerspectiveDsl.g:2096:7: (lv_wildcard_5_0= '*' )
-                            // InternalPerspectiveDsl.g:2097:8: lv_wildcard_5_0= '*'
+                            // InternalPerspectiveDsl.g:2057:7: (lv_wildcard_5_0= '*' )
+                            // InternalPerspectiveDsl.g:2058:8: lv_wildcard_5_0= '*'
                             {
-                            lv_wildcard_5_0=(Token)match(input,53,FOLLOW_27); if (state.failed) return current;
+                            lv_wildcard_5_0=(Token)match(input,52,FOLLOW_27); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
@@ -5928,13 +5798,13 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:2110:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalPerspectiveDsl.g:2071:6: ( (lv_memberName_6_0= ruleValidID ) )
                             {
-                            // InternalPerspectiveDsl.g:2110:6: ( (lv_memberName_6_0= ruleValidID ) )
-                            // InternalPerspectiveDsl.g:2111:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalPerspectiveDsl.g:2071:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalPerspectiveDsl.g:2072:7: (lv_memberName_6_0= ruleValidID )
                             {
-                            // InternalPerspectiveDsl.g:2111:7: (lv_memberName_6_0= ruleValidID )
-                            // InternalPerspectiveDsl.g:2112:8: lv_memberName_6_0= ruleValidID
+                            // InternalPerspectiveDsl.g:2072:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalPerspectiveDsl.g:2073:8: lv_memberName_6_0= ruleValidID
                             {
                             if ( state.backtracking==0 ) {
 
@@ -5978,13 +5848,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2132:4: ( ( ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2093:4: ( ( ruleQualifiedName ) )
                     {
-                    // InternalPerspectiveDsl.g:2132:4: ( ( ruleQualifiedName ) )
-                    // InternalPerspectiveDsl.g:2133:5: ( ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2093:4: ( ( ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2094:5: ( ruleQualifiedName )
                     {
-                    // InternalPerspectiveDsl.g:2133:5: ( ruleQualifiedName )
-                    // InternalPerspectiveDsl.g:2134:6: ruleQualifiedName
+                    // InternalPerspectiveDsl.g:2094:5: ( ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2095:6: ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6018,13 +5888,13 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:2149:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalPerspectiveDsl.g:2110:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
                     {
-                    // InternalPerspectiveDsl.g:2149:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
-                    // InternalPerspectiveDsl.g:2150:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalPerspectiveDsl.g:2110:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalPerspectiveDsl.g:2111:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
                     {
-                    // InternalPerspectiveDsl.g:2150:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
-                    // InternalPerspectiveDsl.g:2151:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
+                    // InternalPerspectiveDsl.g:2111:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalPerspectiveDsl.g:2112:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6059,18 +5929,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:2169:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalPerspectiveDsl.g:2130:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
                     {
-                    // InternalPerspectiveDsl.g:2169:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
-                    // InternalPerspectiveDsl.g:2170:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2130:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalPerspectiveDsl.g:2131:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
                     {
-                    // InternalPerspectiveDsl.g:2170:5: ( (lv_fqnImport_9_0= 'ns' ) )
-                    // InternalPerspectiveDsl.g:2171:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalPerspectiveDsl.g:2131:5: ( (lv_fqnImport_9_0= 'ns' ) )
+                    // InternalPerspectiveDsl.g:2132:6: (lv_fqnImport_9_0= 'ns' )
                     {
-                    // InternalPerspectiveDsl.g:2171:6: (lv_fqnImport_9_0= 'ns' )
-                    // InternalPerspectiveDsl.g:2172:7: lv_fqnImport_9_0= 'ns'
+                    // InternalPerspectiveDsl.g:2132:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalPerspectiveDsl.g:2133:7: lv_fqnImport_9_0= 'ns'
                     {
-                    lv_fqnImport_9_0=(Token)match(input,54,FOLLOW_4); if (state.failed) return current;
+                    lv_fqnImport_9_0=(Token)match(input,53,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
@@ -6090,11 +5960,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2184:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
-                    // InternalPerspectiveDsl.g:2185:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2145:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalPerspectiveDsl.g:2146:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
                     {
-                    // InternalPerspectiveDsl.g:2185:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
-                    // InternalPerspectiveDsl.g:2186:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
+                    // InternalPerspectiveDsl.g:2146:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalPerspectiveDsl.g:2147:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6134,18 +6004,18 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2205:3: (otherlv_11= ';' )?
+            // InternalPerspectiveDsl.g:2166:3: (otherlv_11= ';' )?
             int alt20=2;
             int LA20_0 = input.LA(1);
 
-            if ( (LA20_0==55) ) {
+            if ( (LA20_0==54) ) {
                 alt20=1;
             }
             switch (alt20) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2206:4: otherlv_11= ';'
+                    // InternalPerspectiveDsl.g:2167:4: otherlv_11= ';'
                     {
-                    otherlv_11=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
+                    otherlv_11=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
@@ -6182,7 +6052,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalPerspectiveDsl.g:2215:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    // InternalPerspectiveDsl.g:2176:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
     public final EObject entryRuleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -6190,8 +6060,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2215:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
-            // InternalPerspectiveDsl.g:2216:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            // InternalPerspectiveDsl.g:2176:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // InternalPerspectiveDsl.g:2177:2: iv_ruleXAnnotation= ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationRule()); 
@@ -6222,7 +6092,7 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalPerspectiveDsl.g:2222:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
+    // InternalPerspectiveDsl.g:2183:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
     public final EObject ruleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -6241,14 +6111,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2228:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
-            // InternalPerspectiveDsl.g:2229:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalPerspectiveDsl.g:2189:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
+            // InternalPerspectiveDsl.g:2190:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
             {
-            // InternalPerspectiveDsl.g:2229:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
-            // InternalPerspectiveDsl.g:2230:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            // InternalPerspectiveDsl.g:2190:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalPerspectiveDsl.g:2191:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
             {
-            // InternalPerspectiveDsl.g:2230:3: ()
-            // InternalPerspectiveDsl.g:2231:4: 
+            // InternalPerspectiveDsl.g:2191:3: ()
+            // InternalPerspectiveDsl.g:2192:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -6260,17 +6130,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,56,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,55,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:2241:3: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:2242:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:2202:3: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:2203:4: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:2242:4: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:2243:5: ruleQualifiedName
+            // InternalPerspectiveDsl.g:2203:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:2204:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -6300,21 +6170,21 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2257:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            // InternalPerspectiveDsl.g:2218:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
-            if ( (LA23_0==57) && (synpred1_InternalPerspectiveDsl())) {
+            if ( (LA23_0==56) && (synpred1_InternalPerspectiveDsl())) {
                 alt23=1;
             }
             switch (alt23) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2258:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    // InternalPerspectiveDsl.g:2219:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
                     {
-                    // InternalPerspectiveDsl.g:2258:4: ( ( '(' )=>otherlv_3= '(' )
-                    // InternalPerspectiveDsl.g:2259:5: ( '(' )=>otherlv_3= '('
+                    // InternalPerspectiveDsl.g:2219:4: ( ( '(' )=>otherlv_3= '(' )
+                    // InternalPerspectiveDsl.g:2220:5: ( '(' )=>otherlv_3= '('
                     {
-                    otherlv_3=(Token)match(input,57,FOLLOW_29); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,56,FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
@@ -6323,21 +6193,21 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2265:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    // InternalPerspectiveDsl.g:2226:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
                     int alt22=3;
                     alt22 = dfa22.predict(input);
                     switch (alt22) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2266:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalPerspectiveDsl.g:2227:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
                             {
-                            // InternalPerspectiveDsl.g:2266:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
-                            // InternalPerspectiveDsl.g:2267:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            // InternalPerspectiveDsl.g:2227:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalPerspectiveDsl.g:2228:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:2267:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
-                            // InternalPerspectiveDsl.g:2268:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalPerspectiveDsl.g:2228:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // InternalPerspectiveDsl.g:2229:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
                             {
-                            // InternalPerspectiveDsl.g:2277:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
-                            // InternalPerspectiveDsl.g:2278:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            // InternalPerspectiveDsl.g:2238:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalPerspectiveDsl.g:2239:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6368,32 +6238,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2295:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            // InternalPerspectiveDsl.g:2256:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
                             loop21:
                             do {
                                 int alt21=2;
                                 int LA21_0 = input.LA(1);
 
-                                if ( (LA21_0==58) ) {
+                                if ( (LA21_0==57) ) {
                                     alt21=1;
                                 }
 
 
                                 switch (alt21) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2296:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalPerspectiveDsl.g:2257:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
                             	    {
-                            	    otherlv_5=(Token)match(input,58,FOLLOW_4); if (state.failed) return current;
+                            	    otherlv_5=(Token)match(input,57,FOLLOW_4); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
                             	      						
                             	    }
-                            	    // InternalPerspectiveDsl.g:2300:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
-                            	    // InternalPerspectiveDsl.g:2301:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalPerspectiveDsl.g:2261:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalPerspectiveDsl.g:2262:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2310:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
-                            	    // InternalPerspectiveDsl.g:2311:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    // InternalPerspectiveDsl.g:2271:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalPerspectiveDsl.g:2272:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -6440,13 +6310,13 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:2331:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalPerspectiveDsl.g:2292:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
                             {
-                            // InternalPerspectiveDsl.g:2331:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
-                            // InternalPerspectiveDsl.g:2332:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalPerspectiveDsl.g:2292:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalPerspectiveDsl.g:2293:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
                             {
-                            // InternalPerspectiveDsl.g:2332:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
-                            // InternalPerspectiveDsl.g:2333:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            // InternalPerspectiveDsl.g:2293:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalPerspectiveDsl.g:2294:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6483,7 +6353,7 @@
 
                     }
 
-                    otherlv_8=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+                    otherlv_8=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
@@ -6520,7 +6390,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalPerspectiveDsl.g:2360:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    // InternalPerspectiveDsl.g:2321:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
     public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -6528,8 +6398,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2360:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
-            // InternalPerspectiveDsl.g:2361:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            // InternalPerspectiveDsl.g:2321:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // InternalPerspectiveDsl.g:2322:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -6560,7 +6430,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalPerspectiveDsl.g:2367:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    // InternalPerspectiveDsl.g:2328:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
     public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -6572,23 +6442,23 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2373:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
-            // InternalPerspectiveDsl.g:2374:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalPerspectiveDsl.g:2334:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // InternalPerspectiveDsl.g:2335:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
             {
-            // InternalPerspectiveDsl.g:2374:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
-            // InternalPerspectiveDsl.g:2375:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalPerspectiveDsl.g:2335:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalPerspectiveDsl.g:2336:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
             {
-            // InternalPerspectiveDsl.g:2375:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
-            // InternalPerspectiveDsl.g:2376:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalPerspectiveDsl.g:2336:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // InternalPerspectiveDsl.g:2337:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
             {
-            // InternalPerspectiveDsl.g:2385:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
-            // InternalPerspectiveDsl.g:2386:5: ( ( ruleValidID ) ) otherlv_1= '='
+            // InternalPerspectiveDsl.g:2346:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalPerspectiveDsl.g:2347:5: ( ( ruleValidID ) ) otherlv_1= '='
             {
-            // InternalPerspectiveDsl.g:2386:5: ( ( ruleValidID ) )
-            // InternalPerspectiveDsl.g:2387:6: ( ruleValidID )
+            // InternalPerspectiveDsl.g:2347:5: ( ( ruleValidID ) )
+            // InternalPerspectiveDsl.g:2348:6: ( ruleValidID )
             {
-            // InternalPerspectiveDsl.g:2387:6: ( ruleValidID )
-            // InternalPerspectiveDsl.g:2388:7: ruleValidID
+            // InternalPerspectiveDsl.g:2348:6: ( ruleValidID )
+            // InternalPerspectiveDsl.g:2349:7: ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -6618,7 +6488,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,60,FOLLOW_33); if (state.failed) return current;
+            otherlv_1=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
@@ -6630,11 +6500,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:2408:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
-            // InternalPerspectiveDsl.g:2409:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:2369:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalPerspectiveDsl.g:2370:4: (lv_value_2_0= ruleXAnnotationElementValue )
             {
-            // InternalPerspectiveDsl.g:2409:4: (lv_value_2_0= ruleXAnnotationElementValue )
-            // InternalPerspectiveDsl.g:2410:5: lv_value_2_0= ruleXAnnotationElementValue
+            // InternalPerspectiveDsl.g:2370:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalPerspectiveDsl.g:2371:5: lv_value_2_0= ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
 
@@ -6690,7 +6560,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalPerspectiveDsl.g:2431:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalPerspectiveDsl.g:2392:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
     public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -6698,8 +6568,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2431:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalPerspectiveDsl.g:2432:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            // InternalPerspectiveDsl.g:2392:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalPerspectiveDsl.g:2393:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -6730,7 +6600,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalPerspectiveDsl.g:2438:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
+    // InternalPerspectiveDsl.g:2399:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
     public final EObject ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -6752,27 +6622,27 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2444:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
-            // InternalPerspectiveDsl.g:2445:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            // InternalPerspectiveDsl.g:2405:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
+            // InternalPerspectiveDsl.g:2406:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
             {
-            // InternalPerspectiveDsl.g:2445:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            // InternalPerspectiveDsl.g:2406:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
             int alt28=2;
             alt28 = dfa28.predict(input);
             switch (alt28) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2446:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2407:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalPerspectiveDsl.g:2446:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalPerspectiveDsl.g:2447:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalPerspectiveDsl.g:2407:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2408:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalPerspectiveDsl.g:2447:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalPerspectiveDsl.g:2448:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2408:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalPerspectiveDsl.g:2409:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalPerspectiveDsl.g:2455:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalPerspectiveDsl.g:2456:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalPerspectiveDsl.g:2416:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2417:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalPerspectiveDsl.g:2456:6: ()
-                    // InternalPerspectiveDsl.g:2457:7: 
+                    // InternalPerspectiveDsl.g:2417:6: ()
+                    // InternalPerspectiveDsl.g:2418:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6784,13 +6654,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,61,FOLLOW_34); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,60,FOLLOW_34); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,62,FOLLOW_35); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,61,FOLLOW_35); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -6802,22 +6672,22 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2473:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    // InternalPerspectiveDsl.g:2434:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
                     int alt25=2;
                     int LA25_0 = input.LA(1);
 
-                    if ( ((LA25_0>=RULE_ID && LA25_0<=RULE_DECIMAL)||LA25_0==14||(LA25_0>=50 && LA25_0<=52)||(LA25_0>=56 && LA25_0<=57)||(LA25_0>=61 && LA25_0<=62)||LA25_0==69||(LA25_0>=85 && LA25_0<=86)||LA25_0==90||LA25_0==98||LA25_0==100||(LA25_0>=104 && LA25_0<=106)||(LA25_0>=109 && LA25_0<=118)||LA25_0==120) ) {
+                    if ( ((LA25_0>=RULE_ID && LA25_0<=RULE_DECIMAL)||LA25_0==14||(LA25_0>=49 && LA25_0<=51)||(LA25_0>=55 && LA25_0<=56)||(LA25_0>=60 && LA25_0<=61)||LA25_0==68||(LA25_0>=84 && LA25_0<=85)||LA25_0==89||LA25_0==97||LA25_0==99||(LA25_0>=103 && LA25_0<=105)||(LA25_0>=108 && LA25_0<=117)||LA25_0==119) ) {
                         alt25=1;
                     }
                     switch (alt25) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2474:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalPerspectiveDsl.g:2435:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:2474:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalPerspectiveDsl.g:2475:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2435:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalPerspectiveDsl.g:2436:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalPerspectiveDsl.g:2475:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalPerspectiveDsl.g:2476:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalPerspectiveDsl.g:2436:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2437:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6848,32 +6718,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2493:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalPerspectiveDsl.g:2454:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             loop24:
                             do {
                                 int alt24=2;
                                 int LA24_0 = input.LA(1);
 
-                                if ( (LA24_0==58) ) {
+                                if ( (LA24_0==57) ) {
                                     alt24=1;
                                 }
 
 
                                 switch (alt24) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2494:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2455:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalPerspectiveDsl.g:2498:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalPerspectiveDsl.g:2499:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2459:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2460:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2499:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalPerspectiveDsl.g:2500:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalPerspectiveDsl.g:2460:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2461:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -6919,7 +6789,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
@@ -6932,10 +6802,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2525:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalPerspectiveDsl.g:2486:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
                     {
-                    // InternalPerspectiveDsl.g:2525:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
-                    // InternalPerspectiveDsl.g:2526:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    // InternalPerspectiveDsl.g:2486:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalPerspectiveDsl.g:2487:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6953,19 +6823,19 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalPerspectiveDsl.g:2534:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    // InternalPerspectiveDsl.g:2495:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
                     int alt27=2;
                     int LA27_0 = input.LA(1);
 
-                    if ( (LA27_0==58) ) {
+                    if ( (LA27_0==57) ) {
                         alt27=1;
                     }
                     switch (alt27) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2535:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            // InternalPerspectiveDsl.g:2496:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
                             {
-                            // InternalPerspectiveDsl.g:2535:5: ()
-                            // InternalPerspectiveDsl.g:2536:6: 
+                            // InternalPerspectiveDsl.g:2496:5: ()
+                            // InternalPerspectiveDsl.g:2497:6: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6977,33 +6847,33 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2542:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            // InternalPerspectiveDsl.g:2503:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
                             int cnt26=0;
                             loop26:
                             do {
                                 int alt26=2;
                                 int LA26_0 = input.LA(1);
 
-                                if ( (LA26_0==58) ) {
+                                if ( (LA26_0==57) ) {
                                     alt26=1;
                                 }
 
 
                                 switch (alt26) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2543:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2504:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_9=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                            	    otherlv_9=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
                             	      					
                             	    }
-                            	    // InternalPerspectiveDsl.g:2547:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalPerspectiveDsl.g:2548:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2508:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2509:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2548:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
-                            	    // InternalPerspectiveDsl.g:2549:8: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    // InternalPerspectiveDsl.g:2509:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2510:8: lv_elements_10_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -7085,7 +6955,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalPerspectiveDsl.g:2573:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    // InternalPerspectiveDsl.g:2534:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
     public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -7093,8 +6963,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2573:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
-            // InternalPerspectiveDsl.g:2574:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            // InternalPerspectiveDsl.g:2534:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // InternalPerspectiveDsl.g:2535:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
@@ -7125,7 +6995,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalPerspectiveDsl.g:2580:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:2541:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
     public final EObject ruleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -7144,27 +7014,27 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2586:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:2587:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:2547:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:2548:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:2587:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:2548:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
             int alt31=2;
             alt31 = dfa31.predict(input);
             switch (alt31) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2588:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2549:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalPerspectiveDsl.g:2588:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalPerspectiveDsl.g:2589:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalPerspectiveDsl.g:2549:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalPerspectiveDsl.g:2550:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalPerspectiveDsl.g:2589:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalPerspectiveDsl.g:2590:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2550:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalPerspectiveDsl.g:2551:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalPerspectiveDsl.g:2597:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalPerspectiveDsl.g:2598:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalPerspectiveDsl.g:2558:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalPerspectiveDsl.g:2559:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalPerspectiveDsl.g:2598:6: ()
-                    // InternalPerspectiveDsl.g:2599:7: 
+                    // InternalPerspectiveDsl.g:2559:6: ()
+                    // InternalPerspectiveDsl.g:2560:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7176,13 +7046,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,61,FOLLOW_34); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,60,FOLLOW_34); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,62,FOLLOW_35); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,61,FOLLOW_35); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -7194,22 +7064,22 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2615:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    // InternalPerspectiveDsl.g:2576:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
                     int alt30=2;
                     int LA30_0 = input.LA(1);
 
-                    if ( ((LA30_0>=RULE_ID && LA30_0<=RULE_DECIMAL)||LA30_0==14||(LA30_0>=50 && LA30_0<=52)||(LA30_0>=56 && LA30_0<=57)||(LA30_0>=61 && LA30_0<=62)||LA30_0==69||(LA30_0>=85 && LA30_0<=86)||LA30_0==90||LA30_0==98||LA30_0==100||(LA30_0>=104 && LA30_0<=106)||(LA30_0>=109 && LA30_0<=118)||LA30_0==120) ) {
+                    if ( ((LA30_0>=RULE_ID && LA30_0<=RULE_DECIMAL)||LA30_0==14||(LA30_0>=49 && LA30_0<=51)||(LA30_0>=55 && LA30_0<=56)||(LA30_0>=60 && LA30_0<=61)||LA30_0==68||(LA30_0>=84 && LA30_0<=85)||LA30_0==89||LA30_0==97||LA30_0==99||(LA30_0>=103 && LA30_0<=105)||(LA30_0>=108 && LA30_0<=117)||LA30_0==119) ) {
                         alt30=1;
                     }
                     switch (alt30) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2616:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalPerspectiveDsl.g:2577:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:2616:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalPerspectiveDsl.g:2617:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2577:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalPerspectiveDsl.g:2578:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalPerspectiveDsl.g:2617:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalPerspectiveDsl.g:2618:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalPerspectiveDsl.g:2578:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalPerspectiveDsl.g:2579:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7240,32 +7110,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2635:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalPerspectiveDsl.g:2596:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             loop29:
                             do {
                                 int alt29=2;
                                 int LA29_0 = input.LA(1);
 
-                                if ( (LA29_0==58) ) {
+                                if ( (LA29_0==57) ) {
                                     alt29=1;
                                 }
 
 
                                 switch (alt29) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:2636:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2597:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalPerspectiveDsl.g:2640:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalPerspectiveDsl.g:2641:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2601:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalPerspectiveDsl.g:2602:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:2641:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalPerspectiveDsl.g:2642:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalPerspectiveDsl.g:2602:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalPerspectiveDsl.g:2603:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -7311,7 +7181,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
@@ -7324,7 +7194,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2667:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    // InternalPerspectiveDsl.g:2628:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7370,7 +7240,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalPerspectiveDsl.g:2679:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    // InternalPerspectiveDsl.g:2640:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
     public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7378,8 +7248,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2679:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
-            // InternalPerspectiveDsl.g:2680:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            // InternalPerspectiveDsl.g:2640:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // InternalPerspectiveDsl.g:2641:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -7410,7 +7280,7 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalPerspectiveDsl.g:2686:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:2647:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7423,17 +7293,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2692:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:2693:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            // InternalPerspectiveDsl.g:2653:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:2654:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:2693:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            // InternalPerspectiveDsl.g:2654:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
             int alt32=2;
             int LA32_0 = input.LA(1);
 
-            if ( (LA32_0==56) ) {
+            if ( (LA32_0==55) ) {
                 alt32=1;
             }
-            else if ( ((LA32_0>=RULE_ID && LA32_0<=RULE_DECIMAL)||LA32_0==14||(LA32_0>=50 && LA32_0<=52)||LA32_0==57||(LA32_0>=61 && LA32_0<=62)||LA32_0==69||(LA32_0>=85 && LA32_0<=86)||LA32_0==90||LA32_0==98||LA32_0==100||(LA32_0>=104 && LA32_0<=106)||(LA32_0>=109 && LA32_0<=118)||LA32_0==120) ) {
+            else if ( ((LA32_0>=RULE_ID && LA32_0<=RULE_DECIMAL)||LA32_0==14||(LA32_0>=49 && LA32_0<=51)||LA32_0==56||(LA32_0>=60 && LA32_0<=61)||LA32_0==68||(LA32_0>=84 && LA32_0<=85)||LA32_0==89||LA32_0==97||LA32_0==99||(LA32_0>=103 && LA32_0<=105)||(LA32_0>=108 && LA32_0<=117)||LA32_0==119) ) {
                 alt32=2;
             }
             else {
@@ -7445,7 +7315,7 @@
             }
             switch (alt32) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2694:3: this_XAnnotation_0= ruleXAnnotation
+                    // InternalPerspectiveDsl.g:2655:3: this_XAnnotation_0= ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7467,7 +7337,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2703:3: this_XExpression_1= ruleXExpression
+                    // InternalPerspectiveDsl.g:2664:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7513,7 +7383,7 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalPerspectiveDsl.g:2715:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    // InternalPerspectiveDsl.g:2676:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
     public final EObject entryRuleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7521,8 +7391,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2715:52: (iv_ruleXExpression= ruleXExpression EOF )
-            // InternalPerspectiveDsl.g:2716:2: iv_ruleXExpression= ruleXExpression EOF
+            // InternalPerspectiveDsl.g:2676:52: (iv_ruleXExpression= ruleXExpression EOF )
+            // InternalPerspectiveDsl.g:2677:2: iv_ruleXExpression= ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionRule()); 
@@ -7553,7 +7423,7 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalPerspectiveDsl.g:2722:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    // InternalPerspectiveDsl.g:2683:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
     public final EObject ruleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7564,8 +7434,8 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2728:2: (this_XAssignment_0= ruleXAssignment )
-            // InternalPerspectiveDsl.g:2729:2: this_XAssignment_0= ruleXAssignment
+            // InternalPerspectiveDsl.g:2689:2: (this_XAssignment_0= ruleXAssignment )
+            // InternalPerspectiveDsl.g:2690:2: this_XAssignment_0= ruleXAssignment
             {
             if ( state.backtracking==0 ) {
 
@@ -7605,7 +7475,7 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalPerspectiveDsl.g:2740:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    // InternalPerspectiveDsl.g:2701:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
     public final EObject entryRuleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -7613,8 +7483,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2740:52: (iv_ruleXAssignment= ruleXAssignment EOF )
-            // InternalPerspectiveDsl.g:2741:2: iv_ruleXAssignment= ruleXAssignment EOF
+            // InternalPerspectiveDsl.g:2701:52: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // InternalPerspectiveDsl.g:2702:2: iv_ruleXAssignment= ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAssignmentRule()); 
@@ -7645,7 +7515,7 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalPerspectiveDsl.g:2747:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    // InternalPerspectiveDsl.g:2708:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
     public final EObject ruleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -7660,20 +7530,20 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2753:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
-            // InternalPerspectiveDsl.g:2754:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            // InternalPerspectiveDsl.g:2714:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // InternalPerspectiveDsl.g:2715:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
             {
-            // InternalPerspectiveDsl.g:2754:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            // InternalPerspectiveDsl.g:2715:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
             int alt34=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
                 int LA34_1 = input.LA(2);
 
-                if ( (LA34_1==60) ) {
+                if ( (LA34_1==59) ) {
                     alt34=1;
                 }
-                else if ( (LA34_1==EOF||(LA34_1>=RULE_ID && LA34_1<=RULE_DECIMAL)||(LA34_1>=14 && LA34_1<=15)||(LA34_1>=50 && LA34_1<=53)||LA34_1==55||(LA34_1>=57 && LA34_1<=59)||(LA34_1>=61 && LA34_1<=96)||(LA34_1>=98 && LA34_1<=121)) ) {
+                else if ( (LA34_1==EOF||(LA34_1>=RULE_ID && LA34_1<=RULE_DECIMAL)||(LA34_1>=14 && LA34_1<=15)||(LA34_1>=49 && LA34_1<=52)||LA34_1==54||(LA34_1>=56 && LA34_1<=58)||(LA34_1>=60 && LA34_1<=95)||(LA34_1>=97 && LA34_1<=120)) ) {
                     alt34=2;
                 }
                 else {
@@ -7685,16 +7555,16 @@
                 }
                 }
                 break;
-            case 109:
+            case 108:
                 {
                 int LA34_2 = input.LA(2);
 
-                if ( (LA34_2==60) ) {
-                    alt34=1;
-                }
-                else if ( (LA34_2==EOF||(LA34_2>=RULE_ID && LA34_2<=RULE_DECIMAL)||(LA34_2>=14 && LA34_2<=15)||(LA34_2>=50 && LA34_2<=53)||LA34_2==55||(LA34_2>=57 && LA34_2<=59)||(LA34_2>=61 && LA34_2<=96)||(LA34_2>=98 && LA34_2<=121)) ) {
+                if ( (LA34_2==EOF||(LA34_2>=RULE_ID && LA34_2<=RULE_DECIMAL)||(LA34_2>=14 && LA34_2<=15)||(LA34_2>=49 && LA34_2<=52)||LA34_2==54||(LA34_2>=56 && LA34_2<=58)||(LA34_2>=60 && LA34_2<=95)||(LA34_2>=97 && LA34_2<=120)) ) {
                     alt34=2;
                 }
+                else if ( (LA34_2==59) ) {
+                    alt34=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
@@ -7704,16 +7574,16 @@
                 }
                 }
                 break;
-            case 51:
+            case 50:
                 {
                 int LA34_3 = input.LA(2);
 
-                if ( (LA34_3==60) ) {
-                    alt34=1;
-                }
-                else if ( (LA34_3==EOF||(LA34_3>=RULE_ID && LA34_3<=RULE_DECIMAL)||(LA34_3>=14 && LA34_3<=15)||(LA34_3>=50 && LA34_3<=53)||LA34_3==55||(LA34_3>=57 && LA34_3<=59)||(LA34_3>=61 && LA34_3<=96)||(LA34_3>=98 && LA34_3<=121)) ) {
+                if ( (LA34_3==EOF||(LA34_3>=RULE_ID && LA34_3<=RULE_DECIMAL)||(LA34_3>=14 && LA34_3<=15)||(LA34_3>=49 && LA34_3<=52)||LA34_3==54||(LA34_3>=56 && LA34_3<=58)||(LA34_3>=60 && LA34_3<=95)||(LA34_3>=97 && LA34_3<=120)) ) {
                     alt34=2;
                 }
+                else if ( (LA34_3==59) ) {
+                    alt34=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
@@ -7723,14 +7593,14 @@
                 }
                 }
                 break;
-            case 50:
+            case 49:
                 {
                 int LA34_4 = input.LA(2);
 
-                if ( (LA34_4==60) ) {
+                if ( (LA34_4==59) ) {
                     alt34=1;
                 }
-                else if ( (LA34_4==EOF||(LA34_4>=RULE_ID && LA34_4<=RULE_DECIMAL)||(LA34_4>=14 && LA34_4<=15)||(LA34_4>=50 && LA34_4<=53)||LA34_4==55||(LA34_4>=57 && LA34_4<=59)||(LA34_4>=61 && LA34_4<=96)||(LA34_4>=98 && LA34_4<=121)) ) {
+                else if ( (LA34_4==EOF||(LA34_4>=RULE_ID && LA34_4<=RULE_DECIMAL)||(LA34_4>=14 && LA34_4<=15)||(LA34_4>=49 && LA34_4<=52)||LA34_4==54||(LA34_4>=56 && LA34_4<=58)||(LA34_4>=60 && LA34_4<=95)||(LA34_4>=97 && LA34_4<=120)) ) {
                     alt34=2;
                 }
                 else {
@@ -7742,16 +7612,16 @@
                 }
                 }
                 break;
-            case 52:
+            case 51:
                 {
                 int LA34_5 = input.LA(2);
 
-                if ( (LA34_5==60) ) {
-                    alt34=1;
-                }
-                else if ( (LA34_5==EOF||(LA34_5>=RULE_ID && LA34_5<=RULE_DECIMAL)||(LA34_5>=14 && LA34_5<=15)||(LA34_5>=50 && LA34_5<=53)||LA34_5==55||(LA34_5>=57 && LA34_5<=59)||(LA34_5>=61 && LA34_5<=96)||(LA34_5>=98 && LA34_5<=121)) ) {
+                if ( (LA34_5==EOF||(LA34_5>=RULE_ID && LA34_5<=RULE_DECIMAL)||(LA34_5>=14 && LA34_5<=15)||(LA34_5>=49 && LA34_5<=52)||LA34_5==54||(LA34_5>=56 && LA34_5<=58)||(LA34_5>=60 && LA34_5<=95)||(LA34_5>=97 && LA34_5<=120)) ) {
                     alt34=2;
                 }
+                else if ( (LA34_5==59) ) {
+                    alt34=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
@@ -7766,18 +7636,19 @@
             case RULE_HEX:
             case RULE_DECIMAL:
             case 14:
-            case 57:
+            case 56:
+            case 60:
             case 61:
-            case 62:
-            case 69:
+            case 68:
+            case 84:
             case 85:
-            case 86:
-            case 90:
-            case 98:
-            case 100:
+            case 89:
+            case 97:
+            case 99:
+            case 103:
             case 104:
             case 105:
-            case 106:
+            case 109:
             case 110:
             case 111:
             case 112:
@@ -7786,8 +7657,7 @@
             case 115:
             case 116:
             case 117:
-            case 118:
-            case 120:
+            case 119:
                 {
                 alt34=2;
                 }
@@ -7802,13 +7672,13 @@
 
             switch (alt34) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2755:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalPerspectiveDsl.g:2716:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
                     {
-                    // InternalPerspectiveDsl.g:2755:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
-                    // InternalPerspectiveDsl.g:2756:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalPerspectiveDsl.g:2716:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalPerspectiveDsl.g:2717:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
                     {
-                    // InternalPerspectiveDsl.g:2756:4: ()
-                    // InternalPerspectiveDsl.g:2757:5: 
+                    // InternalPerspectiveDsl.g:2717:4: ()
+                    // InternalPerspectiveDsl.g:2718:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7820,11 +7690,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:2763:4: ( ( ruleFeatureCallID ) )
-                    // InternalPerspectiveDsl.g:2764:5: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:2724:4: ( ( ruleFeatureCallID ) )
+                    // InternalPerspectiveDsl.g:2725:5: ( ruleFeatureCallID )
                     {
-                    // InternalPerspectiveDsl.g:2764:5: ( ruleFeatureCallID )
-                    // InternalPerspectiveDsl.g:2765:6: ruleFeatureCallID
+                    // InternalPerspectiveDsl.g:2725:5: ( ruleFeatureCallID )
+                    // InternalPerspectiveDsl.g:2726:6: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7869,11 +7739,11 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalPerspectiveDsl.g:2786:4: ( (lv_value_3_0= ruleXAssignment ) )
-                    // InternalPerspectiveDsl.g:2787:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalPerspectiveDsl.g:2747:4: ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalPerspectiveDsl.g:2748:5: (lv_value_3_0= ruleXAssignment )
                     {
-                    // InternalPerspectiveDsl.g:2787:5: (lv_value_3_0= ruleXAssignment )
-                    // InternalPerspectiveDsl.g:2788:6: lv_value_3_0= ruleXAssignment
+                    // InternalPerspectiveDsl.g:2748:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalPerspectiveDsl.g:2749:6: lv_value_3_0= ruleXAssignment
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7911,10 +7781,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2807:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalPerspectiveDsl.g:2768:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
                     {
-                    // InternalPerspectiveDsl.g:2807:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
-                    // InternalPerspectiveDsl.g:2808:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    // InternalPerspectiveDsl.g:2768:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalPerspectiveDsl.g:2769:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7932,21 +7802,21 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalPerspectiveDsl.g:2816:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    // InternalPerspectiveDsl.g:2777:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
                     int alt33=2;
                     alt33 = dfa33.predict(input);
                     switch (alt33) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2817:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalPerspectiveDsl.g:2778:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
                             {
-                            // InternalPerspectiveDsl.g:2817:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
-                            // InternalPerspectiveDsl.g:2818:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalPerspectiveDsl.g:2778:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // InternalPerspectiveDsl.g:2779:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
                             {
-                            // InternalPerspectiveDsl.g:2828:6: ( () ( ( ruleOpMultiAssign ) ) )
-                            // InternalPerspectiveDsl.g:2829:7: () ( ( ruleOpMultiAssign ) )
+                            // InternalPerspectiveDsl.g:2789:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalPerspectiveDsl.g:2790:7: () ( ( ruleOpMultiAssign ) )
                             {
-                            // InternalPerspectiveDsl.g:2829:7: ()
-                            // InternalPerspectiveDsl.g:2830:8: 
+                            // InternalPerspectiveDsl.g:2790:7: ()
+                            // InternalPerspectiveDsl.g:2791:8: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7958,11 +7828,11 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2836:7: ( ( ruleOpMultiAssign ) )
-                            // InternalPerspectiveDsl.g:2837:8: ( ruleOpMultiAssign )
+                            // InternalPerspectiveDsl.g:2797:7: ( ( ruleOpMultiAssign ) )
+                            // InternalPerspectiveDsl.g:2798:8: ( ruleOpMultiAssign )
                             {
-                            // InternalPerspectiveDsl.g:2837:8: ( ruleOpMultiAssign )
-                            // InternalPerspectiveDsl.g:2838:9: ruleOpMultiAssign
+                            // InternalPerspectiveDsl.g:2798:8: ( ruleOpMultiAssign )
+                            // InternalPerspectiveDsl.g:2799:9: ruleOpMultiAssign
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7998,11 +7868,11 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:2854:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
-                            // InternalPerspectiveDsl.g:2855:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalPerspectiveDsl.g:2815:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalPerspectiveDsl.g:2816:6: (lv_rightOperand_7_0= ruleXAssignment )
                             {
-                            // InternalPerspectiveDsl.g:2855:6: (lv_rightOperand_7_0= ruleXAssignment )
-                            // InternalPerspectiveDsl.g:2856:7: lv_rightOperand_7_0= ruleXAssignment
+                            // InternalPerspectiveDsl.g:2816:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalPerspectiveDsl.g:2817:7: lv_rightOperand_7_0= ruleXAssignment
                             {
                             if ( state.backtracking==0 ) {
 
@@ -8070,7 +7940,7 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalPerspectiveDsl.g:2879:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    // InternalPerspectiveDsl.g:2840:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
     public final String entryRuleOpSingleAssign() throws RecognitionException {
         String current = null;
 
@@ -8078,8 +7948,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2879:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
-            // InternalPerspectiveDsl.g:2880:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            // InternalPerspectiveDsl.g:2840:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // InternalPerspectiveDsl.g:2841:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
@@ -8110,7 +7980,7 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalPerspectiveDsl.g:2886:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    // InternalPerspectiveDsl.g:2847:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
     public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8120,10 +7990,10 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2892:2: (kw= '=' )
-            // InternalPerspectiveDsl.g:2893:2: kw= '='
+            // InternalPerspectiveDsl.g:2853:2: (kw= '=' )
+            // InternalPerspectiveDsl.g:2854:2: kw= '='
             {
-            kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -8152,7 +8022,7 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalPerspectiveDsl.g:2901:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    // InternalPerspectiveDsl.g:2862:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
     public final String entryRuleOpMultiAssign() throws RecognitionException {
         String current = null;
 
@@ -8160,8 +8030,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2901:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
-            // InternalPerspectiveDsl.g:2902:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            // InternalPerspectiveDsl.g:2862:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // InternalPerspectiveDsl.g:2863:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
@@ -8192,7 +8062,7 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalPerspectiveDsl.g:2908:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    // InternalPerspectiveDsl.g:2869:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
     public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8202,43 +8072,43 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:2914:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
-            // InternalPerspectiveDsl.g:2915:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            // InternalPerspectiveDsl.g:2875:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // InternalPerspectiveDsl.g:2876:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
             {
-            // InternalPerspectiveDsl.g:2915:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            // InternalPerspectiveDsl.g:2876:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
             int alt36=7;
             switch ( input.LA(1) ) {
-            case 64:
+            case 63:
                 {
                 alt36=1;
                 }
                 break;
-            case 65:
+            case 64:
                 {
                 alt36=2;
                 }
                 break;
-            case 66:
+            case 65:
                 {
                 alt36=3;
                 }
                 break;
-            case 67:
+            case 66:
                 {
                 alt36=4;
                 }
                 break;
-            case 68:
+            case 67:
                 {
                 alt36=5;
                 }
                 break;
-            case 69:
+            case 68:
                 {
                 alt36=6;
                 }
                 break;
-            case 70:
+            case 69:
                 {
                 alt36=7;
                 }
@@ -8253,9 +8123,9 @@
 
             switch (alt36) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:2916:3: kw= '+='
+                    // InternalPerspectiveDsl.g:2877:3: kw= '+='
                     {
-                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8266,9 +8136,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:2922:3: kw= '-='
+                    // InternalPerspectiveDsl.g:2883:3: kw= '-='
                     {
-                    kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8279,9 +8149,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:2928:3: kw= '*='
+                    // InternalPerspectiveDsl.g:2889:3: kw= '*='
                     {
-                    kw=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8292,9 +8162,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:2934:3: kw= '/='
+                    // InternalPerspectiveDsl.g:2895:3: kw= '/='
                     {
-                    kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8305,9 +8175,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:2940:3: kw= '%='
+                    // InternalPerspectiveDsl.g:2901:3: kw= '%='
                     {
-                    kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8318,26 +8188,26 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:2946:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:2907:3: (kw= '<' kw= '<' kw= '=' )
                     {
-                    // InternalPerspectiveDsl.g:2946:3: (kw= '<' kw= '<' kw= '=' )
-                    // InternalPerspectiveDsl.g:2947:4: kw= '<' kw= '<' kw= '='
+                    // InternalPerspectiveDsl.g:2907:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:2908:4: kw= '<' kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,69,FOLLOW_39); if (state.failed) return current;
+                    kw=(Token)match(input,68,FOLLOW_39); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
                       			
                     }
-                    kw=(Token)match(input,69,FOLLOW_32); if (state.failed) return current;
+                    kw=(Token)match(input,68,FOLLOW_32); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
                       			
                     }
-                    kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -8351,30 +8221,30 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:2964:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalPerspectiveDsl.g:2925:3: (kw= '>' (kw= '>' )? kw= '>=' )
                     {
-                    // InternalPerspectiveDsl.g:2964:3: (kw= '>' (kw= '>' )? kw= '>=' )
-                    // InternalPerspectiveDsl.g:2965:4: kw= '>' (kw= '>' )? kw= '>='
+                    // InternalPerspectiveDsl.g:2925:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalPerspectiveDsl.g:2926:4: kw= '>' (kw= '>' )? kw= '>='
                     {
-                    kw=(Token)match(input,70,FOLLOW_40); if (state.failed) return current;
+                    kw=(Token)match(input,69,FOLLOW_40); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:2970:4: (kw= '>' )?
+                    // InternalPerspectiveDsl.g:2931:4: (kw= '>' )?
                     int alt35=2;
                     int LA35_0 = input.LA(1);
 
-                    if ( (LA35_0==70) ) {
+                    if ( (LA35_0==69) ) {
                         alt35=1;
                     }
                     switch (alt35) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:2971:5: kw= '>'
+                            // InternalPerspectiveDsl.g:2932:5: kw= '>'
                             {
-                            kw=(Token)match(input,70,FOLLOW_41); if (state.failed) return current;
+                            kw=(Token)match(input,69,FOLLOW_41); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -8387,7 +8257,7 @@
 
                     }
 
-                    kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -8425,7 +8295,7 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalPerspectiveDsl.g:2987:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    // InternalPerspectiveDsl.g:2948:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
     public final EObject entryRuleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8433,8 +8303,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:2987:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
-            // InternalPerspectiveDsl.g:2988:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            // InternalPerspectiveDsl.g:2948:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // InternalPerspectiveDsl.g:2949:2: iv_ruleXOrExpression= ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOrExpressionRule()); 
@@ -8465,7 +8335,7 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalPerspectiveDsl.g:2994:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:2955:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
     public final EObject ruleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8478,11 +8348,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3000:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3001:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalPerspectiveDsl.g:2961:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:2962:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3001:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3002:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            // InternalPerspectiveDsl.g:2962:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalPerspectiveDsl.g:2963:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -8500,13 +8370,13 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3010:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            // InternalPerspectiveDsl.g:2971:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
             loop37:
             do {
                 int alt37=2;
                 int LA37_0 = input.LA(1);
 
-                if ( (LA37_0==72) ) {
+                if ( (LA37_0==71) ) {
                     int LA37_2 = input.LA(2);
 
                     if ( (synpred8_InternalPerspectiveDsl()) ) {
@@ -8519,16 +8389,16 @@
 
                 switch (alt37) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3011:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalPerspectiveDsl.g:2972:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3011:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
-            	    // InternalPerspectiveDsl.g:3012:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    // InternalPerspectiveDsl.g:2972:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // InternalPerspectiveDsl.g:2973:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3022:5: ( () ( ( ruleOpOr ) ) )
-            	    // InternalPerspectiveDsl.g:3023:6: () ( ( ruleOpOr ) )
+            	    // InternalPerspectiveDsl.g:2983:5: ( () ( ( ruleOpOr ) ) )
+            	    // InternalPerspectiveDsl.g:2984:6: () ( ( ruleOpOr ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3023:6: ()
-            	    // InternalPerspectiveDsl.g:3024:7: 
+            	    // InternalPerspectiveDsl.g:2984:6: ()
+            	    // InternalPerspectiveDsl.g:2985:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8540,11 +8410,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3030:6: ( ( ruleOpOr ) )
-            	    // InternalPerspectiveDsl.g:3031:7: ( ruleOpOr )
+            	    // InternalPerspectiveDsl.g:2991:6: ( ( ruleOpOr ) )
+            	    // InternalPerspectiveDsl.g:2992:7: ( ruleOpOr )
             	    {
-            	    // InternalPerspectiveDsl.g:3031:7: ( ruleOpOr )
-            	    // InternalPerspectiveDsl.g:3032:8: ruleOpOr
+            	    // InternalPerspectiveDsl.g:2992:7: ( ruleOpOr )
+            	    // InternalPerspectiveDsl.g:2993:8: ruleOpOr
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8580,11 +8450,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3048:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
-            	    // InternalPerspectiveDsl.g:3049:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalPerspectiveDsl.g:3009:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalPerspectiveDsl.g:3010:5: (lv_rightOperand_3_0= ruleXAndExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3049:5: (lv_rightOperand_3_0= ruleXAndExpression )
-            	    // InternalPerspectiveDsl.g:3050:6: lv_rightOperand_3_0= ruleXAndExpression
+            	    // InternalPerspectiveDsl.g:3010:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalPerspectiveDsl.g:3011:6: lv_rightOperand_3_0= ruleXAndExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8649,7 +8519,7 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalPerspectiveDsl.g:3072:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    // InternalPerspectiveDsl.g:3033:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
     public final String entryRuleOpOr() throws RecognitionException {
         String current = null;
 
@@ -8657,8 +8527,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3072:44: (iv_ruleOpOr= ruleOpOr EOF )
-            // InternalPerspectiveDsl.g:3073:2: iv_ruleOpOr= ruleOpOr EOF
+            // InternalPerspectiveDsl.g:3033:44: (iv_ruleOpOr= ruleOpOr EOF )
+            // InternalPerspectiveDsl.g:3034:2: iv_ruleOpOr= ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOrRule()); 
@@ -8689,7 +8559,7 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalPerspectiveDsl.g:3079:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    // InternalPerspectiveDsl.g:3040:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
     public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8699,10 +8569,10 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3085:2: (kw= '||' )
-            // InternalPerspectiveDsl.g:3086:2: kw= '||'
+            // InternalPerspectiveDsl.g:3046:2: (kw= '||' )
+            // InternalPerspectiveDsl.g:3047:2: kw= '||'
             {
-            kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -8731,7 +8601,7 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalPerspectiveDsl.g:3094:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    // InternalPerspectiveDsl.g:3055:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
     public final EObject entryRuleXAndExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8739,8 +8609,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3094:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
-            // InternalPerspectiveDsl.g:3095:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            // InternalPerspectiveDsl.g:3055:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // InternalPerspectiveDsl.g:3056:2: iv_ruleXAndExpression= ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAndExpressionRule()); 
@@ -8771,7 +8641,7 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalPerspectiveDsl.g:3101:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3062:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
     public final EObject ruleXAndExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8784,11 +8654,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3107:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3108:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3068:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3069:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3108:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3109:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            // InternalPerspectiveDsl.g:3069:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3070:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -8806,13 +8676,13 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3117:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            // InternalPerspectiveDsl.g:3078:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
             loop38:
             do {
                 int alt38=2;
                 int LA38_0 = input.LA(1);
 
-                if ( (LA38_0==73) ) {
+                if ( (LA38_0==72) ) {
                     int LA38_2 = input.LA(2);
 
                     if ( (synpred9_InternalPerspectiveDsl()) ) {
@@ -8825,16 +8695,16 @@
 
                 switch (alt38) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3118:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalPerspectiveDsl.g:3079:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3118:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
-            	    // InternalPerspectiveDsl.g:3119:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    // InternalPerspectiveDsl.g:3079:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // InternalPerspectiveDsl.g:3080:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3129:5: ( () ( ( ruleOpAnd ) ) )
-            	    // InternalPerspectiveDsl.g:3130:6: () ( ( ruleOpAnd ) )
+            	    // InternalPerspectiveDsl.g:3090:5: ( () ( ( ruleOpAnd ) ) )
+            	    // InternalPerspectiveDsl.g:3091:6: () ( ( ruleOpAnd ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3130:6: ()
-            	    // InternalPerspectiveDsl.g:3131:7: 
+            	    // InternalPerspectiveDsl.g:3091:6: ()
+            	    // InternalPerspectiveDsl.g:3092:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8846,11 +8716,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3137:6: ( ( ruleOpAnd ) )
-            	    // InternalPerspectiveDsl.g:3138:7: ( ruleOpAnd )
+            	    // InternalPerspectiveDsl.g:3098:6: ( ( ruleOpAnd ) )
+            	    // InternalPerspectiveDsl.g:3099:7: ( ruleOpAnd )
             	    {
-            	    // InternalPerspectiveDsl.g:3138:7: ( ruleOpAnd )
-            	    // InternalPerspectiveDsl.g:3139:8: ruleOpAnd
+            	    // InternalPerspectiveDsl.g:3099:7: ( ruleOpAnd )
+            	    // InternalPerspectiveDsl.g:3100:8: ruleOpAnd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8886,11 +8756,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3155:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    // InternalPerspectiveDsl.g:3156:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalPerspectiveDsl.g:3116:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalPerspectiveDsl.g:3117:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3156:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    // InternalPerspectiveDsl.g:3157:6: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    // InternalPerspectiveDsl.g:3117:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalPerspectiveDsl.g:3118:6: lv_rightOperand_3_0= ruleXEqualityExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8955,7 +8825,7 @@
 
 
     // $ANTLR start "entryRuleOpAnd"
-    // InternalPerspectiveDsl.g:3179:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    // InternalPerspectiveDsl.g:3140:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
     public final String entryRuleOpAnd() throws RecognitionException {
         String current = null;
 
@@ -8963,8 +8833,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3179:45: (iv_ruleOpAnd= ruleOpAnd EOF )
-            // InternalPerspectiveDsl.g:3180:2: iv_ruleOpAnd= ruleOpAnd EOF
+            // InternalPerspectiveDsl.g:3140:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // InternalPerspectiveDsl.g:3141:2: iv_ruleOpAnd= ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpAndRule()); 
@@ -8995,7 +8865,7 @@
 
 
     // $ANTLR start "ruleOpAnd"
-    // InternalPerspectiveDsl.g:3186:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    // InternalPerspectiveDsl.g:3147:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
     public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9005,10 +8875,10 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3192:2: (kw= '&&' )
-            // InternalPerspectiveDsl.g:3193:2: kw= '&&'
+            // InternalPerspectiveDsl.g:3153:2: (kw= '&&' )
+            // InternalPerspectiveDsl.g:3154:2: kw= '&&'
             {
-            kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -9037,7 +8907,7 @@
 
 
     // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalPerspectiveDsl.g:3201:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    // InternalPerspectiveDsl.g:3162:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
     public final EObject entryRuleXEqualityExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9045,8 +8915,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3201:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
-            // InternalPerspectiveDsl.g:3202:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            // InternalPerspectiveDsl.g:3162:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // InternalPerspectiveDsl.g:3163:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
@@ -9077,7 +8947,7 @@
 
 
     // $ANTLR start "ruleXEqualityExpression"
-    // InternalPerspectiveDsl.g:3208:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3169:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
     public final EObject ruleXEqualityExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9090,11 +8960,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3214:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3215:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3175:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3176:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3215:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3216:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            // InternalPerspectiveDsl.g:3176:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3177:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -9112,12 +8982,12 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3224:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            // InternalPerspectiveDsl.g:3185:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
             loop39:
             do {
                 int alt39=2;
                 switch ( input.LA(1) ) {
-                case 74:
+                case 73:
                     {
                     int LA39_2 = input.LA(2);
 
@@ -9128,7 +8998,7 @@
 
                     }
                     break;
-                case 75:
+                case 74:
                     {
                     int LA39_3 = input.LA(2);
 
@@ -9139,7 +9009,7 @@
 
                     }
                     break;
-                case 76:
+                case 75:
                     {
                     int LA39_4 = input.LA(2);
 
@@ -9150,7 +9020,7 @@
 
                     }
                     break;
-                case 77:
+                case 76:
                     {
                     int LA39_5 = input.LA(2);
 
@@ -9166,16 +9036,16 @@
 
                 switch (alt39) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3225:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalPerspectiveDsl.g:3186:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3225:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
-            	    // InternalPerspectiveDsl.g:3226:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    // InternalPerspectiveDsl.g:3186:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // InternalPerspectiveDsl.g:3187:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3236:5: ( () ( ( ruleOpEquality ) ) )
-            	    // InternalPerspectiveDsl.g:3237:6: () ( ( ruleOpEquality ) )
+            	    // InternalPerspectiveDsl.g:3197:5: ( () ( ( ruleOpEquality ) ) )
+            	    // InternalPerspectiveDsl.g:3198:6: () ( ( ruleOpEquality ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3237:6: ()
-            	    // InternalPerspectiveDsl.g:3238:7: 
+            	    // InternalPerspectiveDsl.g:3198:6: ()
+            	    // InternalPerspectiveDsl.g:3199:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9187,11 +9057,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3244:6: ( ( ruleOpEquality ) )
-            	    // InternalPerspectiveDsl.g:3245:7: ( ruleOpEquality )
+            	    // InternalPerspectiveDsl.g:3205:6: ( ( ruleOpEquality ) )
+            	    // InternalPerspectiveDsl.g:3206:7: ( ruleOpEquality )
             	    {
-            	    // InternalPerspectiveDsl.g:3245:7: ( ruleOpEquality )
-            	    // InternalPerspectiveDsl.g:3246:8: ruleOpEquality
+            	    // InternalPerspectiveDsl.g:3206:7: ( ruleOpEquality )
+            	    // InternalPerspectiveDsl.g:3207:8: ruleOpEquality
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9227,11 +9097,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3262:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    // InternalPerspectiveDsl.g:3263:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalPerspectiveDsl.g:3223:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalPerspectiveDsl.g:3224:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3263:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    // InternalPerspectiveDsl.g:3264:6: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    // InternalPerspectiveDsl.g:3224:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalPerspectiveDsl.g:3225:6: lv_rightOperand_3_0= ruleXRelationalExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9296,7 +9166,7 @@
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalPerspectiveDsl.g:3286:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    // InternalPerspectiveDsl.g:3247:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
     public final String entryRuleOpEquality() throws RecognitionException {
         String current = null;
 
@@ -9304,8 +9174,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3286:50: (iv_ruleOpEquality= ruleOpEquality EOF )
-            // InternalPerspectiveDsl.g:3287:2: iv_ruleOpEquality= ruleOpEquality EOF
+            // InternalPerspectiveDsl.g:3247:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // InternalPerspectiveDsl.g:3248:2: iv_ruleOpEquality= ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpEqualityRule()); 
@@ -9336,7 +9206,7 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalPerspectiveDsl.g:3293:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    // InternalPerspectiveDsl.g:3254:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
     public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9346,28 +9216,28 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3299:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
-            // InternalPerspectiveDsl.g:3300:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            // InternalPerspectiveDsl.g:3260:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // InternalPerspectiveDsl.g:3261:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
             {
-            // InternalPerspectiveDsl.g:3300:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            // InternalPerspectiveDsl.g:3261:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
             int alt40=4;
             switch ( input.LA(1) ) {
-            case 74:
+            case 73:
                 {
                 alt40=1;
                 }
                 break;
-            case 75:
+            case 74:
                 {
                 alt40=2;
                 }
                 break;
-            case 76:
+            case 75:
                 {
                 alt40=3;
                 }
                 break;
-            case 77:
+            case 76:
                 {
                 alt40=4;
                 }
@@ -9382,9 +9252,9 @@
 
             switch (alt40) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3301:3: kw= '=='
+                    // InternalPerspectiveDsl.g:3262:3: kw= '=='
                     {
-                    kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9395,9 +9265,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3307:3: kw= '!='
+                    // InternalPerspectiveDsl.g:3268:3: kw= '!='
                     {
-                    kw=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9408,9 +9278,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3313:3: kw= '==='
+                    // InternalPerspectiveDsl.g:3274:3: kw= '==='
                     {
-                    kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9421,9 +9291,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3319:3: kw= '!=='
+                    // InternalPerspectiveDsl.g:3280:3: kw= '!=='
                     {
-                    kw=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9458,7 +9328,7 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalPerspectiveDsl.g:3328:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    // InternalPerspectiveDsl.g:3289:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
     public final EObject entryRuleXRelationalExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9466,8 +9336,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3328:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
-            // InternalPerspectiveDsl.g:3329:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            // InternalPerspectiveDsl.g:3289:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // InternalPerspectiveDsl.g:3290:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
@@ -9498,7 +9368,7 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalPerspectiveDsl.g:3335:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3296:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
     public final EObject ruleXRelationalExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9514,11 +9384,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3341:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
-            // InternalPerspectiveDsl.g:3342:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalPerspectiveDsl.g:3302:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // InternalPerspectiveDsl.g:3303:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3342:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            // InternalPerspectiveDsl.g:3343:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            // InternalPerspectiveDsl.g:3303:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalPerspectiveDsl.g:3304:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -9536,12 +9406,12 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3351:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            // InternalPerspectiveDsl.g:3312:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
             loop41:
             do {
                 int alt41=3;
                 switch ( input.LA(1) ) {
-                case 69:
+                case 68:
                     {
                     int LA41_2 = input.LA(2);
 
@@ -9552,7 +9422,7 @@
 
                     }
                     break;
-                case 70:
+                case 69:
                     {
                     int LA41_3 = input.LA(2);
 
@@ -9563,7 +9433,7 @@
 
                     }
                     break;
-                case 78:
+                case 77:
                     {
                     int LA41_4 = input.LA(2);
 
@@ -9574,7 +9444,7 @@
 
                     }
                     break;
-                case 71:
+                case 70:
                     {
                     int LA41_5 = input.LA(2);
 
@@ -9590,19 +9460,19 @@
 
                 switch (alt41) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3352:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalPerspectiveDsl.g:3313:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3352:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    // InternalPerspectiveDsl.g:3353:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:3313:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalPerspectiveDsl.g:3314:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3353:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
-            	    // InternalPerspectiveDsl.g:3354:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    // InternalPerspectiveDsl.g:3314:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // InternalPerspectiveDsl.g:3315:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
             	    {
-            	    // InternalPerspectiveDsl.g:3360:6: ( () otherlv_2= 'instanceof' )
-            	    // InternalPerspectiveDsl.g:3361:7: () otherlv_2= 'instanceof'
+            	    // InternalPerspectiveDsl.g:3321:6: ( () otherlv_2= 'instanceof' )
+            	    // InternalPerspectiveDsl.g:3322:7: () otherlv_2= 'instanceof'
             	    {
-            	    // InternalPerspectiveDsl.g:3361:7: ()
-            	    // InternalPerspectiveDsl.g:3362:8: 
+            	    // InternalPerspectiveDsl.g:3322:7: ()
+            	    // InternalPerspectiveDsl.g:3323:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9614,7 +9484,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,78,FOLLOW_46); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,77,FOLLOW_46); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
@@ -9626,11 +9496,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3374:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalPerspectiveDsl.g:3375:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:3335:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:3336:6: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalPerspectiveDsl.g:3375:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalPerspectiveDsl.g:3376:7: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalPerspectiveDsl.g:3336:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:3337:7: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9668,19 +9538,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalPerspectiveDsl.g:3395:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalPerspectiveDsl.g:3356:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3395:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    // InternalPerspectiveDsl.g:3396:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalPerspectiveDsl.g:3356:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalPerspectiveDsl.g:3357:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3396:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
-            	    // InternalPerspectiveDsl.g:3397:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    // InternalPerspectiveDsl.g:3357:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // InternalPerspectiveDsl.g:3358:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3407:6: ( () ( ( ruleOpCompare ) ) )
-            	    // InternalPerspectiveDsl.g:3408:7: () ( ( ruleOpCompare ) )
+            	    // InternalPerspectiveDsl.g:3368:6: ( () ( ( ruleOpCompare ) ) )
+            	    // InternalPerspectiveDsl.g:3369:7: () ( ( ruleOpCompare ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3408:7: ()
-            	    // InternalPerspectiveDsl.g:3409:8: 
+            	    // InternalPerspectiveDsl.g:3369:7: ()
+            	    // InternalPerspectiveDsl.g:3370:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9692,11 +9562,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3415:7: ( ( ruleOpCompare ) )
-            	    // InternalPerspectiveDsl.g:3416:8: ( ruleOpCompare )
+            	    // InternalPerspectiveDsl.g:3376:7: ( ( ruleOpCompare ) )
+            	    // InternalPerspectiveDsl.g:3377:8: ( ruleOpCompare )
             	    {
-            	    // InternalPerspectiveDsl.g:3416:8: ( ruleOpCompare )
-            	    // InternalPerspectiveDsl.g:3417:9: ruleOpCompare
+            	    // InternalPerspectiveDsl.g:3377:8: ( ruleOpCompare )
+            	    // InternalPerspectiveDsl.g:3378:9: ruleOpCompare
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9732,11 +9602,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3433:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    // InternalPerspectiveDsl.g:3434:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalPerspectiveDsl.g:3394:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalPerspectiveDsl.g:3395:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3434:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    // InternalPerspectiveDsl.g:3435:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    // InternalPerspectiveDsl.g:3395:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalPerspectiveDsl.g:3396:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9804,7 +9674,7 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalPerspectiveDsl.g:3458:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    // InternalPerspectiveDsl.g:3419:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
     public final String entryRuleOpCompare() throws RecognitionException {
         String current = null;
 
@@ -9812,8 +9682,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3458:49: (iv_ruleOpCompare= ruleOpCompare EOF )
-            // InternalPerspectiveDsl.g:3459:2: iv_ruleOpCompare= ruleOpCompare EOF
+            // InternalPerspectiveDsl.g:3419:49: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // InternalPerspectiveDsl.g:3420:2: iv_ruleOpCompare= ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpCompareRule()); 
@@ -9844,7 +9714,7 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalPerspectiveDsl.g:3465:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    // InternalPerspectiveDsl.g:3426:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
     public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9854,27 +9724,27 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3471:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
-            // InternalPerspectiveDsl.g:3472:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            // InternalPerspectiveDsl.g:3432:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // InternalPerspectiveDsl.g:3433:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
             {
-            // InternalPerspectiveDsl.g:3472:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            // InternalPerspectiveDsl.g:3433:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
             int alt42=4;
             switch ( input.LA(1) ) {
-            case 71:
+            case 70:
                 {
                 alt42=1;
                 }
                 break;
-            case 69:
+            case 68:
                 {
                 int LA42_2 = input.LA(2);
 
-                if ( (LA42_2==60) ) {
-                    alt42=2;
-                }
-                else if ( (LA42_2==EOF||(LA42_2>=RULE_ID && LA42_2<=RULE_DECIMAL)||LA42_2==14||(LA42_2>=50 && LA42_2<=52)||LA42_2==57||(LA42_2>=61 && LA42_2<=62)||LA42_2==69||(LA42_2>=85 && LA42_2<=86)||LA42_2==90||LA42_2==98||LA42_2==100||(LA42_2>=104 && LA42_2<=106)||(LA42_2>=109 && LA42_2<=118)||LA42_2==120) ) {
+                if ( (LA42_2==EOF||(LA42_2>=RULE_ID && LA42_2<=RULE_DECIMAL)||LA42_2==14||(LA42_2>=49 && LA42_2<=51)||LA42_2==56||(LA42_2>=60 && LA42_2<=61)||LA42_2==68||(LA42_2>=84 && LA42_2<=85)||LA42_2==89||LA42_2==97||LA42_2==99||(LA42_2>=103 && LA42_2<=105)||(LA42_2>=108 && LA42_2<=117)||LA42_2==119) ) {
                     alt42=4;
                 }
+                else if ( (LA42_2==59) ) {
+                    alt42=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
@@ -9884,7 +9754,7 @@
                 }
                 }
                 break;
-            case 70:
+            case 69:
                 {
                 alt42=3;
                 }
@@ -9899,9 +9769,9 @@
 
             switch (alt42) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3473:3: kw= '>='
+                    // InternalPerspectiveDsl.g:3434:3: kw= '>='
                     {
-                    kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9912,19 +9782,19 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3479:3: (kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:3440:3: (kw= '<' kw= '=' )
                     {
-                    // InternalPerspectiveDsl.g:3479:3: (kw= '<' kw= '=' )
-                    // InternalPerspectiveDsl.g:3480:4: kw= '<' kw= '='
+                    // InternalPerspectiveDsl.g:3440:3: (kw= '<' kw= '=' )
+                    // InternalPerspectiveDsl.g:3441:4: kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,69,FOLLOW_32); if (state.failed) return current;
+                    kw=(Token)match(input,68,FOLLOW_32); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -9938,9 +9808,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3492:3: kw= '>'
+                    // InternalPerspectiveDsl.g:3453:3: kw= '>'
                     {
-                    kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9951,9 +9821,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3498:3: kw= '<'
+                    // InternalPerspectiveDsl.g:3459:3: kw= '<'
                     {
-                    kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9988,7 +9858,7 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalPerspectiveDsl.g:3507:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    // InternalPerspectiveDsl.g:3468:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
     public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9996,8 +9866,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3507:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
-            // InternalPerspectiveDsl.g:3508:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            // InternalPerspectiveDsl.g:3468:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // InternalPerspectiveDsl.g:3469:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -10028,7 +9898,7 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalPerspectiveDsl.g:3514:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3475:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
     public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10041,11 +9911,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3520:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3521:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3481:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3482:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3521:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3522:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            // InternalPerspectiveDsl.g:3482:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3483:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -10063,23 +9933,23 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3530:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            // InternalPerspectiveDsl.g:3491:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
             loop43:
             do {
                 int alt43=2;
                 alt43 = dfa43.predict(input);
                 switch (alt43) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3531:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalPerspectiveDsl.g:3492:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3531:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
-            	    // InternalPerspectiveDsl.g:3532:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    // InternalPerspectiveDsl.g:3492:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // InternalPerspectiveDsl.g:3493:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3542:5: ( () ( ( ruleOpOther ) ) )
-            	    // InternalPerspectiveDsl.g:3543:6: () ( ( ruleOpOther ) )
+            	    // InternalPerspectiveDsl.g:3503:5: ( () ( ( ruleOpOther ) ) )
+            	    // InternalPerspectiveDsl.g:3504:6: () ( ( ruleOpOther ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3543:6: ()
-            	    // InternalPerspectiveDsl.g:3544:7: 
+            	    // InternalPerspectiveDsl.g:3504:6: ()
+            	    // InternalPerspectiveDsl.g:3505:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10091,11 +9961,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3550:6: ( ( ruleOpOther ) )
-            	    // InternalPerspectiveDsl.g:3551:7: ( ruleOpOther )
+            	    // InternalPerspectiveDsl.g:3511:6: ( ( ruleOpOther ) )
+            	    // InternalPerspectiveDsl.g:3512:7: ( ruleOpOther )
             	    {
-            	    // InternalPerspectiveDsl.g:3551:7: ( ruleOpOther )
-            	    // InternalPerspectiveDsl.g:3552:8: ruleOpOther
+            	    // InternalPerspectiveDsl.g:3512:7: ( ruleOpOther )
+            	    // InternalPerspectiveDsl.g:3513:8: ruleOpOther
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10131,11 +10001,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3568:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
-            	    // InternalPerspectiveDsl.g:3569:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalPerspectiveDsl.g:3529:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalPerspectiveDsl.g:3530:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3569:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
-            	    // InternalPerspectiveDsl.g:3570:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    // InternalPerspectiveDsl.g:3530:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalPerspectiveDsl.g:3531:6: lv_rightOperand_3_0= ruleXAdditiveExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10200,7 +10070,7 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalPerspectiveDsl.g:3592:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    // InternalPerspectiveDsl.g:3553:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
     public final String entryRuleOpOther() throws RecognitionException {
         String current = null;
 
@@ -10208,8 +10078,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3592:47: (iv_ruleOpOther= ruleOpOther EOF )
-            // InternalPerspectiveDsl.g:3593:2: iv_ruleOpOther= ruleOpOther EOF
+            // InternalPerspectiveDsl.g:3553:47: (iv_ruleOpOther= ruleOpOther EOF )
+            // InternalPerspectiveDsl.g:3554:2: iv_ruleOpOther= ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOtherRule()); 
@@ -10240,7 +10110,7 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalPerspectiveDsl.g:3599:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    // InternalPerspectiveDsl.g:3560:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
     public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -10250,17 +10120,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3605:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
-            // InternalPerspectiveDsl.g:3606:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            // InternalPerspectiveDsl.g:3566:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // InternalPerspectiveDsl.g:3567:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
             {
-            // InternalPerspectiveDsl.g:3606:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            // InternalPerspectiveDsl.g:3567:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
             int alt46=9;
             alt46 = dfa46.predict(input);
             switch (alt46) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3607:3: kw= '->'
+                    // InternalPerspectiveDsl.g:3568:3: kw= '->'
                     {
-                    kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10271,9 +10141,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3613:3: kw= '..<'
+                    // InternalPerspectiveDsl.g:3574:3: kw= '..<'
                     {
-                    kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10284,19 +10154,19 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3619:3: (kw= '>' kw= '..' )
+                    // InternalPerspectiveDsl.g:3580:3: (kw= '>' kw= '..' )
                     {
-                    // InternalPerspectiveDsl.g:3619:3: (kw= '>' kw= '..' )
-                    // InternalPerspectiveDsl.g:3620:4: kw= '>' kw= '..'
+                    // InternalPerspectiveDsl.g:3580:3: (kw= '>' kw= '..' )
+                    // InternalPerspectiveDsl.g:3581:4: kw= '>' kw= '..'
                     {
-                    kw=(Token)match(input,70,FOLLOW_48); if (state.failed) return current;
+                    kw=(Token)match(input,69,FOLLOW_48); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
                       			
                     }
-                    kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -10310,9 +10180,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3632:3: kw= '..'
+                    // InternalPerspectiveDsl.g:3593:3: kw= '..'
                     {
-                    kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10323,9 +10193,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:3638:3: kw= '=>'
+                    // InternalPerspectiveDsl.g:3599:3: kw= '=>'
                     {
-                    kw=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10336,31 +10206,31 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:3644:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalPerspectiveDsl.g:3605:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
                     {
-                    // InternalPerspectiveDsl.g:3644:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
-                    // InternalPerspectiveDsl.g:3645:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    // InternalPerspectiveDsl.g:3605:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalPerspectiveDsl.g:3606:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
                     {
-                    kw=(Token)match(input,70,FOLLOW_49); if (state.failed) return current;
+                    kw=(Token)match(input,69,FOLLOW_49); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:3650:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    // InternalPerspectiveDsl.g:3611:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
                     int alt44=2;
                     int LA44_0 = input.LA(1);
 
-                    if ( (LA44_0==70) ) {
+                    if ( (LA44_0==69) ) {
                         int LA44_1 = input.LA(2);
 
-                        if ( (LA44_1==EOF||(LA44_1>=RULE_ID && LA44_1<=RULE_DECIMAL)||LA44_1==14||(LA44_1>=50 && LA44_1<=52)||LA44_1==57||(LA44_1>=61 && LA44_1<=62)||LA44_1==69||(LA44_1>=85 && LA44_1<=86)||LA44_1==90||LA44_1==98||LA44_1==100||(LA44_1>=104 && LA44_1<=106)||(LA44_1>=109 && LA44_1<=118)||LA44_1==120) ) {
-                            alt44=2;
-                        }
-                        else if ( (LA44_1==70) && (synpred14_InternalPerspectiveDsl())) {
+                        if ( (LA44_1==69) && (synpred14_InternalPerspectiveDsl())) {
                             alt44=1;
                         }
+                        else if ( (LA44_1==EOF||(LA44_1>=RULE_ID && LA44_1<=RULE_DECIMAL)||LA44_1==14||(LA44_1>=49 && LA44_1<=51)||LA44_1==56||(LA44_1>=60 && LA44_1<=61)||LA44_1==68||(LA44_1>=84 && LA44_1<=85)||LA44_1==89||LA44_1==97||LA44_1==99||(LA44_1>=103 && LA44_1<=105)||(LA44_1>=108 && LA44_1<=117)||LA44_1==119) ) {
+                            alt44=2;
+                        }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
@@ -10378,22 +10248,22 @@
                     }
                     switch (alt44) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:3651:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalPerspectiveDsl.g:3612:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
                             {
-                            // InternalPerspectiveDsl.g:3651:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
-                            // InternalPerspectiveDsl.g:3652:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            // InternalPerspectiveDsl.g:3612:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalPerspectiveDsl.g:3613:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
                             {
-                            // InternalPerspectiveDsl.g:3657:6: (kw= '>' kw= '>' )
-                            // InternalPerspectiveDsl.g:3658:7: kw= '>' kw= '>'
+                            // InternalPerspectiveDsl.g:3618:6: (kw= '>' kw= '>' )
+                            // InternalPerspectiveDsl.g:3619:7: kw= '>' kw= '>'
                             {
-                            kw=(Token)match(input,70,FOLLOW_49); if (state.failed) return current;
+                            kw=(Token)match(input,69,FOLLOW_49); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
                               							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
                               						
                             }
-                            kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -10410,9 +10280,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:3671:5: kw= '>'
+                            // InternalPerspectiveDsl.g:3632:5: kw= '>'
                             {
-                            kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -10432,23 +10302,23 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:3679:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalPerspectiveDsl.g:3640:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
                     {
-                    // InternalPerspectiveDsl.g:3679:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
-                    // InternalPerspectiveDsl.g:3680:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    // InternalPerspectiveDsl.g:3640:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalPerspectiveDsl.g:3641:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
                     {
-                    kw=(Token)match(input,69,FOLLOW_50); if (state.failed) return current;
+                    kw=(Token)match(input,68,FOLLOW_50); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:3685:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    // InternalPerspectiveDsl.g:3646:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
                     int alt45=3;
                     int LA45_0 = input.LA(1);
 
-                    if ( (LA45_0==69) ) {
+                    if ( (LA45_0==68) ) {
                         int LA45_1 = input.LA(2);
 
                         if ( (synpred15_InternalPerspectiveDsl()) ) {
@@ -10465,7 +10335,7 @@
                             throw nvae;
                         }
                     }
-                    else if ( (LA45_0==82) ) {
+                    else if ( (LA45_0==81) ) {
                         alt45=3;
                     }
                     else {
@@ -10477,22 +10347,22 @@
                     }
                     switch (alt45) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:3686:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalPerspectiveDsl.g:3647:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
                             {
-                            // InternalPerspectiveDsl.g:3686:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
-                            // InternalPerspectiveDsl.g:3687:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            // InternalPerspectiveDsl.g:3647:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalPerspectiveDsl.g:3648:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
                             {
-                            // InternalPerspectiveDsl.g:3692:6: (kw= '<' kw= '<' )
-                            // InternalPerspectiveDsl.g:3693:7: kw= '<' kw= '<'
+                            // InternalPerspectiveDsl.g:3653:6: (kw= '<' kw= '<' )
+                            // InternalPerspectiveDsl.g:3654:7: kw= '<' kw= '<'
                             {
-                            kw=(Token)match(input,69,FOLLOW_39); if (state.failed) return current;
+                            kw=(Token)match(input,68,FOLLOW_39); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
                               							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
                               						
                             }
-                            kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -10509,9 +10379,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:3706:5: kw= '<'
+                            // InternalPerspectiveDsl.g:3667:5: kw= '<'
                             {
-                            kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -10522,9 +10392,9 @@
                             }
                             break;
                         case 3 :
-                            // InternalPerspectiveDsl.g:3712:5: kw= '=>'
+                            // InternalPerspectiveDsl.g:3673:5: kw= '=>'
                             {
-                            kw=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -10544,9 +10414,9 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:3720:3: kw= '<>'
+                    // InternalPerspectiveDsl.g:3681:3: kw= '<>'
                     {
-                    kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10557,9 +10427,9 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:3726:3: kw= '?:'
+                    // InternalPerspectiveDsl.g:3687:3: kw= '?:'
                     {
-                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10594,7 +10464,7 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalPerspectiveDsl.g:3735:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    // InternalPerspectiveDsl.g:3696:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
     public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10602,8 +10472,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3735:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
-            // InternalPerspectiveDsl.g:3736:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            // InternalPerspectiveDsl.g:3696:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // InternalPerspectiveDsl.g:3697:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
@@ -10634,7 +10504,7 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalPerspectiveDsl.g:3742:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3703:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
     public final EObject ruleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10647,11 +10517,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3748:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
-            // InternalPerspectiveDsl.g:3749:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3709:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // InternalPerspectiveDsl.g:3710:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3749:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
-            // InternalPerspectiveDsl.g:3750:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            // InternalPerspectiveDsl.g:3710:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalPerspectiveDsl.g:3711:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -10669,13 +10539,13 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3758:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            // InternalPerspectiveDsl.g:3719:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
             loop47:
             do {
                 int alt47=2;
                 int LA47_0 = input.LA(1);
 
-                if ( (LA47_0==85) ) {
+                if ( (LA47_0==84) ) {
                     int LA47_2 = input.LA(2);
 
                     if ( (synpred16_InternalPerspectiveDsl()) ) {
@@ -10684,7 +10554,7 @@
 
 
                 }
-                else if ( (LA47_0==86) ) {
+                else if ( (LA47_0==85) ) {
                     int LA47_3 = input.LA(2);
 
                     if ( (synpred16_InternalPerspectiveDsl()) ) {
@@ -10697,16 +10567,16 @@
 
                 switch (alt47) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3759:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalPerspectiveDsl.g:3720:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3759:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
-            	    // InternalPerspectiveDsl.g:3760:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    // InternalPerspectiveDsl.g:3720:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // InternalPerspectiveDsl.g:3721:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3770:5: ( () ( ( ruleOpAdd ) ) )
-            	    // InternalPerspectiveDsl.g:3771:6: () ( ( ruleOpAdd ) )
+            	    // InternalPerspectiveDsl.g:3731:5: ( () ( ( ruleOpAdd ) ) )
+            	    // InternalPerspectiveDsl.g:3732:6: () ( ( ruleOpAdd ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3771:6: ()
-            	    // InternalPerspectiveDsl.g:3772:7: 
+            	    // InternalPerspectiveDsl.g:3732:6: ()
+            	    // InternalPerspectiveDsl.g:3733:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10718,11 +10588,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3778:6: ( ( ruleOpAdd ) )
-            	    // InternalPerspectiveDsl.g:3779:7: ( ruleOpAdd )
+            	    // InternalPerspectiveDsl.g:3739:6: ( ( ruleOpAdd ) )
+            	    // InternalPerspectiveDsl.g:3740:7: ( ruleOpAdd )
             	    {
-            	    // InternalPerspectiveDsl.g:3779:7: ( ruleOpAdd )
-            	    // InternalPerspectiveDsl.g:3780:8: ruleOpAdd
+            	    // InternalPerspectiveDsl.g:3740:7: ( ruleOpAdd )
+            	    // InternalPerspectiveDsl.g:3741:8: ruleOpAdd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10758,11 +10628,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3796:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
-            	    // InternalPerspectiveDsl.g:3797:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalPerspectiveDsl.g:3757:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalPerspectiveDsl.g:3758:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
             	    {
-            	    // InternalPerspectiveDsl.g:3797:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
-            	    // InternalPerspectiveDsl.g:3798:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    // InternalPerspectiveDsl.g:3758:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalPerspectiveDsl.g:3759:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10827,7 +10697,7 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalPerspectiveDsl.g:3820:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    // InternalPerspectiveDsl.g:3781:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
     public final String entryRuleOpAdd() throws RecognitionException {
         String current = null;
 
@@ -10835,8 +10705,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3820:45: (iv_ruleOpAdd= ruleOpAdd EOF )
-            // InternalPerspectiveDsl.g:3821:2: iv_ruleOpAdd= ruleOpAdd EOF
+            // InternalPerspectiveDsl.g:3781:45: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // InternalPerspectiveDsl.g:3782:2: iv_ruleOpAdd= ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpAddRule()); 
@@ -10867,7 +10737,7 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalPerspectiveDsl.g:3827:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    // InternalPerspectiveDsl.g:3788:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
     public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -10877,17 +10747,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3833:2: ( (kw= '+' | kw= '-' ) )
-            // InternalPerspectiveDsl.g:3834:2: (kw= '+' | kw= '-' )
+            // InternalPerspectiveDsl.g:3794:2: ( (kw= '+' | kw= '-' ) )
+            // InternalPerspectiveDsl.g:3795:2: (kw= '+' | kw= '-' )
             {
-            // InternalPerspectiveDsl.g:3834:2: (kw= '+' | kw= '-' )
+            // InternalPerspectiveDsl.g:3795:2: (kw= '+' | kw= '-' )
             int alt48=2;
             int LA48_0 = input.LA(1);
 
-            if ( (LA48_0==85) ) {
+            if ( (LA48_0==84) ) {
                 alt48=1;
             }
-            else if ( (LA48_0==86) ) {
+            else if ( (LA48_0==85) ) {
                 alt48=2;
             }
             else {
@@ -10899,9 +10769,9 @@
             }
             switch (alt48) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3835:3: kw= '+'
+                    // InternalPerspectiveDsl.g:3796:3: kw= '+'
                     {
-                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10912,9 +10782,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3841:3: kw= '-'
+                    // InternalPerspectiveDsl.g:3802:3: kw= '-'
                     {
-                    kw=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10949,7 +10819,7 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalPerspectiveDsl.g:3850:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    // InternalPerspectiveDsl.g:3811:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
     public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10957,8 +10827,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3850:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
-            // InternalPerspectiveDsl.g:3851:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            // InternalPerspectiveDsl.g:3811:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // InternalPerspectiveDsl.g:3812:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -10989,7 +10859,7 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalPerspectiveDsl.g:3857:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+    // InternalPerspectiveDsl.g:3818:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
     public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11002,11 +10872,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3863:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
-            // InternalPerspectiveDsl.g:3864:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalPerspectiveDsl.g:3824:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // InternalPerspectiveDsl.g:3825:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
             {
-            // InternalPerspectiveDsl.g:3864:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            // InternalPerspectiveDsl.g:3865:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            // InternalPerspectiveDsl.g:3825:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalPerspectiveDsl.g:3826:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -11024,12 +10894,12 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:3873:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            // InternalPerspectiveDsl.g:3834:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
             loop49:
             do {
                 int alt49=2;
                 switch ( input.LA(1) ) {
-                case 53:
+                case 52:
                     {
                     int LA49_2 = input.LA(2);
 
@@ -11040,7 +10910,7 @@
 
                     }
                     break;
-                case 87:
+                case 86:
                     {
                     int LA49_3 = input.LA(2);
 
@@ -11051,7 +10921,7 @@
 
                     }
                     break;
-                case 88:
+                case 87:
                     {
                     int LA49_4 = input.LA(2);
 
@@ -11062,7 +10932,7 @@
 
                     }
                     break;
-                case 89:
+                case 88:
                     {
                     int LA49_5 = input.LA(2);
 
@@ -11078,16 +10948,16 @@
 
                 switch (alt49) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:3874:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalPerspectiveDsl.g:3835:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3874:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
-            	    // InternalPerspectiveDsl.g:3875:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    // InternalPerspectiveDsl.g:3835:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // InternalPerspectiveDsl.g:3836:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3885:5: ( () ( ( ruleOpMulti ) ) )
-            	    // InternalPerspectiveDsl.g:3886:6: () ( ( ruleOpMulti ) )
+            	    // InternalPerspectiveDsl.g:3846:5: ( () ( ( ruleOpMulti ) ) )
+            	    // InternalPerspectiveDsl.g:3847:6: () ( ( ruleOpMulti ) )
             	    {
-            	    // InternalPerspectiveDsl.g:3886:6: ()
-            	    // InternalPerspectiveDsl.g:3887:7: 
+            	    // InternalPerspectiveDsl.g:3847:6: ()
+            	    // InternalPerspectiveDsl.g:3848:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11099,11 +10969,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3893:6: ( ( ruleOpMulti ) )
-            	    // InternalPerspectiveDsl.g:3894:7: ( ruleOpMulti )
+            	    // InternalPerspectiveDsl.g:3854:6: ( ( ruleOpMulti ) )
+            	    // InternalPerspectiveDsl.g:3855:7: ( ruleOpMulti )
             	    {
-            	    // InternalPerspectiveDsl.g:3894:7: ( ruleOpMulti )
-            	    // InternalPerspectiveDsl.g:3895:8: ruleOpMulti
+            	    // InternalPerspectiveDsl.g:3855:7: ( ruleOpMulti )
+            	    // InternalPerspectiveDsl.g:3856:8: ruleOpMulti
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11139,11 +11009,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:3911:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    // InternalPerspectiveDsl.g:3912:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalPerspectiveDsl.g:3872:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalPerspectiveDsl.g:3873:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
             	    {
-            	    // InternalPerspectiveDsl.g:3912:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    // InternalPerspectiveDsl.g:3913:6: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    // InternalPerspectiveDsl.g:3873:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalPerspectiveDsl.g:3874:6: lv_rightOperand_3_0= ruleXUnaryOperation
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11208,7 +11078,7 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalPerspectiveDsl.g:3935:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    // InternalPerspectiveDsl.g:3896:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
     public final String entryRuleOpMulti() throws RecognitionException {
         String current = null;
 
@@ -11216,8 +11086,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3935:47: (iv_ruleOpMulti= ruleOpMulti EOF )
-            // InternalPerspectiveDsl.g:3936:2: iv_ruleOpMulti= ruleOpMulti EOF
+            // InternalPerspectiveDsl.g:3896:47: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // InternalPerspectiveDsl.g:3897:2: iv_ruleOpMulti= ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiRule()); 
@@ -11248,7 +11118,7 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalPerspectiveDsl.g:3942:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    // InternalPerspectiveDsl.g:3903:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
     public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -11258,28 +11128,28 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3948:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
-            // InternalPerspectiveDsl.g:3949:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            // InternalPerspectiveDsl.g:3909:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // InternalPerspectiveDsl.g:3910:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
             {
-            // InternalPerspectiveDsl.g:3949:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            // InternalPerspectiveDsl.g:3910:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
             int alt50=4;
             switch ( input.LA(1) ) {
-            case 53:
+            case 52:
                 {
                 alt50=1;
                 }
                 break;
-            case 87:
+            case 86:
                 {
                 alt50=2;
                 }
                 break;
-            case 88:
+            case 87:
                 {
                 alt50=3;
                 }
                 break;
-            case 89:
+            case 88:
                 {
                 alt50=4;
                 }
@@ -11294,9 +11164,9 @@
 
             switch (alt50) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3950:3: kw= '*'
+                    // InternalPerspectiveDsl.g:3911:3: kw= '*'
                     {
-                    kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11307,9 +11177,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:3956:3: kw= '**'
+                    // InternalPerspectiveDsl.g:3917:3: kw= '**'
                     {
-                    kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11320,9 +11190,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:3962:3: kw= '/'
+                    // InternalPerspectiveDsl.g:3923:3: kw= '/'
                     {
-                    kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11333,9 +11203,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:3968:3: kw= '%'
+                    // InternalPerspectiveDsl.g:3929:3: kw= '%'
                     {
-                    kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11370,7 +11240,7 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalPerspectiveDsl.g:3977:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    // InternalPerspectiveDsl.g:3938:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
     public final EObject entryRuleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11378,8 +11248,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:3977:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
-            // InternalPerspectiveDsl.g:3978:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            // InternalPerspectiveDsl.g:3938:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // InternalPerspectiveDsl.g:3939:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
@@ -11410,7 +11280,7 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalPerspectiveDsl.g:3984:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    // InternalPerspectiveDsl.g:3945:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
     public final EObject ruleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11423,17 +11293,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:3990:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
-            // InternalPerspectiveDsl.g:3991:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            // InternalPerspectiveDsl.g:3951:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // InternalPerspectiveDsl.g:3952:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
             {
-            // InternalPerspectiveDsl.g:3991:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            // InternalPerspectiveDsl.g:3952:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
             int alt51=2;
             int LA51_0 = input.LA(1);
 
-            if ( ((LA51_0>=85 && LA51_0<=86)||LA51_0==90) ) {
+            if ( ((LA51_0>=84 && LA51_0<=85)||LA51_0==89) ) {
                 alt51=1;
             }
-            else if ( ((LA51_0>=RULE_ID && LA51_0<=RULE_DECIMAL)||LA51_0==14||(LA51_0>=50 && LA51_0<=52)||LA51_0==57||(LA51_0>=61 && LA51_0<=62)||LA51_0==69||LA51_0==98||LA51_0==100||(LA51_0>=104 && LA51_0<=106)||(LA51_0>=109 && LA51_0<=118)||LA51_0==120) ) {
+            else if ( ((LA51_0>=RULE_ID && LA51_0<=RULE_DECIMAL)||LA51_0==14||(LA51_0>=49 && LA51_0<=51)||LA51_0==56||(LA51_0>=60 && LA51_0<=61)||LA51_0==68||LA51_0==97||LA51_0==99||(LA51_0>=103 && LA51_0<=105)||(LA51_0>=108 && LA51_0<=117)||LA51_0==119) ) {
                 alt51=2;
             }
             else {
@@ -11445,13 +11315,13 @@
             }
             switch (alt51) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:3992:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalPerspectiveDsl.g:3953:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
                     {
-                    // InternalPerspectiveDsl.g:3992:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
-                    // InternalPerspectiveDsl.g:3993:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalPerspectiveDsl.g:3953:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalPerspectiveDsl.g:3954:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
                     {
-                    // InternalPerspectiveDsl.g:3993:4: ()
-                    // InternalPerspectiveDsl.g:3994:5: 
+                    // InternalPerspectiveDsl.g:3954:4: ()
+                    // InternalPerspectiveDsl.g:3955:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11463,11 +11333,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:4000:4: ( ( ruleOpUnary ) )
-                    // InternalPerspectiveDsl.g:4001:5: ( ruleOpUnary )
+                    // InternalPerspectiveDsl.g:3961:4: ( ( ruleOpUnary ) )
+                    // InternalPerspectiveDsl.g:3962:5: ( ruleOpUnary )
                     {
-                    // InternalPerspectiveDsl.g:4001:5: ( ruleOpUnary )
-                    // InternalPerspectiveDsl.g:4002:6: ruleOpUnary
+                    // InternalPerspectiveDsl.g:3962:5: ( ruleOpUnary )
+                    // InternalPerspectiveDsl.g:3963:6: ruleOpUnary
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11497,11 +11367,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:4016:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
-                    // InternalPerspectiveDsl.g:4017:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalPerspectiveDsl.g:3977:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalPerspectiveDsl.g:3978:5: (lv_operand_2_0= ruleXUnaryOperation )
                     {
-                    // InternalPerspectiveDsl.g:4017:5: (lv_operand_2_0= ruleXUnaryOperation )
-                    // InternalPerspectiveDsl.g:4018:6: lv_operand_2_0= ruleXUnaryOperation
+                    // InternalPerspectiveDsl.g:3978:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalPerspectiveDsl.g:3979:6: lv_operand_2_0= ruleXUnaryOperation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11539,7 +11409,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4037:3: this_XCastedExpression_3= ruleXCastedExpression
+                    // InternalPerspectiveDsl.g:3998:3: this_XCastedExpression_3= ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11585,7 +11455,7 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalPerspectiveDsl.g:4049:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    // InternalPerspectiveDsl.g:4010:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
     public final String entryRuleOpUnary() throws RecognitionException {
         String current = null;
 
@@ -11593,8 +11463,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4049:47: (iv_ruleOpUnary= ruleOpUnary EOF )
-            // InternalPerspectiveDsl.g:4050:2: iv_ruleOpUnary= ruleOpUnary EOF
+            // InternalPerspectiveDsl.g:4010:47: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // InternalPerspectiveDsl.g:4011:2: iv_ruleOpUnary= ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpUnaryRule()); 
@@ -11625,7 +11495,7 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalPerspectiveDsl.g:4056:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    // InternalPerspectiveDsl.g:4017:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
     public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -11635,23 +11505,23 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4062:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
-            // InternalPerspectiveDsl.g:4063:2: (kw= '!' | kw= '-' | kw= '+' )
+            // InternalPerspectiveDsl.g:4023:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // InternalPerspectiveDsl.g:4024:2: (kw= '!' | kw= '-' | kw= '+' )
             {
-            // InternalPerspectiveDsl.g:4063:2: (kw= '!' | kw= '-' | kw= '+' )
+            // InternalPerspectiveDsl.g:4024:2: (kw= '!' | kw= '-' | kw= '+' )
             int alt52=3;
             switch ( input.LA(1) ) {
-            case 90:
+            case 89:
                 {
                 alt52=1;
                 }
                 break;
-            case 86:
+            case 85:
                 {
                 alt52=2;
                 }
                 break;
-            case 85:
+            case 84:
                 {
                 alt52=3;
                 }
@@ -11666,9 +11536,9 @@
 
             switch (alt52) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4064:3: kw= '!'
+                    // InternalPerspectiveDsl.g:4025:3: kw= '!'
                     {
-                    kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11679,9 +11549,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4070:3: kw= '-'
+                    // InternalPerspectiveDsl.g:4031:3: kw= '-'
                     {
-                    kw=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11692,9 +11562,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:4076:3: kw= '+'
+                    // InternalPerspectiveDsl.g:4037:3: kw= '+'
                     {
-                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11729,7 +11599,7 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalPerspectiveDsl.g:4085:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    // InternalPerspectiveDsl.g:4046:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
     public final EObject entryRuleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11737,8 +11607,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4085:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
-            // InternalPerspectiveDsl.g:4086:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            // InternalPerspectiveDsl.g:4046:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // InternalPerspectiveDsl.g:4047:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
@@ -11769,7 +11639,7 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalPerspectiveDsl.g:4092:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    // InternalPerspectiveDsl.g:4053:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
     public final EObject ruleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11783,11 +11653,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4098:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
-            // InternalPerspectiveDsl.g:4099:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalPerspectiveDsl.g:4059:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // InternalPerspectiveDsl.g:4060:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
             {
-            // InternalPerspectiveDsl.g:4099:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
-            // InternalPerspectiveDsl.g:4100:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            // InternalPerspectiveDsl.g:4060:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalPerspectiveDsl.g:4061:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -11805,13 +11675,13 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:4108:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            // InternalPerspectiveDsl.g:4069:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
             loop53:
             do {
                 int alt53=2;
                 int LA53_0 = input.LA(1);
 
-                if ( (LA53_0==91) ) {
+                if ( (LA53_0==90) ) {
                     int LA53_2 = input.LA(2);
 
                     if ( (synpred18_InternalPerspectiveDsl()) ) {
@@ -11824,16 +11694,16 @@
 
                 switch (alt53) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4109:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:4070:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4109:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
-            	    // InternalPerspectiveDsl.g:4110:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    // InternalPerspectiveDsl.g:4070:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // InternalPerspectiveDsl.g:4071:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
             	    {
-            	    // InternalPerspectiveDsl.g:4116:5: ( () otherlv_2= 'as' )
-            	    // InternalPerspectiveDsl.g:4117:6: () otherlv_2= 'as'
+            	    // InternalPerspectiveDsl.g:4077:5: ( () otherlv_2= 'as' )
+            	    // InternalPerspectiveDsl.g:4078:6: () otherlv_2= 'as'
             	    {
-            	    // InternalPerspectiveDsl.g:4117:6: ()
-            	    // InternalPerspectiveDsl.g:4118:7: 
+            	    // InternalPerspectiveDsl.g:4078:6: ()
+            	    // InternalPerspectiveDsl.g:4079:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11845,7 +11715,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,91,FOLLOW_46); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,90,FOLLOW_46); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
@@ -11857,11 +11727,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4130:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalPerspectiveDsl.g:4131:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:4091:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalPerspectiveDsl.g:4092:5: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalPerspectiveDsl.g:4131:5: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalPerspectiveDsl.g:4132:6: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalPerspectiveDsl.g:4092:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalPerspectiveDsl.g:4093:6: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11926,7 +11796,7 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalPerspectiveDsl.g:4154:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    // InternalPerspectiveDsl.g:4115:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
     public final EObject entryRuleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11934,8 +11804,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4154:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
-            // InternalPerspectiveDsl.g:4155:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            // InternalPerspectiveDsl.g:4115:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // InternalPerspectiveDsl.g:4116:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
@@ -11966,7 +11836,7 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalPerspectiveDsl.g:4161:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    // InternalPerspectiveDsl.g:4122:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
     public final EObject ruleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11977,11 +11847,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4167:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
-            // InternalPerspectiveDsl.g:4168:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalPerspectiveDsl.g:4128:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // InternalPerspectiveDsl.g:4129:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
             {
-            // InternalPerspectiveDsl.g:4168:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
-            // InternalPerspectiveDsl.g:4169:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            // InternalPerspectiveDsl.g:4129:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalPerspectiveDsl.g:4130:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
             {
             if ( state.backtracking==0 ) {
 
@@ -11999,18 +11869,18 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:4177:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            // InternalPerspectiveDsl.g:4138:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
             int alt54=2;
             int LA54_0 = input.LA(1);
 
-            if ( (LA54_0==92) ) {
+            if ( (LA54_0==91) ) {
                 int LA54_1 = input.LA(2);
 
                 if ( (synpred19_InternalPerspectiveDsl()) ) {
                     alt54=1;
                 }
             }
-            else if ( (LA54_0==93) ) {
+            else if ( (LA54_0==92) ) {
                 int LA54_2 = input.LA(2);
 
                 if ( (synpred19_InternalPerspectiveDsl()) ) {
@@ -12019,13 +11889,13 @@
             }
             switch (alt54) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4178:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    // InternalPerspectiveDsl.g:4139:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
                     {
-                    // InternalPerspectiveDsl.g:4188:4: ( () ( ( ruleOpPostfix ) ) )
-                    // InternalPerspectiveDsl.g:4189:5: () ( ( ruleOpPostfix ) )
+                    // InternalPerspectiveDsl.g:4149:4: ( () ( ( ruleOpPostfix ) ) )
+                    // InternalPerspectiveDsl.g:4150:5: () ( ( ruleOpPostfix ) )
                     {
-                    // InternalPerspectiveDsl.g:4189:5: ()
-                    // InternalPerspectiveDsl.g:4190:6: 
+                    // InternalPerspectiveDsl.g:4150:5: ()
+                    // InternalPerspectiveDsl.g:4151:6: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12037,11 +11907,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:4196:5: ( ( ruleOpPostfix ) )
-                    // InternalPerspectiveDsl.g:4197:6: ( ruleOpPostfix )
+                    // InternalPerspectiveDsl.g:4157:5: ( ( ruleOpPostfix ) )
+                    // InternalPerspectiveDsl.g:4158:6: ( ruleOpPostfix )
                     {
-                    // InternalPerspectiveDsl.g:4197:6: ( ruleOpPostfix )
-                    // InternalPerspectiveDsl.g:4198:7: ruleOpPostfix
+                    // InternalPerspectiveDsl.g:4158:6: ( ruleOpPostfix )
+                    // InternalPerspectiveDsl.g:4159:7: ruleOpPostfix
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12105,7 +11975,7 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalPerspectiveDsl.g:4218:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
+    // InternalPerspectiveDsl.g:4179:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
     public final String entryRuleOpPostfix() throws RecognitionException {
         String current = null;
 
@@ -12113,8 +11983,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4218:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
-            // InternalPerspectiveDsl.g:4219:2: iv_ruleOpPostfix= ruleOpPostfix EOF
+            // InternalPerspectiveDsl.g:4179:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
+            // InternalPerspectiveDsl.g:4180:2: iv_ruleOpPostfix= ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpPostfixRule()); 
@@ -12145,7 +12015,7 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalPerspectiveDsl.g:4225:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
+    // InternalPerspectiveDsl.g:4186:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
     public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -12155,17 +12025,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4231:2: ( (kw= '++' | kw= '--' ) )
-            // InternalPerspectiveDsl.g:4232:2: (kw= '++' | kw= '--' )
+            // InternalPerspectiveDsl.g:4192:2: ( (kw= '++' | kw= '--' ) )
+            // InternalPerspectiveDsl.g:4193:2: (kw= '++' | kw= '--' )
             {
-            // InternalPerspectiveDsl.g:4232:2: (kw= '++' | kw= '--' )
+            // InternalPerspectiveDsl.g:4193:2: (kw= '++' | kw= '--' )
             int alt55=2;
             int LA55_0 = input.LA(1);
 
-            if ( (LA55_0==92) ) {
+            if ( (LA55_0==91) ) {
                 alt55=1;
             }
-            else if ( (LA55_0==93) ) {
+            else if ( (LA55_0==92) ) {
                 alt55=2;
             }
             else {
@@ -12177,9 +12047,9 @@
             }
             switch (alt55) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4233:3: kw= '++'
+                    // InternalPerspectiveDsl.g:4194:3: kw= '++'
                     {
-                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12190,9 +12060,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4239:3: kw= '--'
+                    // InternalPerspectiveDsl.g:4200:3: kw= '--'
                     {
-                    kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12227,7 +12097,7 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalPerspectiveDsl.g:4248:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+    // InternalPerspectiveDsl.g:4209:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
     public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -12235,8 +12105,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4248:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
-            // InternalPerspectiveDsl.g:4249:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+            // InternalPerspectiveDsl.g:4209:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+            // InternalPerspectiveDsl.g:4210:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); 
@@ -12267,7 +12137,7 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalPerspectiveDsl.g:4255:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
+    // InternalPerspectiveDsl.g:4216:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
     public final EObject ruleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -12303,11 +12173,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4261:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
-            // InternalPerspectiveDsl.g:4262:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalPerspectiveDsl.g:4222:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
+            // InternalPerspectiveDsl.g:4223:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
             {
-            // InternalPerspectiveDsl.g:4262:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
-            // InternalPerspectiveDsl.g:4263:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            // InternalPerspectiveDsl.g:4223:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalPerspectiveDsl.g:4224:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -12325,12 +12195,12 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:4271:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            // InternalPerspectiveDsl.g:4232:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
             loop64:
             do {
                 int alt64=3;
                 switch ( input.LA(1) ) {
-                case 94:
+                case 93:
                     {
                     int LA64_2 = input.LA(2);
 
@@ -12344,7 +12214,7 @@
 
                     }
                     break;
-                case 95:
+                case 94:
                     {
                     int LA64_3 = input.LA(2);
 
@@ -12358,7 +12228,7 @@
 
                     }
                     break;
-                case 96:
+                case 95:
                     {
                     int LA64_4 = input.LA(2);
 
@@ -12374,19 +12244,19 @@
 
                 switch (alt64) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:4272:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalPerspectiveDsl.g:4233:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4272:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
-            	    // InternalPerspectiveDsl.g:4273:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalPerspectiveDsl.g:4233:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalPerspectiveDsl.g:4234:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4273:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-            	    // InternalPerspectiveDsl.g:4274:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalPerspectiveDsl.g:4234:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+            	    // InternalPerspectiveDsl.g:4235:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
             	    {
-            	    // InternalPerspectiveDsl.g:4294:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-            	    // InternalPerspectiveDsl.g:4295:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+            	    // InternalPerspectiveDsl.g:4255:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalPerspectiveDsl.g:4256:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
             	    {
-            	    // InternalPerspectiveDsl.g:4295:7: ()
-            	    // InternalPerspectiveDsl.g:4296:8: 
+            	    // InternalPerspectiveDsl.g:4256:7: ()
+            	    // InternalPerspectiveDsl.g:4257:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12398,14 +12268,14 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4302:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+            	    // InternalPerspectiveDsl.g:4263:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
             	    int alt56=2;
             	    int LA56_0 = input.LA(1);
 
-            	    if ( (LA56_0==94) ) {
+            	    if ( (LA56_0==93) ) {
             	        alt56=1;
             	    }
-            	    else if ( (LA56_0==95) ) {
+            	    else if ( (LA56_0==94) ) {
             	        alt56=2;
             	    }
             	    else {
@@ -12417,9 +12287,9 @@
             	    }
             	    switch (alt56) {
             	        case 1 :
-            	            // InternalPerspectiveDsl.g:4303:8: otherlv_2= '.'
+            	            // InternalPerspectiveDsl.g:4264:8: otherlv_2= '.'
             	            {
-            	            otherlv_2=(Token)match(input,94,FOLLOW_56); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,93,FOLLOW_56); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
@@ -12429,15 +12299,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalPerspectiveDsl.g:4308:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalPerspectiveDsl.g:4269:8: ( (lv_explicitStatic_3_0= '::' ) )
             	            {
-            	            // InternalPerspectiveDsl.g:4308:8: ( (lv_explicitStatic_3_0= '::' ) )
-            	            // InternalPerspectiveDsl.g:4309:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalPerspectiveDsl.g:4269:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalPerspectiveDsl.g:4270:9: (lv_explicitStatic_3_0= '::' )
             	            {
-            	            // InternalPerspectiveDsl.g:4309:9: (lv_explicitStatic_3_0= '::' )
-            	            // InternalPerspectiveDsl.g:4310:10: lv_explicitStatic_3_0= '::'
+            	            // InternalPerspectiveDsl.g:4270:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalPerspectiveDsl.g:4271:10: lv_explicitStatic_3_0= '::'
             	            {
-            	            lv_explicitStatic_3_0=(Token)match(input,95,FOLLOW_56); if (state.failed) return current;
+            	            lv_explicitStatic_3_0=(Token)match(input,94,FOLLOW_56); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
@@ -12463,11 +12333,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4323:7: ( ( ruleFeatureCallID ) )
-            	    // InternalPerspectiveDsl.g:4324:8: ( ruleFeatureCallID )
+            	    // InternalPerspectiveDsl.g:4284:7: ( ( ruleFeatureCallID ) )
+            	    // InternalPerspectiveDsl.g:4285:8: ( ruleFeatureCallID )
             	    {
-            	    // InternalPerspectiveDsl.g:4324:8: ( ruleFeatureCallID )
-            	    // InternalPerspectiveDsl.g:4325:9: ruleFeatureCallID
+            	    // InternalPerspectiveDsl.g:4285:8: ( ruleFeatureCallID )
+            	    // InternalPerspectiveDsl.g:4286:9: ruleFeatureCallID
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12518,11 +12388,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4348:5: ( (lv_value_6_0= ruleXAssignment ) )
-            	    // InternalPerspectiveDsl.g:4349:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalPerspectiveDsl.g:4309:5: ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalPerspectiveDsl.g:4310:6: (lv_value_6_0= ruleXAssignment )
             	    {
-            	    // InternalPerspectiveDsl.g:4349:6: (lv_value_6_0= ruleXAssignment )
-            	    // InternalPerspectiveDsl.g:4350:7: lv_value_6_0= ruleXAssignment
+            	    // InternalPerspectiveDsl.g:4310:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalPerspectiveDsl.g:4311:7: lv_value_6_0= ruleXAssignment
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12560,19 +12430,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalPerspectiveDsl.g:4369:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalPerspectiveDsl.g:4330:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
             	    {
-            	    // InternalPerspectiveDsl.g:4369:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
-            	    // InternalPerspectiveDsl.g:4370:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    // InternalPerspectiveDsl.g:4330:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalPerspectiveDsl.g:4331:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
             	    {
-            	    // InternalPerspectiveDsl.g:4370:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
-            	    // InternalPerspectiveDsl.g:4371:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalPerspectiveDsl.g:4331:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+            	    // InternalPerspectiveDsl.g:4332:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4391:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
-            	    // InternalPerspectiveDsl.g:4392:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    // InternalPerspectiveDsl.g:4352:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalPerspectiveDsl.g:4353:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
             	    {
-            	    // InternalPerspectiveDsl.g:4392:7: ()
-            	    // InternalPerspectiveDsl.g:4393:8: 
+            	    // InternalPerspectiveDsl.g:4353:7: ()
+            	    // InternalPerspectiveDsl.g:4354:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12584,20 +12454,20 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4399:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    // InternalPerspectiveDsl.g:4360:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
             	    int alt57=3;
             	    switch ( input.LA(1) ) {
-            	    case 94:
+            	    case 93:
             	        {
             	        alt57=1;
             	        }
             	        break;
-            	    case 96:
+            	    case 95:
             	        {
             	        alt57=2;
             	        }
             	        break;
-            	    case 95:
+            	    case 94:
             	        {
             	        alt57=3;
             	        }
@@ -12612,9 +12482,9 @@
 
             	    switch (alt57) {
             	        case 1 :
-            	            // InternalPerspectiveDsl.g:4400:8: otherlv_8= '.'
+            	            // InternalPerspectiveDsl.g:4361:8: otherlv_8= '.'
             	            {
-            	            otherlv_8=(Token)match(input,94,FOLLOW_57); if (state.failed) return current;
+            	            otherlv_8=(Token)match(input,93,FOLLOW_57); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
@@ -12624,15 +12494,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalPerspectiveDsl.g:4405:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalPerspectiveDsl.g:4366:8: ( (lv_nullSafe_9_0= '?.' ) )
             	            {
-            	            // InternalPerspectiveDsl.g:4405:8: ( (lv_nullSafe_9_0= '?.' ) )
-            	            // InternalPerspectiveDsl.g:4406:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalPerspectiveDsl.g:4366:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalPerspectiveDsl.g:4367:9: (lv_nullSafe_9_0= '?.' )
             	            {
-            	            // InternalPerspectiveDsl.g:4406:9: (lv_nullSafe_9_0= '?.' )
-            	            // InternalPerspectiveDsl.g:4407:10: lv_nullSafe_9_0= '?.'
+            	            // InternalPerspectiveDsl.g:4367:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalPerspectiveDsl.g:4368:10: lv_nullSafe_9_0= '?.'
             	            {
-            	            lv_nullSafe_9_0=(Token)match(input,96,FOLLOW_57); if (state.failed) return current;
+            	            lv_nullSafe_9_0=(Token)match(input,95,FOLLOW_57); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
@@ -12656,15 +12526,15 @@
             	            }
             	            break;
             	        case 3 :
-            	            // InternalPerspectiveDsl.g:4420:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalPerspectiveDsl.g:4381:8: ( (lv_explicitStatic_10_0= '::' ) )
             	            {
-            	            // InternalPerspectiveDsl.g:4420:8: ( (lv_explicitStatic_10_0= '::' ) )
-            	            // InternalPerspectiveDsl.g:4421:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalPerspectiveDsl.g:4381:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalPerspectiveDsl.g:4382:9: (lv_explicitStatic_10_0= '::' )
             	            {
-            	            // InternalPerspectiveDsl.g:4421:9: (lv_explicitStatic_10_0= '::' )
-            	            // InternalPerspectiveDsl.g:4422:10: lv_explicitStatic_10_0= '::'
+            	            // InternalPerspectiveDsl.g:4382:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalPerspectiveDsl.g:4383:10: lv_explicitStatic_10_0= '::'
             	            {
-            	            lv_explicitStatic_10_0=(Token)match(input,95,FOLLOW_57); if (state.failed) return current;
+            	            lv_explicitStatic_10_0=(Token)match(input,94,FOLLOW_57); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
@@ -12696,28 +12566,28 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4437:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+            	    // InternalPerspectiveDsl.g:4398:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
             	    int alt59=2;
             	    int LA59_0 = input.LA(1);
 
-            	    if ( (LA59_0==69) ) {
+            	    if ( (LA59_0==68) ) {
             	        alt59=1;
             	    }
             	    switch (alt59) {
             	        case 1 :
-            	            // InternalPerspectiveDsl.g:4438:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+            	            // InternalPerspectiveDsl.g:4399:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
             	            {
-            	            otherlv_11=(Token)match(input,69,FOLLOW_58); if (state.failed) return current;
+            	            otherlv_11=(Token)match(input,68,FOLLOW_58); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
             	              					
             	            }
-            	            // InternalPerspectiveDsl.g:4442:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
-            	            // InternalPerspectiveDsl.g:4443:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalPerspectiveDsl.g:4403:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+            	            // InternalPerspectiveDsl.g:4404:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
             	            {
-            	            // InternalPerspectiveDsl.g:4443:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
-            	            // InternalPerspectiveDsl.g:4444:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+            	            // InternalPerspectiveDsl.g:4404:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalPerspectiveDsl.g:4405:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
             	            {
             	            if ( state.backtracking==0 ) {
 
@@ -12748,32 +12618,32 @@
 
             	            }
 
-            	            // InternalPerspectiveDsl.g:4461:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+            	            // InternalPerspectiveDsl.g:4422:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
             	            loop58:
             	            do {
             	                int alt58=2;
             	                int LA58_0 = input.LA(1);
 
-            	                if ( (LA58_0==58) ) {
+            	                if ( (LA58_0==57) ) {
             	                    alt58=1;
             	                }
 
 
             	                switch (alt58) {
             	            	case 1 :
-            	            	    // InternalPerspectiveDsl.g:4462:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalPerspectiveDsl.g:4423:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
             	            	    {
-            	            	    otherlv_13=(Token)match(input,58,FOLLOW_58); if (state.failed) return current;
+            	            	    otherlv_13=(Token)match(input,57,FOLLOW_58); if (state.failed) return current;
             	            	    if ( state.backtracking==0 ) {
 
             	            	      							newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
             	            	      						
             	            	    }
-            	            	    // InternalPerspectiveDsl.g:4466:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
-            	            	    // InternalPerspectiveDsl.g:4467:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalPerspectiveDsl.g:4427:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalPerspectiveDsl.g:4428:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
             	            	    {
-            	            	    // InternalPerspectiveDsl.g:4467:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
-            	            	    // InternalPerspectiveDsl.g:4468:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
+            	            	    // InternalPerspectiveDsl.g:4428:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalPerspectiveDsl.g:4429:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
             	            	    {
             	            	    if ( state.backtracking==0 ) {
 
@@ -12813,7 +12683,7 @@
             	                }
             	            } while (true);
 
-            	            otherlv_15=(Token)match(input,70,FOLLOW_57); if (state.failed) return current;
+            	            otherlv_15=(Token)match(input,69,FOLLOW_57); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
@@ -12825,11 +12695,11 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4491:5: ( ( ruleIdOrSuper ) )
-            	    // InternalPerspectiveDsl.g:4492:6: ( ruleIdOrSuper )
+            	    // InternalPerspectiveDsl.g:4452:5: ( ( ruleIdOrSuper ) )
+            	    // InternalPerspectiveDsl.g:4453:6: ( ruleIdOrSuper )
             	    {
-            	    // InternalPerspectiveDsl.g:4492:6: ( ruleIdOrSuper )
-            	    // InternalPerspectiveDsl.g:4493:7: ruleIdOrSuper
+            	    // InternalPerspectiveDsl.g:4453:6: ( ruleIdOrSuper )
+            	    // InternalPerspectiveDsl.g:4454:7: ruleIdOrSuper
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12859,20 +12729,20 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4507:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
+            	    // InternalPerspectiveDsl.g:4468:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
             	    int alt62=2;
             	    alt62 = dfa62.predict(input);
             	    switch (alt62) {
             	        case 1 :
-            	            // InternalPerspectiveDsl.g:4508:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
+            	            // InternalPerspectiveDsl.g:4469:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
             	            {
-            	            // InternalPerspectiveDsl.g:4508:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
-            	            // InternalPerspectiveDsl.g:4509:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalPerspectiveDsl.g:4469:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
+            	            // InternalPerspectiveDsl.g:4470:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
             	            {
-            	            // InternalPerspectiveDsl.g:4513:7: (lv_explicitOperationCall_17_0= '(' )
-            	            // InternalPerspectiveDsl.g:4514:8: lv_explicitOperationCall_17_0= '('
+            	            // InternalPerspectiveDsl.g:4474:7: (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalPerspectiveDsl.g:4475:8: lv_explicitOperationCall_17_0= '('
             	            {
-            	            lv_explicitOperationCall_17_0=(Token)match(input,57,FOLLOW_61); if (state.failed) return current;
+            	            lv_explicitOperationCall_17_0=(Token)match(input,56,FOLLOW_61); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
@@ -12892,18 +12762,18 @@
 
             	            }
 
-            	            // InternalPerspectiveDsl.g:4526:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
+            	            // InternalPerspectiveDsl.g:4487:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
             	            int alt61=3;
             	            alt61 = dfa61.predict(input);
             	            switch (alt61) {
             	                case 1 :
-            	                    // InternalPerspectiveDsl.g:4527:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalPerspectiveDsl.g:4488:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
             	                    {
-            	                    // InternalPerspectiveDsl.g:4527:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
-            	                    // InternalPerspectiveDsl.g:4528:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalPerspectiveDsl.g:4488:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalPerspectiveDsl.g:4489:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
             	                    {
-            	                    // InternalPerspectiveDsl.g:4553:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
-            	                    // InternalPerspectiveDsl.g:4554:9: lv_memberCallArguments_18_0= ruleXShortClosure
+            	                    // InternalPerspectiveDsl.g:4514:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalPerspectiveDsl.g:4515:9: lv_memberCallArguments_18_0= ruleXShortClosure
             	                    {
             	                    if ( state.backtracking==0 ) {
 
@@ -12938,16 +12808,16 @@
             	                    }
             	                    break;
             	                case 2 :
-            	                    // InternalPerspectiveDsl.g:4572:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalPerspectiveDsl.g:4533:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
             	                    {
-            	                    // InternalPerspectiveDsl.g:4572:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
-            	                    // InternalPerspectiveDsl.g:4573:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    // InternalPerspectiveDsl.g:4533:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalPerspectiveDsl.g:4534:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
             	                    {
-            	                    // InternalPerspectiveDsl.g:4573:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
-            	                    // InternalPerspectiveDsl.g:4574:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalPerspectiveDsl.g:4534:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
+            	                    // InternalPerspectiveDsl.g:4535:9: (lv_memberCallArguments_19_0= ruleXExpression )
             	                    {
-            	                    // InternalPerspectiveDsl.g:4574:9: (lv_memberCallArguments_19_0= ruleXExpression )
-            	                    // InternalPerspectiveDsl.g:4575:10: lv_memberCallArguments_19_0= ruleXExpression
+            	                    // InternalPerspectiveDsl.g:4535:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalPerspectiveDsl.g:4536:10: lv_memberCallArguments_19_0= ruleXExpression
             	                    {
             	                    if ( state.backtracking==0 ) {
 
@@ -12978,32 +12848,32 @@
 
             	                    }
 
-            	                    // InternalPerspectiveDsl.g:4592:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    // InternalPerspectiveDsl.g:4553:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
             	                    loop60:
             	                    do {
             	                        int alt60=2;
             	                        int LA60_0 = input.LA(1);
 
-            	                        if ( (LA60_0==58) ) {
+            	                        if ( (LA60_0==57) ) {
             	                            alt60=1;
             	                        }
 
 
             	                        switch (alt60) {
             	                    	case 1 :
-            	                    	    // InternalPerspectiveDsl.g:4593:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalPerspectiveDsl.g:4554:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
             	                    	    {
-            	                    	    otherlv_20=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+            	                    	    otherlv_20=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      									newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
             	                    	      								
             	                    	    }
-            	                    	    // InternalPerspectiveDsl.g:4597:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
-            	                    	    // InternalPerspectiveDsl.g:4598:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalPerspectiveDsl.g:4558:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalPerspectiveDsl.g:4559:10: (lv_memberCallArguments_21_0= ruleXExpression )
             	                    	    {
-            	                    	    // InternalPerspectiveDsl.g:4598:10: (lv_memberCallArguments_21_0= ruleXExpression )
-            	                    	    // InternalPerspectiveDsl.g:4599:11: lv_memberCallArguments_21_0= ruleXExpression
+            	                    	    // InternalPerspectiveDsl.g:4559:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalPerspectiveDsl.g:4560:11: lv_memberCallArguments_21_0= ruleXExpression
             	                    	    {
             	                    	    if ( state.backtracking==0 ) {
 
@@ -13052,7 +12922,7 @@
 
             	            }
 
-            	            otherlv_22=(Token)match(input,59,FOLLOW_62); if (state.failed) return current;
+            	            otherlv_22=(Token)match(input,58,FOLLOW_62); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
@@ -13064,15 +12934,15 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:4624:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    // InternalPerspectiveDsl.g:4585:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
             	    int alt63=2;
             	    alt63 = dfa63.predict(input);
             	    switch (alt63) {
             	        case 1 :
-            	            // InternalPerspectiveDsl.g:4625:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalPerspectiveDsl.g:4586:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
             	            {
-            	            // InternalPerspectiveDsl.g:4631:6: (lv_memberCallArguments_23_0= ruleXClosure )
-            	            // InternalPerspectiveDsl.g:4632:7: lv_memberCallArguments_23_0= ruleXClosure
+            	            // InternalPerspectiveDsl.g:4592:6: (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalPerspectiveDsl.g:4593:7: lv_memberCallArguments_23_0= ruleXClosure
             	            {
             	            if ( state.backtracking==0 ) {
 
@@ -13143,7 +13013,7 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalPerspectiveDsl.g:4655:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
+    // InternalPerspectiveDsl.g:4616:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
     public final EObject entryRuleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13151,8 +13021,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4655:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
-            // InternalPerspectiveDsl.g:4656:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
+            // InternalPerspectiveDsl.g:4616:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
+            // InternalPerspectiveDsl.g:4617:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); 
@@ -13183,7 +13053,7 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalPerspectiveDsl.g:4662:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
+    // InternalPerspectiveDsl.g:4623:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
     public final EObject ruleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13222,15 +13092,15 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4668:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
-            // InternalPerspectiveDsl.g:4669:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            // InternalPerspectiveDsl.g:4629:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
+            // InternalPerspectiveDsl.g:4630:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
             {
-            // InternalPerspectiveDsl.g:4669:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            // InternalPerspectiveDsl.g:4630:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
             int alt65=15;
             alt65 = dfa65.predict(input);
             switch (alt65) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4670:3: this_XConstructorCall_0= ruleXConstructorCall
+                    // InternalPerspectiveDsl.g:4631:3: this_XConstructorCall_0= ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13252,7 +13122,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4679:3: this_XBlockExpression_1= ruleXBlockExpression
+                    // InternalPerspectiveDsl.g:4640:3: this_XBlockExpression_1= ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13274,7 +13144,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:4688:3: this_XSwitchExpression_2= ruleXSwitchExpression
+                    // InternalPerspectiveDsl.g:4649:3: this_XSwitchExpression_2= ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13296,10 +13166,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:4697:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalPerspectiveDsl.g:4658:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
                     {
-                    // InternalPerspectiveDsl.g:4697:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
-                    // InternalPerspectiveDsl.g:4698:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
+                    // InternalPerspectiveDsl.g:4658:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalPerspectiveDsl.g:4659:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13324,7 +13194,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:4715:3: this_XFeatureCall_4= ruleXFeatureCall
+                    // InternalPerspectiveDsl.g:4676:3: this_XFeatureCall_4= ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13346,7 +13216,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:4724:3: this_XLiteral_5= ruleXLiteral
+                    // InternalPerspectiveDsl.g:4685:3: this_XLiteral_5= ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13368,7 +13238,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:4733:3: this_XIfExpression_6= ruleXIfExpression
+                    // InternalPerspectiveDsl.g:4694:3: this_XIfExpression_6= ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13390,10 +13260,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalPerspectiveDsl.g:4742:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalPerspectiveDsl.g:4703:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
                     {
-                    // InternalPerspectiveDsl.g:4742:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
-                    // InternalPerspectiveDsl.g:4743:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
+                    // InternalPerspectiveDsl.g:4703:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalPerspectiveDsl.g:4704:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13418,7 +13288,7 @@
                     }
                     break;
                 case 9 :
-                    // InternalPerspectiveDsl.g:4766:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
+                    // InternalPerspectiveDsl.g:4727:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13440,7 +13310,7 @@
                     }
                     break;
                 case 10 :
-                    // InternalPerspectiveDsl.g:4775:3: this_XWhileExpression_9= ruleXWhileExpression
+                    // InternalPerspectiveDsl.g:4736:3: this_XWhileExpression_9= ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13462,7 +13332,7 @@
                     }
                     break;
                 case 11 :
-                    // InternalPerspectiveDsl.g:4784:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
+                    // InternalPerspectiveDsl.g:4745:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13484,7 +13354,7 @@
                     }
                     break;
                 case 12 :
-                    // InternalPerspectiveDsl.g:4793:3: this_XThrowExpression_11= ruleXThrowExpression
+                    // InternalPerspectiveDsl.g:4754:3: this_XThrowExpression_11= ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13506,7 +13376,7 @@
                     }
                     break;
                 case 13 :
-                    // InternalPerspectiveDsl.g:4802:3: this_XReturnExpression_12= ruleXReturnExpression
+                    // InternalPerspectiveDsl.g:4763:3: this_XReturnExpression_12= ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13528,7 +13398,7 @@
                     }
                     break;
                 case 14 :
-                    // InternalPerspectiveDsl.g:4811:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
+                    // InternalPerspectiveDsl.g:4772:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13550,7 +13420,7 @@
                     }
                     break;
                 case 15 :
-                    // InternalPerspectiveDsl.g:4820:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
+                    // InternalPerspectiveDsl.g:4781:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13596,7 +13466,7 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalPerspectiveDsl.g:4832:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
+    // InternalPerspectiveDsl.g:4793:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
     public final EObject entryRuleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13604,8 +13474,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4832:49: (iv_ruleXLiteral= ruleXLiteral EOF )
-            // InternalPerspectiveDsl.g:4833:2: iv_ruleXLiteral= ruleXLiteral EOF
+            // InternalPerspectiveDsl.g:4793:49: (iv_ruleXLiteral= ruleXLiteral EOF )
+            // InternalPerspectiveDsl.g:4794:2: iv_ruleXLiteral= ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXLiteralRule()); 
@@ -13636,7 +13506,7 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalPerspectiveDsl.g:4839:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
+    // InternalPerspectiveDsl.g:4800:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
     public final EObject ruleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13659,32 +13529,32 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4845:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
-            // InternalPerspectiveDsl.g:4846:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            // InternalPerspectiveDsl.g:4806:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
+            // InternalPerspectiveDsl.g:4807:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
             {
-            // InternalPerspectiveDsl.g:4846:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            // InternalPerspectiveDsl.g:4807:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
             int alt66=7;
             int LA66_0 = input.LA(1);
 
-            if ( (LA66_0==61) ) {
+            if ( (LA66_0==60) ) {
                 alt66=1;
             }
-            else if ( (LA66_0==62) && (synpred27_InternalPerspectiveDsl())) {
+            else if ( (LA66_0==61) && (synpred27_InternalPerspectiveDsl())) {
                 alt66=2;
             }
-            else if ( ((LA66_0>=112 && LA66_0<=113)) ) {
+            else if ( ((LA66_0>=111 && LA66_0<=112)) ) {
                 alt66=3;
             }
             else if ( ((LA66_0>=RULE_INT && LA66_0<=RULE_DECIMAL)) ) {
                 alt66=4;
             }
-            else if ( (LA66_0==114) ) {
+            else if ( (LA66_0==113) ) {
                 alt66=5;
             }
             else if ( (LA66_0==RULE_STRING) ) {
                 alt66=6;
             }
-            else if ( (LA66_0==115) ) {
+            else if ( (LA66_0==114) ) {
                 alt66=7;
             }
             else {
@@ -13696,7 +13566,7 @@
             }
             switch (alt66) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4847:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
+                    // InternalPerspectiveDsl.g:4808:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13718,10 +13588,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4856:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalPerspectiveDsl.g:4817:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
                     {
-                    // InternalPerspectiveDsl.g:4856:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
-                    // InternalPerspectiveDsl.g:4857:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
+                    // InternalPerspectiveDsl.g:4817:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalPerspectiveDsl.g:4818:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13746,7 +13616,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:4873:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
+                    // InternalPerspectiveDsl.g:4834:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13768,7 +13638,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:4882:3: this_XNumberLiteral_3= ruleXNumberLiteral
+                    // InternalPerspectiveDsl.g:4843:3: this_XNumberLiteral_3= ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13790,7 +13660,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:4891:3: this_XNullLiteral_4= ruleXNullLiteral
+                    // InternalPerspectiveDsl.g:4852:3: this_XNullLiteral_4= ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13812,7 +13682,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalPerspectiveDsl.g:4900:3: this_XStringLiteral_5= ruleXStringLiteral
+                    // InternalPerspectiveDsl.g:4861:3: this_XStringLiteral_5= ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13834,7 +13704,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalPerspectiveDsl.g:4909:3: this_XTypeLiteral_6= ruleXTypeLiteral
+                    // InternalPerspectiveDsl.g:4870:3: this_XTypeLiteral_6= ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13880,7 +13750,7 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalPerspectiveDsl.g:4921:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
+    // InternalPerspectiveDsl.g:4882:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
     public final EObject entryRuleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13888,8 +13758,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4921:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
-            // InternalPerspectiveDsl.g:4922:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
+            // InternalPerspectiveDsl.g:4882:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
+            // InternalPerspectiveDsl.g:4883:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCollectionLiteralRule()); 
@@ -13920,7 +13790,7 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalPerspectiveDsl.g:4928:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
+    // InternalPerspectiveDsl.g:4889:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
     public final EObject ruleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13933,17 +13803,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4934:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
-            // InternalPerspectiveDsl.g:4935:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            // InternalPerspectiveDsl.g:4895:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
+            // InternalPerspectiveDsl.g:4896:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
             {
-            // InternalPerspectiveDsl.g:4935:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            // InternalPerspectiveDsl.g:4896:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
             int alt67=2;
             int LA67_0 = input.LA(1);
 
-            if ( (LA67_0==61) ) {
+            if ( (LA67_0==60) ) {
                 int LA67_1 = input.LA(2);
 
-                if ( (LA67_1==62) ) {
+                if ( (LA67_1==61) ) {
                     alt67=2;
                 }
                 else if ( (LA67_1==14) ) {
@@ -13966,7 +13836,7 @@
             }
             switch (alt67) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4936:3: this_XSetLiteral_0= ruleXSetLiteral
+                    // InternalPerspectiveDsl.g:4897:3: this_XSetLiteral_0= ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13988,7 +13858,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:4945:3: this_XListLiteral_1= ruleXListLiteral
+                    // InternalPerspectiveDsl.g:4906:3: this_XListLiteral_1= ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14034,7 +13904,7 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalPerspectiveDsl.g:4957:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
+    // InternalPerspectiveDsl.g:4918:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
     public final EObject entryRuleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -14042,8 +13912,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:4957:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
-            // InternalPerspectiveDsl.g:4958:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
+            // InternalPerspectiveDsl.g:4918:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
+            // InternalPerspectiveDsl.g:4919:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSetLiteralRule()); 
@@ -14074,7 +13944,7 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalPerspectiveDsl.g:4964:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
+    // InternalPerspectiveDsl.g:4925:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
     public final EObject ruleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -14091,14 +13961,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:4970:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
-            // InternalPerspectiveDsl.g:4971:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalPerspectiveDsl.g:4931:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
+            // InternalPerspectiveDsl.g:4932:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
             {
-            // InternalPerspectiveDsl.g:4971:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
-            // InternalPerspectiveDsl.g:4972:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
+            // InternalPerspectiveDsl.g:4932:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalPerspectiveDsl.g:4933:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
             {
-            // InternalPerspectiveDsl.g:4972:3: ()
-            // InternalPerspectiveDsl.g:4973:4: 
+            // InternalPerspectiveDsl.g:4933:3: ()
+            // InternalPerspectiveDsl.g:4934:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14110,7 +13980,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,61,FOLLOW_63); if (state.failed) return current;
+            otherlv_1=(Token)match(input,60,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
@@ -14122,22 +13992,22 @@
               			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:4987:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            // InternalPerspectiveDsl.g:4948:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
             int alt69=2;
             int LA69_0 = input.LA(1);
 
-            if ( ((LA69_0>=RULE_ID && LA69_0<=RULE_DECIMAL)||LA69_0==14||(LA69_0>=50 && LA69_0<=52)||LA69_0==57||(LA69_0>=61 && LA69_0<=62)||LA69_0==69||(LA69_0>=85 && LA69_0<=86)||LA69_0==90||LA69_0==98||LA69_0==100||(LA69_0>=104 && LA69_0<=106)||(LA69_0>=109 && LA69_0<=118)||LA69_0==120) ) {
+            if ( ((LA69_0>=RULE_ID && LA69_0<=RULE_DECIMAL)||LA69_0==14||(LA69_0>=49 && LA69_0<=51)||LA69_0==56||(LA69_0>=60 && LA69_0<=61)||LA69_0==68||(LA69_0>=84 && LA69_0<=85)||LA69_0==89||LA69_0==97||LA69_0==99||(LA69_0>=103 && LA69_0<=105)||(LA69_0>=108 && LA69_0<=117)||LA69_0==119) ) {
                 alt69=1;
             }
             switch (alt69) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:4988:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalPerspectiveDsl.g:4949:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalPerspectiveDsl.g:4988:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:4989:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:4949:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:4950:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:4989:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:4990:6: lv_elements_3_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:4950:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:4951:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14168,32 +14038,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:5007:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalPerspectiveDsl.g:4968:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     loop68:
                     do {
                         int alt68=2;
                         int LA68_0 = input.LA(1);
 
-                        if ( (LA68_0==58) ) {
+                        if ( (LA68_0==57) ) {
                             alt68=1;
                         }
 
 
                         switch (alt68) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:5008:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalPerspectiveDsl.g:4969:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalPerspectiveDsl.g:5012:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalPerspectiveDsl.g:5013:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalPerspectiveDsl.g:4973:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalPerspectiveDsl.g:4974:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalPerspectiveDsl.g:5013:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalPerspectiveDsl.g:5014:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalPerspectiveDsl.g:4974:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalPerspectiveDsl.g:4975:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -14270,7 +14140,7 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalPerspectiveDsl.g:5041:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
+    // InternalPerspectiveDsl.g:5002:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
     public final EObject entryRuleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -14278,8 +14148,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5041:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
-            // InternalPerspectiveDsl.g:5042:2: iv_ruleXListLiteral= ruleXListLiteral EOF
+            // InternalPerspectiveDsl.g:5002:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
+            // InternalPerspectiveDsl.g:5003:2: iv_ruleXListLiteral= ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXListLiteralRule()); 
@@ -14310,7 +14180,7 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalPerspectiveDsl.g:5048:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
+    // InternalPerspectiveDsl.g:5009:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
     public final EObject ruleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -14327,14 +14197,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5054:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
-            // InternalPerspectiveDsl.g:5055:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalPerspectiveDsl.g:5015:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
+            // InternalPerspectiveDsl.g:5016:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
             {
-            // InternalPerspectiveDsl.g:5055:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
-            // InternalPerspectiveDsl.g:5056:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
+            // InternalPerspectiveDsl.g:5016:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalPerspectiveDsl.g:5017:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
             {
-            // InternalPerspectiveDsl.g:5056:3: ()
-            // InternalPerspectiveDsl.g:5057:4: 
+            // InternalPerspectiveDsl.g:5017:3: ()
+            // InternalPerspectiveDsl.g:5018:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14346,34 +14216,34 @@
 
             }
 
-            otherlv_1=(Token)match(input,61,FOLLOW_34); if (state.failed) return current;
+            otherlv_1=(Token)match(input,60,FOLLOW_34); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,62,FOLLOW_35); if (state.failed) return current;
+            otherlv_2=(Token)match(input,61,FOLLOW_35); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:5071:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            // InternalPerspectiveDsl.g:5032:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
             int alt71=2;
             int LA71_0 = input.LA(1);
 
-            if ( ((LA71_0>=RULE_ID && LA71_0<=RULE_DECIMAL)||LA71_0==14||(LA71_0>=50 && LA71_0<=52)||LA71_0==57||(LA71_0>=61 && LA71_0<=62)||LA71_0==69||(LA71_0>=85 && LA71_0<=86)||LA71_0==90||LA71_0==98||LA71_0==100||(LA71_0>=104 && LA71_0<=106)||(LA71_0>=109 && LA71_0<=118)||LA71_0==120) ) {
+            if ( ((LA71_0>=RULE_ID && LA71_0<=RULE_DECIMAL)||LA71_0==14||(LA71_0>=49 && LA71_0<=51)||LA71_0==56||(LA71_0>=60 && LA71_0<=61)||LA71_0==68||(LA71_0>=84 && LA71_0<=85)||LA71_0==89||LA71_0==97||LA71_0==99||(LA71_0>=103 && LA71_0<=105)||(LA71_0>=108 && LA71_0<=117)||LA71_0==119) ) {
                 alt71=1;
             }
             switch (alt71) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5072:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalPerspectiveDsl.g:5033:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalPerspectiveDsl.g:5072:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:5073:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5033:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5034:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:5073:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:5074:6: lv_elements_3_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:5034:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5035:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14404,32 +14274,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:5091:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalPerspectiveDsl.g:5052:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     loop70:
                     do {
                         int alt70=2;
                         int LA70_0 = input.LA(1);
 
-                        if ( (LA70_0==58) ) {
+                        if ( (LA70_0==57) ) {
                             alt70=1;
                         }
 
 
                         switch (alt70) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:5092:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalPerspectiveDsl.g:5053:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalPerspectiveDsl.g:5096:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalPerspectiveDsl.g:5097:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalPerspectiveDsl.g:5057:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalPerspectiveDsl.g:5058:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalPerspectiveDsl.g:5097:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalPerspectiveDsl.g:5098:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalPerspectiveDsl.g:5058:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalPerspectiveDsl.g:5059:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -14475,7 +14345,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
@@ -14506,7 +14376,7 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalPerspectiveDsl.g:5125:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
+    // InternalPerspectiveDsl.g:5086:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
     public final EObject entryRuleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14514,8 +14384,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5125:49: (iv_ruleXClosure= ruleXClosure EOF )
-            // InternalPerspectiveDsl.g:5126:2: iv_ruleXClosure= ruleXClosure EOF
+            // InternalPerspectiveDsl.g:5086:49: (iv_ruleXClosure= ruleXClosure EOF )
+            // InternalPerspectiveDsl.g:5087:2: iv_ruleXClosure= ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXClosureRule()); 
@@ -14546,7 +14416,7 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalPerspectiveDsl.g:5132:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
+    // InternalPerspectiveDsl.g:5093:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
     public final EObject ruleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14565,20 +14435,20 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5138:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
-            // InternalPerspectiveDsl.g:5139:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalPerspectiveDsl.g:5099:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
+            // InternalPerspectiveDsl.g:5100:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
             {
-            // InternalPerspectiveDsl.g:5139:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
-            // InternalPerspectiveDsl.g:5140:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
+            // InternalPerspectiveDsl.g:5100:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalPerspectiveDsl.g:5101:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
             {
-            // InternalPerspectiveDsl.g:5140:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
-            // InternalPerspectiveDsl.g:5141:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
+            // InternalPerspectiveDsl.g:5101:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
+            // InternalPerspectiveDsl.g:5102:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
             {
-            // InternalPerspectiveDsl.g:5147:4: ( () otherlv_1= '[' )
-            // InternalPerspectiveDsl.g:5148:5: () otherlv_1= '['
+            // InternalPerspectiveDsl.g:5108:4: ( () otherlv_1= '[' )
+            // InternalPerspectiveDsl.g:5109:5: () otherlv_1= '['
             {
-            // InternalPerspectiveDsl.g:5148:5: ()
-            // InternalPerspectiveDsl.g:5149:6: 
+            // InternalPerspectiveDsl.g:5109:5: ()
+            // InternalPerspectiveDsl.g:5110:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14590,7 +14460,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,62,FOLLOW_66); if (state.failed) return current;
+            otherlv_1=(Token)match(input,61,FOLLOW_66); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
@@ -14602,32 +14472,32 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5161:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
+            // InternalPerspectiveDsl.g:5122:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
             int alt74=2;
             alt74 = dfa74.predict(input);
             switch (alt74) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5162:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalPerspectiveDsl.g:5123:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
                     {
-                    // InternalPerspectiveDsl.g:5185:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
-                    // InternalPerspectiveDsl.g:5186:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalPerspectiveDsl.g:5146:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalPerspectiveDsl.g:5147:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
                     {
-                    // InternalPerspectiveDsl.g:5186:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
+                    // InternalPerspectiveDsl.g:5147:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
                     int alt73=2;
                     int LA73_0 = input.LA(1);
 
-                    if ( (LA73_0==RULE_ID||LA73_0==57||LA73_0==82) ) {
+                    if ( (LA73_0==RULE_ID||LA73_0==56||LA73_0==81) ) {
                         alt73=1;
                     }
                     switch (alt73) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:5187:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            // InternalPerspectiveDsl.g:5148:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:5187:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
-                            // InternalPerspectiveDsl.g:5188:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalPerspectiveDsl.g:5148:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
+                            // InternalPerspectiveDsl.g:5149:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
                             {
-                            // InternalPerspectiveDsl.g:5188:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
-                            // InternalPerspectiveDsl.g:5189:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
+                            // InternalPerspectiveDsl.g:5149:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalPerspectiveDsl.g:5150:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
@@ -14658,32 +14528,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:5206:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            // InternalPerspectiveDsl.g:5167:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
                             loop72:
                             do {
                                 int alt72=2;
                                 int LA72_0 = input.LA(1);
 
-                                if ( (LA72_0==58) ) {
+                                if ( (LA72_0==57) ) {
                                     alt72=1;
                                 }
 
 
                                 switch (alt72) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:5207:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalPerspectiveDsl.g:5168:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
                             	    {
-                            	    otherlv_3=(Token)match(input,58,FOLLOW_46); if (state.failed) return current;
+                            	    otherlv_3=(Token)match(input,57,FOLLOW_46); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
                             	      						
                             	    }
-                            	    // InternalPerspectiveDsl.g:5211:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
-                            	    // InternalPerspectiveDsl.g:5212:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalPerspectiveDsl.g:5172:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalPerspectiveDsl.g:5173:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
                             	    {
-                            	    // InternalPerspectiveDsl.g:5212:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
-                            	    // InternalPerspectiveDsl.g:5213:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
+                            	    // InternalPerspectiveDsl.g:5173:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalPerspectiveDsl.g:5174:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -14729,13 +14599,13 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:5232:5: ( (lv_explicitSyntax_5_0= '|' ) )
-                    // InternalPerspectiveDsl.g:5233:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalPerspectiveDsl.g:5193:5: ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalPerspectiveDsl.g:5194:6: (lv_explicitSyntax_5_0= '|' )
                     {
-                    // InternalPerspectiveDsl.g:5233:6: (lv_explicitSyntax_5_0= '|' )
-                    // InternalPerspectiveDsl.g:5234:7: lv_explicitSyntax_5_0= '|'
+                    // InternalPerspectiveDsl.g:5194:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalPerspectiveDsl.g:5195:7: lv_explicitSyntax_5_0= '|'
                     {
-                    lv_explicitSyntax_5_0=(Token)match(input,97,FOLLOW_68); if (state.failed) return current;
+                    lv_explicitSyntax_5_0=(Token)match(input,96,FOLLOW_68); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
@@ -14764,11 +14634,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5248:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
-            // InternalPerspectiveDsl.g:5249:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalPerspectiveDsl.g:5209:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
+            // InternalPerspectiveDsl.g:5210:4: (lv_expression_6_0= ruleXExpressionInClosure )
             {
-            // InternalPerspectiveDsl.g:5249:4: (lv_expression_6_0= ruleXExpressionInClosure )
-            // InternalPerspectiveDsl.g:5250:5: lv_expression_6_0= ruleXExpressionInClosure
+            // InternalPerspectiveDsl.g:5210:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalPerspectiveDsl.g:5211:5: lv_expression_6_0= ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
 
@@ -14799,7 +14669,7 @@
 
             }
 
-            otherlv_7=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+            otherlv_7=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
@@ -14830,7 +14700,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalPerspectiveDsl.g:5275:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
+    // InternalPerspectiveDsl.g:5236:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
     public final EObject entryRuleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14838,8 +14708,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5275:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
-            // InternalPerspectiveDsl.g:5276:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
+            // InternalPerspectiveDsl.g:5236:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
+            // InternalPerspectiveDsl.g:5237:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionInClosureRule()); 
@@ -14870,7 +14740,7 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalPerspectiveDsl.g:5282:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
+    // InternalPerspectiveDsl.g:5243:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
     public final EObject ruleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14882,14 +14752,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5288:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
-            // InternalPerspectiveDsl.g:5289:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalPerspectiveDsl.g:5249:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
+            // InternalPerspectiveDsl.g:5250:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
             {
-            // InternalPerspectiveDsl.g:5289:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
-            // InternalPerspectiveDsl.g:5290:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            // InternalPerspectiveDsl.g:5250:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalPerspectiveDsl.g:5251:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
             {
-            // InternalPerspectiveDsl.g:5290:3: ()
-            // InternalPerspectiveDsl.g:5291:4: 
+            // InternalPerspectiveDsl.g:5251:3: ()
+            // InternalPerspectiveDsl.g:5252:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14901,26 +14771,26 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5297:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            // InternalPerspectiveDsl.g:5258:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
             loop76:
             do {
                 int alt76=2;
                 int LA76_0 = input.LA(1);
 
-                if ( ((LA76_0>=RULE_ID && LA76_0<=RULE_DECIMAL)||LA76_0==14||(LA76_0>=50 && LA76_0<=52)||LA76_0==57||(LA76_0>=61 && LA76_0<=62)||LA76_0==69||(LA76_0>=85 && LA76_0<=86)||LA76_0==90||LA76_0==98||LA76_0==100||(LA76_0>=104 && LA76_0<=118)||LA76_0==120) ) {
+                if ( ((LA76_0>=RULE_ID && LA76_0<=RULE_DECIMAL)||LA76_0==14||(LA76_0>=49 && LA76_0<=51)||LA76_0==56||(LA76_0>=60 && LA76_0<=61)||LA76_0==68||(LA76_0>=84 && LA76_0<=85)||LA76_0==89||LA76_0==97||LA76_0==99||(LA76_0>=103 && LA76_0<=117)||LA76_0==119) ) {
                     alt76=1;
                 }
 
 
                 switch (alt76) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:5298:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
+            	    // InternalPerspectiveDsl.g:5259:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
             	    {
-            	    // InternalPerspectiveDsl.g:5298:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalPerspectiveDsl.g:5299:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalPerspectiveDsl.g:5259:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalPerspectiveDsl.g:5260:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalPerspectiveDsl.g:5299:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalPerspectiveDsl.g:5300:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
+            	    // InternalPerspectiveDsl.g:5260:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalPerspectiveDsl.g:5261:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -14951,18 +14821,18 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:5317:4: (otherlv_2= ';' )?
+            	    // InternalPerspectiveDsl.g:5278:4: (otherlv_2= ';' )?
             	    int alt75=2;
             	    int LA75_0 = input.LA(1);
 
-            	    if ( (LA75_0==55) ) {
+            	    if ( (LA75_0==54) ) {
             	        alt75=1;
             	    }
             	    switch (alt75) {
             	        case 1 :
-            	            // InternalPerspectiveDsl.g:5318:5: otherlv_2= ';'
+            	            // InternalPerspectiveDsl.g:5279:5: otherlv_2= ';'
             	            {
-            	            otherlv_2=(Token)match(input,55,FOLLOW_71); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,54,FOLLOW_71); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
@@ -15008,7 +14878,7 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalPerspectiveDsl.g:5328:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
+    // InternalPerspectiveDsl.g:5289:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
     public final EObject entryRuleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -15016,8 +14886,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5328:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
-            // InternalPerspectiveDsl.g:5329:2: iv_ruleXShortClosure= ruleXShortClosure EOF
+            // InternalPerspectiveDsl.g:5289:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
+            // InternalPerspectiveDsl.g:5290:2: iv_ruleXShortClosure= ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXShortClosureRule()); 
@@ -15048,7 +14918,7 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalPerspectiveDsl.g:5335:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalPerspectiveDsl.g:5296:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -15065,20 +14935,20 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5341:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalPerspectiveDsl.g:5342:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:5302:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:5303:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalPerspectiveDsl.g:5342:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalPerspectiveDsl.g:5343:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:5303:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:5304:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalPerspectiveDsl.g:5343:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
-            // InternalPerspectiveDsl.g:5344:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalPerspectiveDsl.g:5304:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
+            // InternalPerspectiveDsl.g:5305:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
             {
-            // InternalPerspectiveDsl.g:5369:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
-            // InternalPerspectiveDsl.g:5370:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalPerspectiveDsl.g:5330:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalPerspectiveDsl.g:5331:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
             {
-            // InternalPerspectiveDsl.g:5370:5: ()
-            // InternalPerspectiveDsl.g:5371:6: 
+            // InternalPerspectiveDsl.g:5331:5: ()
+            // InternalPerspectiveDsl.g:5332:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15090,22 +14960,22 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5377:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
+            // InternalPerspectiveDsl.g:5338:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
             int alt78=2;
             int LA78_0 = input.LA(1);
 
-            if ( (LA78_0==RULE_ID||LA78_0==57||LA78_0==82) ) {
+            if ( (LA78_0==RULE_ID||LA78_0==56||LA78_0==81) ) {
                 alt78=1;
             }
             switch (alt78) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5378:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    // InternalPerspectiveDsl.g:5339:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
                     {
-                    // InternalPerspectiveDsl.g:5378:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
-                    // InternalPerspectiveDsl.g:5379:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalPerspectiveDsl.g:5339:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
+                    // InternalPerspectiveDsl.g:5340:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
                     {
-                    // InternalPerspectiveDsl.g:5379:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
-                    // InternalPerspectiveDsl.g:5380:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
+                    // InternalPerspectiveDsl.g:5340:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalPerspectiveDsl.g:5341:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15136,32 +15006,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:5397:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    // InternalPerspectiveDsl.g:5358:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
                     loop77:
                     do {
                         int alt77=2;
                         int LA77_0 = input.LA(1);
 
-                        if ( (LA77_0==58) ) {
+                        if ( (LA77_0==57) ) {
                             alt77=1;
                         }
 
 
                         switch (alt77) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:5398:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalPerspectiveDsl.g:5359:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
                     	    {
-                    	    otherlv_2=(Token)match(input,58,FOLLOW_46); if (state.failed) return current;
+                    	    otherlv_2=(Token)match(input,57,FOLLOW_46); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
                     	      						
                     	    }
-                    	    // InternalPerspectiveDsl.g:5402:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
-                    	    // InternalPerspectiveDsl.g:5403:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalPerspectiveDsl.g:5363:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalPerspectiveDsl.g:5364:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
                     	    {
-                    	    // InternalPerspectiveDsl.g:5403:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
-                    	    // InternalPerspectiveDsl.g:5404:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
+                    	    // InternalPerspectiveDsl.g:5364:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalPerspectiveDsl.g:5365:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -15207,13 +15077,13 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5423:5: ( (lv_explicitSyntax_4_0= '|' ) )
-            // InternalPerspectiveDsl.g:5424:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalPerspectiveDsl.g:5384:5: ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalPerspectiveDsl.g:5385:6: (lv_explicitSyntax_4_0= '|' )
             {
-            // InternalPerspectiveDsl.g:5424:6: (lv_explicitSyntax_4_0= '|' )
-            // InternalPerspectiveDsl.g:5425:7: lv_explicitSyntax_4_0= '|'
+            // InternalPerspectiveDsl.g:5385:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalPerspectiveDsl.g:5386:7: lv_explicitSyntax_4_0= '|'
             {
-            lv_explicitSyntax_4_0=(Token)match(input,97,FOLLOW_33); if (state.failed) return current;
+            lv_explicitSyntax_4_0=(Token)match(input,96,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               							newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
@@ -15239,11 +15109,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5439:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:5440:4: (lv_expression_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5400:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:5401:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:5440:4: (lv_expression_5_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:5441:5: lv_expression_5_0= ruleXExpression
+            // InternalPerspectiveDsl.g:5401:4: (lv_expression_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5402:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -15299,7 +15169,7 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalPerspectiveDsl.g:5462:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
+    // InternalPerspectiveDsl.g:5423:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
     public final EObject entryRuleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15307,8 +15177,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5462:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
-            // InternalPerspectiveDsl.g:5463:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
+            // InternalPerspectiveDsl.g:5423:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
+            // InternalPerspectiveDsl.g:5424:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -15339,7 +15209,7 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalPerspectiveDsl.g:5469:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
+    // InternalPerspectiveDsl.g:5430:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
     public final EObject ruleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15352,13 +15222,13 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5475:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
-            // InternalPerspectiveDsl.g:5476:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalPerspectiveDsl.g:5436:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
+            // InternalPerspectiveDsl.g:5437:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
             {
-            // InternalPerspectiveDsl.g:5476:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
-            // InternalPerspectiveDsl.g:5477:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
+            // InternalPerspectiveDsl.g:5437:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalPerspectiveDsl.g:5438:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
+            otherlv_0=(Token)match(input,56,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
@@ -15380,7 +15250,7 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            otherlv_2=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+            otherlv_2=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
@@ -15411,7 +15281,7 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalPerspectiveDsl.g:5497:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
+    // InternalPerspectiveDsl.g:5458:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
     public final EObject entryRuleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15419,8 +15289,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5497:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
-            // InternalPerspectiveDsl.g:5498:2: iv_ruleXIfExpression= ruleXIfExpression EOF
+            // InternalPerspectiveDsl.g:5458:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
+            // InternalPerspectiveDsl.g:5459:2: iv_ruleXIfExpression= ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXIfExpressionRule()); 
@@ -15451,7 +15321,7 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalPerspectiveDsl.g:5504:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
+    // InternalPerspectiveDsl.g:5465:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15470,14 +15340,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5510:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
-            // InternalPerspectiveDsl.g:5511:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalPerspectiveDsl.g:5471:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
+            // InternalPerspectiveDsl.g:5472:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
             {
-            // InternalPerspectiveDsl.g:5511:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
-            // InternalPerspectiveDsl.g:5512:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            // InternalPerspectiveDsl.g:5472:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalPerspectiveDsl.g:5473:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
             {
-            // InternalPerspectiveDsl.g:5512:3: ()
-            // InternalPerspectiveDsl.g:5513:4: 
+            // InternalPerspectiveDsl.g:5473:3: ()
+            // InternalPerspectiveDsl.g:5474:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15489,23 +15359,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,98,FOLLOW_72); if (state.failed) return current;
+            otherlv_1=(Token)match(input,97,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
+            otherlv_2=(Token)match(input,56,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:5527:3: ( (lv_if_3_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:5528:4: (lv_if_3_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5488:3: ( (lv_if_3_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:5489:4: (lv_if_3_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:5528:4: (lv_if_3_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:5529:5: lv_if_3_0= ruleXExpression
+            // InternalPerspectiveDsl.g:5489:4: (lv_if_3_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5490:5: lv_if_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -15536,17 +15406,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
+            otherlv_4=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalPerspectiveDsl.g:5550:3: ( (lv_then_5_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:5551:4: (lv_then_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5511:3: ( (lv_then_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:5512:4: (lv_then_5_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:5551:4: (lv_then_5_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:5552:5: lv_then_5_0= ruleXExpression
+            // InternalPerspectiveDsl.g:5512:4: (lv_then_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5513:5: lv_then_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -15577,11 +15447,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5569:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            // InternalPerspectiveDsl.g:5530:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
             int alt79=2;
             int LA79_0 = input.LA(1);
 
-            if ( (LA79_0==99) ) {
+            if ( (LA79_0==98) ) {
                 int LA79_1 = input.LA(2);
 
                 if ( (synpred31_InternalPerspectiveDsl()) ) {
@@ -15590,12 +15460,12 @@
             }
             switch (alt79) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5570:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5531:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
                     {
-                    // InternalPerspectiveDsl.g:5570:4: ( ( 'else' )=>otherlv_6= 'else' )
-                    // InternalPerspectiveDsl.g:5571:5: ( 'else' )=>otherlv_6= 'else'
+                    // InternalPerspectiveDsl.g:5531:4: ( ( 'else' )=>otherlv_6= 'else' )
+                    // InternalPerspectiveDsl.g:5532:5: ( 'else' )=>otherlv_6= 'else'
                     {
-                    otherlv_6=(Token)match(input,99,FOLLOW_33); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,98,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
@@ -15604,11 +15474,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:5577:4: ( (lv_else_7_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:5578:5: (lv_else_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5538:4: ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5539:5: (lv_else_7_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:5578:5: (lv_else_7_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:5579:6: lv_else_7_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:5539:5: (lv_else_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5540:6: lv_else_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15670,7 +15540,7 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalPerspectiveDsl.g:5601:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
+    // InternalPerspectiveDsl.g:5562:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
     public final EObject entryRuleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15678,8 +15548,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5601:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
-            // InternalPerspectiveDsl.g:5602:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
+            // InternalPerspectiveDsl.g:5562:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
+            // InternalPerspectiveDsl.g:5563:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSwitchExpressionRule()); 
@@ -15710,7 +15580,7 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalPerspectiveDsl.g:5608:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
+    // InternalPerspectiveDsl.g:5569:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
     public final EObject ruleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15740,14 +15610,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5614:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
-            // InternalPerspectiveDsl.g:5615:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalPerspectiveDsl.g:5575:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
+            // InternalPerspectiveDsl.g:5576:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
             {
-            // InternalPerspectiveDsl.g:5615:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
-            // InternalPerspectiveDsl.g:5616:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
+            // InternalPerspectiveDsl.g:5576:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalPerspectiveDsl.g:5577:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
             {
-            // InternalPerspectiveDsl.g:5616:3: ()
-            // InternalPerspectiveDsl.g:5617:4: 
+            // InternalPerspectiveDsl.g:5577:3: ()
+            // InternalPerspectiveDsl.g:5578:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15759,39 +15629,39 @@
 
             }
 
-            otherlv_1=(Token)match(input,100,FOLLOW_74); if (state.failed) return current;
+            otherlv_1=(Token)match(input,99,FOLLOW_74); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:5627:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:5588:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
             int alt81=2;
             alt81 = dfa81.predict(input);
             switch (alt81) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5628:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalPerspectiveDsl.g:5589:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
                     {
-                    // InternalPerspectiveDsl.g:5628:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
-                    // InternalPerspectiveDsl.g:5629:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
+                    // InternalPerspectiveDsl.g:5589:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalPerspectiveDsl.g:5590:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
                     {
-                    // InternalPerspectiveDsl.g:5629:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-                    // InternalPerspectiveDsl.g:5630:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalPerspectiveDsl.g:5590:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+                    // InternalPerspectiveDsl.g:5591:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
                     {
-                    // InternalPerspectiveDsl.g:5640:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-                    // InternalPerspectiveDsl.g:5641:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+                    // InternalPerspectiveDsl.g:5601:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalPerspectiveDsl.g:5602:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
                     {
-                    otherlv_2=(Token)match(input,57,FOLLOW_46); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,56,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
                       						
                     }
-                    // InternalPerspectiveDsl.g:5645:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-                    // InternalPerspectiveDsl.g:5646:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalPerspectiveDsl.g:5606:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+                    // InternalPerspectiveDsl.g:5607:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
                     {
-                    // InternalPerspectiveDsl.g:5646:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-                    // InternalPerspectiveDsl.g:5647:9: lv_declaredParam_3_0= ruleJvmFormalParameter
+                    // InternalPerspectiveDsl.g:5607:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalPerspectiveDsl.g:5608:9: lv_declaredParam_3_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15822,7 +15692,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,101,FOLLOW_33); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,100,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
@@ -15834,11 +15704,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:5670:5: ( (lv_switch_5_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:5671:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5631:5: ( (lv_switch_5_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5632:6: (lv_switch_5_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:5671:6: (lv_switch_5_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:5672:7: lv_switch_5_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:5632:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5633:7: lv_switch_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15869,7 +15739,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,59,FOLLOW_63); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,58,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
@@ -15882,26 +15752,26 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:5695:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalPerspectiveDsl.g:5656:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
                     {
-                    // InternalPerspectiveDsl.g:5695:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
-                    // InternalPerspectiveDsl.g:5696:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5656:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalPerspectiveDsl.g:5657:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
                     {
-                    // InternalPerspectiveDsl.g:5696:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
+                    // InternalPerspectiveDsl.g:5657:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
                     int alt80=2;
                     alt80 = dfa80.predict(input);
                     switch (alt80) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:5697:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalPerspectiveDsl.g:5658:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
                             {
-                            // InternalPerspectiveDsl.g:5706:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
-                            // InternalPerspectiveDsl.g:5707:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
+                            // InternalPerspectiveDsl.g:5667:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalPerspectiveDsl.g:5668:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
                             {
-                            // InternalPerspectiveDsl.g:5707:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
-                            // InternalPerspectiveDsl.g:5708:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalPerspectiveDsl.g:5668:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
+                            // InternalPerspectiveDsl.g:5669:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
                             {
-                            // InternalPerspectiveDsl.g:5708:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
-                            // InternalPerspectiveDsl.g:5709:9: lv_declaredParam_7_0= ruleJvmFormalParameter
+                            // InternalPerspectiveDsl.g:5669:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalPerspectiveDsl.g:5670:9: lv_declaredParam_7_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
@@ -15932,7 +15802,7 @@
 
                             }
 
-                            otherlv_8=(Token)match(input,101,FOLLOW_33); if (state.failed) return current;
+                            otherlv_8=(Token)match(input,100,FOLLOW_33); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
@@ -15947,11 +15817,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:5732:5: ( (lv_switch_9_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:5733:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5693:5: ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5694:6: (lv_switch_9_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:5733:6: (lv_switch_9_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:5734:7: lv_switch_9_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:5694:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5695:7: lv_switch_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15997,23 +15867,23 @@
               			newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
               		
             }
-            // InternalPerspectiveDsl.g:5757:3: ( (lv_cases_11_0= ruleXCasePart ) )*
+            // InternalPerspectiveDsl.g:5718:3: ( (lv_cases_11_0= ruleXCasePart ) )*
             loop82:
             do {
                 int alt82=2;
                 int LA82_0 = input.LA(1);
 
-                if ( (LA82_0==RULE_ID||(LA82_0>=57 && LA82_0<=58)||LA82_0==82||LA82_0==101||LA82_0==103) ) {
+                if ( (LA82_0==RULE_ID||(LA82_0>=56 && LA82_0<=57)||LA82_0==81||LA82_0==100||LA82_0==102) ) {
                     alt82=1;
                 }
 
 
                 switch (alt82) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:5758:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalPerspectiveDsl.g:5719:4: (lv_cases_11_0= ruleXCasePart )
             	    {
-            	    // InternalPerspectiveDsl.g:5758:4: (lv_cases_11_0= ruleXCasePart )
-            	    // InternalPerspectiveDsl.g:5759:5: lv_cases_11_0= ruleXCasePart
+            	    // InternalPerspectiveDsl.g:5719:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalPerspectiveDsl.g:5720:5: lv_cases_11_0= ruleXCasePart
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -16050,34 +15920,34 @@
                 }
             } while (true);
 
-            // InternalPerspectiveDsl.g:5776:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
+            // InternalPerspectiveDsl.g:5737:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
             int alt83=2;
             int LA83_0 = input.LA(1);
 
-            if ( (LA83_0==102) ) {
+            if ( (LA83_0==101) ) {
                 alt83=1;
             }
             switch (alt83) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5777:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5738:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
                     {
-                    otherlv_12=(Token)match(input,102,FOLLOW_75); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,101,FOLLOW_75); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
                       			
                     }
-                    otherlv_13=(Token)match(input,101,FOLLOW_33); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,100,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
                       			
                     }
-                    // InternalPerspectiveDsl.g:5785:4: ( (lv_default_14_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:5786:5: (lv_default_14_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5746:4: ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5747:5: (lv_default_14_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:5786:5: (lv_default_14_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:5787:6: lv_default_14_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:5747:5: (lv_default_14_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5748:6: lv_default_14_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16145,7 +16015,7 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalPerspectiveDsl.g:5813:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
+    // InternalPerspectiveDsl.g:5774:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
     public final EObject entryRuleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -16153,8 +16023,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5813:50: (iv_ruleXCasePart= ruleXCasePart EOF )
-            // InternalPerspectiveDsl.g:5814:2: iv_ruleXCasePart= ruleXCasePart EOF
+            // InternalPerspectiveDsl.g:5774:50: (iv_ruleXCasePart= ruleXCasePart EOF )
+            // InternalPerspectiveDsl.g:5775:2: iv_ruleXCasePart= ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCasePartRule()); 
@@ -16185,7 +16055,7 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalPerspectiveDsl.g:5820:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
+    // InternalPerspectiveDsl.g:5781:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
     public final EObject ruleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -16203,14 +16073,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5826:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
-            // InternalPerspectiveDsl.g:5827:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalPerspectiveDsl.g:5787:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
+            // InternalPerspectiveDsl.g:5788:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
             {
-            // InternalPerspectiveDsl.g:5827:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
-            // InternalPerspectiveDsl.g:5828:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            // InternalPerspectiveDsl.g:5788:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalPerspectiveDsl.g:5789:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
             {
-            // InternalPerspectiveDsl.g:5828:3: ()
-            // InternalPerspectiveDsl.g:5829:4: 
+            // InternalPerspectiveDsl.g:5789:3: ()
+            // InternalPerspectiveDsl.g:5790:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16222,19 +16092,19 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5835:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
+            // InternalPerspectiveDsl.g:5796:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
             int alt84=2;
             int LA84_0 = input.LA(1);
 
-            if ( (LA84_0==RULE_ID||LA84_0==57||LA84_0==82) ) {
+            if ( (LA84_0==RULE_ID||LA84_0==56||LA84_0==81) ) {
                 alt84=1;
             }
             switch (alt84) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5836:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:5797:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:5836:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
-                    // InternalPerspectiveDsl.g:5837:5: lv_typeGuard_1_0= ruleJvmTypeReference
+                    // InternalPerspectiveDsl.g:5797:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:5798:5: lv_typeGuard_1_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16268,28 +16138,28 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5854:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
+            // InternalPerspectiveDsl.g:5815:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
             int alt85=2;
             int LA85_0 = input.LA(1);
 
-            if ( (LA85_0==103) ) {
+            if ( (LA85_0==102) ) {
                 alt85=1;
             }
             switch (alt85) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5855:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5816:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
                     {
-                    otherlv_2=(Token)match(input,103,FOLLOW_33); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,102,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:5859:4: ( (lv_case_3_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:5860:5: (lv_case_3_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5820:4: ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5821:5: (lv_case_3_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:5860:5: (lv_case_3_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:5861:6: lv_case_3_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:5821:5: (lv_case_3_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5822:6: lv_case_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16326,14 +16196,14 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5879:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            // InternalPerspectiveDsl.g:5840:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
             int alt86=2;
             int LA86_0 = input.LA(1);
 
-            if ( (LA86_0==101) ) {
+            if ( (LA86_0==100) ) {
                 alt86=1;
             }
-            else if ( (LA86_0==58) ) {
+            else if ( (LA86_0==57) ) {
                 alt86=2;
             }
             else {
@@ -16345,22 +16215,22 @@
             }
             switch (alt86) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:5880:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalPerspectiveDsl.g:5841:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
                     {
-                    // InternalPerspectiveDsl.g:5880:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
-                    // InternalPerspectiveDsl.g:5881:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5841:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalPerspectiveDsl.g:5842:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
                     {
-                    otherlv_4=(Token)match(input,101,FOLLOW_33); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,100,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
                       				
                     }
-                    // InternalPerspectiveDsl.g:5885:5: ( (lv_then_5_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:5886:6: (lv_then_5_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5846:5: ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:5847:6: (lv_then_5_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:5886:6: (lv_then_5_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:5887:7: lv_then_5_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:5847:6: (lv_then_5_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:5848:7: lv_then_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16398,15 +16268,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:5906:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalPerspectiveDsl.g:5867:4: ( (lv_fallThrough_6_0= ',' ) )
                     {
-                    // InternalPerspectiveDsl.g:5906:4: ( (lv_fallThrough_6_0= ',' ) )
-                    // InternalPerspectiveDsl.g:5907:5: (lv_fallThrough_6_0= ',' )
+                    // InternalPerspectiveDsl.g:5867:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalPerspectiveDsl.g:5868:5: (lv_fallThrough_6_0= ',' )
                     {
-                    // InternalPerspectiveDsl.g:5907:5: (lv_fallThrough_6_0= ',' )
-                    // InternalPerspectiveDsl.g:5908:6: lv_fallThrough_6_0= ','
+                    // InternalPerspectiveDsl.g:5868:5: (lv_fallThrough_6_0= ',' )
+                    // InternalPerspectiveDsl.g:5869:6: lv_fallThrough_6_0= ','
                     {
-                    lv_fallThrough_6_0=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+                    lv_fallThrough_6_0=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
@@ -16457,7 +16327,7 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalPerspectiveDsl.g:5925:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
+    // InternalPerspectiveDsl.g:5886:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
     public final EObject entryRuleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16465,8 +16335,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:5925:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
-            // InternalPerspectiveDsl.g:5926:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
+            // InternalPerspectiveDsl.g:5886:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
+            // InternalPerspectiveDsl.g:5887:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXForLoopExpressionRule()); 
@@ -16497,7 +16367,7 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalPerspectiveDsl.g:5932:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
+    // InternalPerspectiveDsl.g:5893:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
     public final EObject ruleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16516,20 +16386,20 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:5938:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
-            // InternalPerspectiveDsl.g:5939:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:5899:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:5900:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
             {
-            // InternalPerspectiveDsl.g:5939:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
-            // InternalPerspectiveDsl.g:5940:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:5900:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:5901:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
             {
-            // InternalPerspectiveDsl.g:5940:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-            // InternalPerspectiveDsl.g:5941:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalPerspectiveDsl.g:5901:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+            // InternalPerspectiveDsl.g:5902:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
             {
-            // InternalPerspectiveDsl.g:5954:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-            // InternalPerspectiveDsl.g:5955:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+            // InternalPerspectiveDsl.g:5915:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalPerspectiveDsl.g:5916:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
             {
-            // InternalPerspectiveDsl.g:5955:5: ()
-            // InternalPerspectiveDsl.g:5956:6: 
+            // InternalPerspectiveDsl.g:5916:5: ()
+            // InternalPerspectiveDsl.g:5917:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16541,23 +16411,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,104,FOLLOW_72); if (state.failed) return current;
+            otherlv_1=(Token)match(input,103,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,57,FOLLOW_46); if (state.failed) return current;
+            otherlv_2=(Token)match(input,56,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
               				
             }
-            // InternalPerspectiveDsl.g:5970:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:5971:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:5931:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:5932:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:5971:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-            // InternalPerspectiveDsl.g:5972:7: lv_declaredParam_3_0= ruleJvmFormalParameter
+            // InternalPerspectiveDsl.g:5932:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalPerspectiveDsl.g:5933:7: lv_declaredParam_3_0= ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
@@ -16588,7 +16458,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,101,FOLLOW_33); if (state.failed) return current;
+            otherlv_4=(Token)match(input,100,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
@@ -16600,11 +16470,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:5995:3: ( (lv_forExpression_5_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:5996:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5956:3: ( (lv_forExpression_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:5957:4: (lv_forExpression_5_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:5996:4: (lv_forExpression_5_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:5997:5: lv_forExpression_5_0= ruleXExpression
+            // InternalPerspectiveDsl.g:5957:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5958:5: lv_forExpression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -16635,17 +16505,17 @@
 
             }
 
-            otherlv_6=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
+            otherlv_6=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:6018:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:6019:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5979:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:5980:4: (lv_eachExpression_7_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:6019:4: (lv_eachExpression_7_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:6020:5: lv_eachExpression_7_0= ruleXExpression
+            // InternalPerspectiveDsl.g:5980:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:5981:5: lv_eachExpression_7_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -16701,7 +16571,7 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalPerspectiveDsl.g:6041:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
+    // InternalPerspectiveDsl.g:6002:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
     public final EObject entryRuleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16709,8 +16579,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6041:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
-            // InternalPerspectiveDsl.g:6042:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
+            // InternalPerspectiveDsl.g:6002:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
+            // InternalPerspectiveDsl.g:6003:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -16741,7 +16611,7 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalPerspectiveDsl.g:6048:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
+    // InternalPerspectiveDsl.g:6009:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
     public final EObject ruleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16769,14 +16639,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6054:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
-            // InternalPerspectiveDsl.g:6055:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:6015:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:6016:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
             {
-            // InternalPerspectiveDsl.g:6055:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
-            // InternalPerspectiveDsl.g:6056:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6016:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:6017:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
             {
-            // InternalPerspectiveDsl.g:6056:3: ()
-            // InternalPerspectiveDsl.g:6057:4: 
+            // InternalPerspectiveDsl.g:6017:3: ()
+            // InternalPerspectiveDsl.g:6018:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16788,34 +16658,34 @@
 
             }
 
-            otherlv_1=(Token)match(input,104,FOLLOW_72); if (state.failed) return current;
+            otherlv_1=(Token)match(input,103,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,57,FOLLOW_80); if (state.failed) return current;
+            otherlv_2=(Token)match(input,56,FOLLOW_80); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:6071:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
+            // InternalPerspectiveDsl.g:6032:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
             int alt88=2;
             int LA88_0 = input.LA(1);
 
-            if ( ((LA88_0>=RULE_ID && LA88_0<=RULE_DECIMAL)||LA88_0==14||(LA88_0>=50 && LA88_0<=52)||LA88_0==57||(LA88_0>=61 && LA88_0<=62)||LA88_0==69||(LA88_0>=85 && LA88_0<=86)||LA88_0==90||LA88_0==98||LA88_0==100||(LA88_0>=104 && LA88_0<=118)||LA88_0==120) ) {
+            if ( ((LA88_0>=RULE_ID && LA88_0<=RULE_DECIMAL)||LA88_0==14||(LA88_0>=49 && LA88_0<=51)||LA88_0==56||(LA88_0>=60 && LA88_0<=61)||LA88_0==68||(LA88_0>=84 && LA88_0<=85)||LA88_0==89||LA88_0==97||LA88_0==99||(LA88_0>=103 && LA88_0<=117)||LA88_0==119) ) {
                 alt88=1;
             }
             switch (alt88) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6072:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    // InternalPerspectiveDsl.g:6033:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
                     {
-                    // InternalPerspectiveDsl.g:6072:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
-                    // InternalPerspectiveDsl.g:6073:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalPerspectiveDsl.g:6033:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
+                    // InternalPerspectiveDsl.g:6034:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
                     {
-                    // InternalPerspectiveDsl.g:6073:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
-                    // InternalPerspectiveDsl.g:6074:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
+                    // InternalPerspectiveDsl.g:6034:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalPerspectiveDsl.g:6035:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16846,32 +16716,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:6091:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    // InternalPerspectiveDsl.g:6052:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
                     loop87:
                     do {
                         int alt87=2;
                         int LA87_0 = input.LA(1);
 
-                        if ( (LA87_0==58) ) {
+                        if ( (LA87_0==57) ) {
                             alt87=1;
                         }
 
 
                         switch (alt87) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:6092:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalPerspectiveDsl.g:6053:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,58,FOLLOW_82); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,57,FOLLOW_82); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalPerspectiveDsl.g:6096:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
-                    	    // InternalPerspectiveDsl.g:6097:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalPerspectiveDsl.g:6057:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalPerspectiveDsl.g:6058:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
                     	    {
-                    	    // InternalPerspectiveDsl.g:6097:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
-                    	    // InternalPerspectiveDsl.g:6098:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
+                    	    // InternalPerspectiveDsl.g:6058:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalPerspectiveDsl.g:6059:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -16917,25 +16787,25 @@
 
             }
 
-            otherlv_6=(Token)match(input,55,FOLLOW_83); if (state.failed) return current;
+            otherlv_6=(Token)match(input,54,FOLLOW_83); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
               		
             }
-            // InternalPerspectiveDsl.g:6121:3: ( (lv_expression_7_0= ruleXExpression ) )?
+            // InternalPerspectiveDsl.g:6082:3: ( (lv_expression_7_0= ruleXExpression ) )?
             int alt89=2;
             int LA89_0 = input.LA(1);
 
-            if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_DECIMAL)||LA89_0==14||(LA89_0>=50 && LA89_0<=52)||LA89_0==57||(LA89_0>=61 && LA89_0<=62)||LA89_0==69||(LA89_0>=85 && LA89_0<=86)||LA89_0==90||LA89_0==98||LA89_0==100||(LA89_0>=104 && LA89_0<=106)||(LA89_0>=109 && LA89_0<=118)||LA89_0==120) ) {
+            if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_DECIMAL)||LA89_0==14||(LA89_0>=49 && LA89_0<=51)||LA89_0==56||(LA89_0>=60 && LA89_0<=61)||LA89_0==68||(LA89_0>=84 && LA89_0<=85)||LA89_0==89||LA89_0==97||LA89_0==99||(LA89_0>=103 && LA89_0<=105)||(LA89_0>=108 && LA89_0<=117)||LA89_0==119) ) {
                 alt89=1;
             }
             switch (alt89) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6122:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:6083:4: (lv_expression_7_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:6122:4: (lv_expression_7_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:6123:5: lv_expression_7_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:6083:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:6084:5: lv_expression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16969,28 +16839,28 @@
 
             }
 
-            otherlv_8=(Token)match(input,55,FOLLOW_29); if (state.failed) return current;
+            otherlv_8=(Token)match(input,54,FOLLOW_29); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
               		
             }
-            // InternalPerspectiveDsl.g:6144:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
+            // InternalPerspectiveDsl.g:6105:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
             int alt91=2;
             int LA91_0 = input.LA(1);
 
-            if ( ((LA91_0>=RULE_ID && LA91_0<=RULE_DECIMAL)||LA91_0==14||(LA91_0>=50 && LA91_0<=52)||LA91_0==57||(LA91_0>=61 && LA91_0<=62)||LA91_0==69||(LA91_0>=85 && LA91_0<=86)||LA91_0==90||LA91_0==98||LA91_0==100||(LA91_0>=104 && LA91_0<=106)||(LA91_0>=109 && LA91_0<=118)||LA91_0==120) ) {
+            if ( ((LA91_0>=RULE_ID && LA91_0<=RULE_DECIMAL)||LA91_0==14||(LA91_0>=49 && LA91_0<=51)||LA91_0==56||(LA91_0>=60 && LA91_0<=61)||LA91_0==68||(LA91_0>=84 && LA91_0<=85)||LA91_0==89||LA91_0==97||LA91_0==99||(LA91_0>=103 && LA91_0<=105)||(LA91_0>=108 && LA91_0<=117)||LA91_0==119) ) {
                 alt91=1;
             }
             switch (alt91) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6145:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    // InternalPerspectiveDsl.g:6106:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
                     {
-                    // InternalPerspectiveDsl.g:6145:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:6146:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:6106:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:6107:5: (lv_updateExpressions_9_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:6146:5: (lv_updateExpressions_9_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:6147:6: lv_updateExpressions_9_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:6107:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:6108:6: lv_updateExpressions_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17021,32 +16891,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:6164:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    // InternalPerspectiveDsl.g:6125:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
                     loop90:
                     do {
                         int alt90=2;
                         int LA90_0 = input.LA(1);
 
-                        if ( (LA90_0==58) ) {
+                        if ( (LA90_0==57) ) {
                             alt90=1;
                         }
 
 
                         switch (alt90) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:6165:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalPerspectiveDsl.g:6126:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_10=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                    	    otherlv_10=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
                     	      				
                     	    }
-                    	    // InternalPerspectiveDsl.g:6169:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
-                    	    // InternalPerspectiveDsl.g:6170:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalPerspectiveDsl.g:6130:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalPerspectiveDsl.g:6131:6: (lv_updateExpressions_11_0= ruleXExpression )
                     	    {
-                    	    // InternalPerspectiveDsl.g:6170:6: (lv_updateExpressions_11_0= ruleXExpression )
-                    	    // InternalPerspectiveDsl.g:6171:7: lv_updateExpressions_11_0= ruleXExpression
+                    	    // InternalPerspectiveDsl.g:6131:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalPerspectiveDsl.g:6132:7: lv_updateExpressions_11_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -17092,17 +16962,17 @@
 
             }
 
-            otherlv_12=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
+            otherlv_12=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
               		
             }
-            // InternalPerspectiveDsl.g:6194:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:6195:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6155:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6156:4: (lv_eachExpression_13_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:6195:4: (lv_eachExpression_13_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:6196:5: lv_eachExpression_13_0= ruleXExpression
+            // InternalPerspectiveDsl.g:6156:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6157:5: lv_eachExpression_13_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17158,7 +17028,7 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalPerspectiveDsl.g:6217:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
+    // InternalPerspectiveDsl.g:6178:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
     public final EObject entryRuleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17166,8 +17036,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6217:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
-            // InternalPerspectiveDsl.g:6218:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
+            // InternalPerspectiveDsl.g:6178:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
+            // InternalPerspectiveDsl.g:6179:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXWhileExpressionRule()); 
@@ -17198,7 +17068,7 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalPerspectiveDsl.g:6224:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
+    // InternalPerspectiveDsl.g:6185:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17214,14 +17084,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6230:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
-            // InternalPerspectiveDsl.g:6231:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:6191:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:6192:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
             {
-            // InternalPerspectiveDsl.g:6231:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
-            // InternalPerspectiveDsl.g:6232:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6192:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:6193:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
             {
-            // InternalPerspectiveDsl.g:6232:3: ()
-            // InternalPerspectiveDsl.g:6233:4: 
+            // InternalPerspectiveDsl.g:6193:3: ()
+            // InternalPerspectiveDsl.g:6194:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17233,23 +17103,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,105,FOLLOW_72); if (state.failed) return current;
+            otherlv_1=(Token)match(input,104,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
+            otherlv_2=(Token)match(input,56,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:6247:3: ( (lv_predicate_3_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:6248:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6208:3: ( (lv_predicate_3_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6209:4: (lv_predicate_3_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:6248:4: (lv_predicate_3_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:6249:5: lv_predicate_3_0= ruleXExpression
+            // InternalPerspectiveDsl.g:6209:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6210:5: lv_predicate_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17280,17 +17150,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
+            otherlv_4=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalPerspectiveDsl.g:6270:3: ( (lv_body_5_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:6271:4: (lv_body_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6231:3: ( (lv_body_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6232:4: (lv_body_5_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:6271:4: (lv_body_5_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:6272:5: lv_body_5_0= ruleXExpression
+            // InternalPerspectiveDsl.g:6232:4: (lv_body_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6233:5: lv_body_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17346,7 +17216,7 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalPerspectiveDsl.g:6293:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
+    // InternalPerspectiveDsl.g:6254:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
     public final EObject entryRuleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17354,8 +17224,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6293:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
-            // InternalPerspectiveDsl.g:6294:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
+            // InternalPerspectiveDsl.g:6254:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
+            // InternalPerspectiveDsl.g:6255:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); 
@@ -17386,7 +17256,7 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalPerspectiveDsl.g:6300:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
+    // InternalPerspectiveDsl.g:6261:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
     public final EObject ruleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17403,14 +17273,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6306:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
-            // InternalPerspectiveDsl.g:6307:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalPerspectiveDsl.g:6267:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
+            // InternalPerspectiveDsl.g:6268:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
             {
-            // InternalPerspectiveDsl.g:6307:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
-            // InternalPerspectiveDsl.g:6308:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
+            // InternalPerspectiveDsl.g:6268:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalPerspectiveDsl.g:6269:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
             {
-            // InternalPerspectiveDsl.g:6308:3: ()
-            // InternalPerspectiveDsl.g:6309:4: 
+            // InternalPerspectiveDsl.g:6269:3: ()
+            // InternalPerspectiveDsl.g:6270:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17422,17 +17292,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,106,FOLLOW_33); if (state.failed) return current;
+            otherlv_1=(Token)match(input,105,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:6319:3: ( (lv_body_2_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:6320:4: (lv_body_2_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6280:3: ( (lv_body_2_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6281:4: (lv_body_2_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:6320:4: (lv_body_2_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:6321:5: lv_body_2_0= ruleXExpression
+            // InternalPerspectiveDsl.g:6281:4: (lv_body_2_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6282:5: lv_body_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17463,23 +17333,23 @@
 
             }
 
-            otherlv_3=(Token)match(input,105,FOLLOW_72); if (state.failed) return current;
+            otherlv_3=(Token)match(input,104,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
               		
             }
-            otherlv_4=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
+            otherlv_4=(Token)match(input,56,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
               		
             }
-            // InternalPerspectiveDsl.g:6346:3: ( (lv_predicate_5_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:6347:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6307:3: ( (lv_predicate_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6308:4: (lv_predicate_5_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:6347:4: (lv_predicate_5_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:6348:5: lv_predicate_5_0= ruleXExpression
+            // InternalPerspectiveDsl.g:6308:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:6309:5: lv_predicate_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17510,7 +17380,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
@@ -17541,7 +17411,7 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalPerspectiveDsl.g:6373:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
+    // InternalPerspectiveDsl.g:6334:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
     public final EObject entryRuleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17549,8 +17419,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6373:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
-            // InternalPerspectiveDsl.g:6374:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
+            // InternalPerspectiveDsl.g:6334:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
+            // InternalPerspectiveDsl.g:6335:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBlockExpressionRule()); 
@@ -17581,7 +17451,7 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalPerspectiveDsl.g:6380:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
+    // InternalPerspectiveDsl.g:6341:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
     public final EObject ruleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17595,14 +17465,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6386:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
-            // InternalPerspectiveDsl.g:6387:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalPerspectiveDsl.g:6347:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
+            // InternalPerspectiveDsl.g:6348:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
             {
-            // InternalPerspectiveDsl.g:6387:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
-            // InternalPerspectiveDsl.g:6388:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
+            // InternalPerspectiveDsl.g:6348:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalPerspectiveDsl.g:6349:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
             {
-            // InternalPerspectiveDsl.g:6388:3: ()
-            // InternalPerspectiveDsl.g:6389:4: 
+            // InternalPerspectiveDsl.g:6349:3: ()
+            // InternalPerspectiveDsl.g:6350:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17620,26 +17490,26 @@
               			newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:6399:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
+            // InternalPerspectiveDsl.g:6360:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
             loop93:
             do {
                 int alt93=2;
                 int LA93_0 = input.LA(1);
 
-                if ( ((LA93_0>=RULE_ID && LA93_0<=RULE_DECIMAL)||LA93_0==14||(LA93_0>=50 && LA93_0<=52)||LA93_0==57||(LA93_0>=61 && LA93_0<=62)||LA93_0==69||(LA93_0>=85 && LA93_0<=86)||LA93_0==90||LA93_0==98||LA93_0==100||(LA93_0>=104 && LA93_0<=118)||LA93_0==120) ) {
+                if ( ((LA93_0>=RULE_ID && LA93_0<=RULE_DECIMAL)||LA93_0==14||(LA93_0>=49 && LA93_0<=51)||LA93_0==56||(LA93_0>=60 && LA93_0<=61)||LA93_0==68||(LA93_0>=84 && LA93_0<=85)||LA93_0==89||LA93_0==97||LA93_0==99||(LA93_0>=103 && LA93_0<=117)||LA93_0==119) ) {
                     alt93=1;
                 }
 
 
                 switch (alt93) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:6400:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
+            	    // InternalPerspectiveDsl.g:6361:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
             	    {
-            	    // InternalPerspectiveDsl.g:6400:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalPerspectiveDsl.g:6401:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalPerspectiveDsl.g:6361:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalPerspectiveDsl.g:6362:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalPerspectiveDsl.g:6401:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalPerspectiveDsl.g:6402:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
+            	    // InternalPerspectiveDsl.g:6362:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalPerspectiveDsl.g:6363:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -17670,18 +17540,18 @@
 
             	    }
 
-            	    // InternalPerspectiveDsl.g:6419:4: (otherlv_3= ';' )?
+            	    // InternalPerspectiveDsl.g:6380:4: (otherlv_3= ';' )?
             	    int alt92=2;
             	    int LA92_0 = input.LA(1);
 
-            	    if ( (LA92_0==55) ) {
+            	    if ( (LA92_0==54) ) {
             	        alt92=1;
             	    }
             	    switch (alt92) {
             	        case 1 :
-            	            // InternalPerspectiveDsl.g:6420:5: otherlv_3= ';'
+            	            // InternalPerspectiveDsl.g:6381:5: otherlv_3= ';'
             	            {
-            	            otherlv_3=(Token)match(input,55,FOLLOW_86); if (state.failed) return current;
+            	            otherlv_3=(Token)match(input,54,FOLLOW_86); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
@@ -17733,7 +17603,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalPerspectiveDsl.g:6434:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
+    // InternalPerspectiveDsl.g:6395:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
     public final EObject entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17741,8 +17611,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6434:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
-            // InternalPerspectiveDsl.g:6435:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
+            // InternalPerspectiveDsl.g:6395:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
+            // InternalPerspectiveDsl.g:6396:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -17773,7 +17643,7 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalPerspectiveDsl.g:6441:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
+    // InternalPerspectiveDsl.g:6402:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17786,17 +17656,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6447:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:6448:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            // InternalPerspectiveDsl.g:6408:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:6409:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:6448:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            // InternalPerspectiveDsl.g:6409:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
             int alt94=2;
             int LA94_0 = input.LA(1);
 
-            if ( ((LA94_0>=107 && LA94_0<=108)) ) {
+            if ( ((LA94_0>=106 && LA94_0<=107)) ) {
                 alt94=1;
             }
-            else if ( ((LA94_0>=RULE_ID && LA94_0<=RULE_DECIMAL)||LA94_0==14||(LA94_0>=50 && LA94_0<=52)||LA94_0==57||(LA94_0>=61 && LA94_0<=62)||LA94_0==69||(LA94_0>=85 && LA94_0<=86)||LA94_0==90||LA94_0==98||LA94_0==100||(LA94_0>=104 && LA94_0<=106)||(LA94_0>=109 && LA94_0<=118)||LA94_0==120) ) {
+            else if ( ((LA94_0>=RULE_ID && LA94_0<=RULE_DECIMAL)||LA94_0==14||(LA94_0>=49 && LA94_0<=51)||LA94_0==56||(LA94_0>=60 && LA94_0<=61)||LA94_0==68||(LA94_0>=84 && LA94_0<=85)||LA94_0==89||LA94_0==97||LA94_0==99||(LA94_0>=103 && LA94_0<=105)||(LA94_0>=108 && LA94_0<=117)||LA94_0==119) ) {
                 alt94=2;
             }
             else {
@@ -17808,7 +17678,7 @@
             }
             switch (alt94) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6449:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
+                    // InternalPerspectiveDsl.g:6410:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17830,7 +17700,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:6458:3: this_XExpression_1= ruleXExpression
+                    // InternalPerspectiveDsl.g:6419:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17876,7 +17746,7 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalPerspectiveDsl.g:6470:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
+    // InternalPerspectiveDsl.g:6431:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
     public final EObject entryRuleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17884,8 +17754,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6470:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
-            // InternalPerspectiveDsl.g:6471:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
+            // InternalPerspectiveDsl.g:6431:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
+            // InternalPerspectiveDsl.g:6432:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXVariableDeclarationRule()); 
@@ -17916,7 +17786,7 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalPerspectiveDsl.g:6477:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
+    // InternalPerspectiveDsl.g:6438:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17936,14 +17806,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6483:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
-            // InternalPerspectiveDsl.g:6484:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalPerspectiveDsl.g:6444:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
+            // InternalPerspectiveDsl.g:6445:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
             {
-            // InternalPerspectiveDsl.g:6484:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
-            // InternalPerspectiveDsl.g:6485:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            // InternalPerspectiveDsl.g:6445:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalPerspectiveDsl.g:6446:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
             {
-            // InternalPerspectiveDsl.g:6485:3: ()
-            // InternalPerspectiveDsl.g:6486:4: 
+            // InternalPerspectiveDsl.g:6446:3: ()
+            // InternalPerspectiveDsl.g:6447:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17955,14 +17825,14 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6492:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
+            // InternalPerspectiveDsl.g:6453:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
             int alt95=2;
             int LA95_0 = input.LA(1);
 
-            if ( (LA95_0==107) ) {
+            if ( (LA95_0==106) ) {
                 alt95=1;
             }
-            else if ( (LA95_0==108) ) {
+            else if ( (LA95_0==107) ) {
                 alt95=2;
             }
             else {
@@ -17974,15 +17844,15 @@
             }
             switch (alt95) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6493:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalPerspectiveDsl.g:6454:4: ( (lv_writeable_1_0= 'var' ) )
                     {
-                    // InternalPerspectiveDsl.g:6493:4: ( (lv_writeable_1_0= 'var' ) )
-                    // InternalPerspectiveDsl.g:6494:5: (lv_writeable_1_0= 'var' )
+                    // InternalPerspectiveDsl.g:6454:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalPerspectiveDsl.g:6455:5: (lv_writeable_1_0= 'var' )
                     {
-                    // InternalPerspectiveDsl.g:6494:5: (lv_writeable_1_0= 'var' )
-                    // InternalPerspectiveDsl.g:6495:6: lv_writeable_1_0= 'var'
+                    // InternalPerspectiveDsl.g:6455:5: (lv_writeable_1_0= 'var' )
+                    // InternalPerspectiveDsl.g:6456:6: lv_writeable_1_0= 'var'
                     {
-                    lv_writeable_1_0=(Token)match(input,107,FOLLOW_46); if (state.failed) return current;
+                    lv_writeable_1_0=(Token)match(input,106,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
@@ -18006,9 +17876,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:6508:4: otherlv_2= 'val'
+                    // InternalPerspectiveDsl.g:6469:4: otherlv_2= 'val'
                     {
-                    otherlv_2=(Token)match(input,108,FOLLOW_46); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,107,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
@@ -18020,7 +17890,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6513:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:6474:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
             int alt96=2;
             int LA96_0 = input.LA(1);
 
@@ -18041,10 +17911,10 @@
                     throw nvae;
                 }
             }
-            else if ( (LA96_0==57) && (synpred35_InternalPerspectiveDsl())) {
+            else if ( (LA96_0==56) && (synpred35_InternalPerspectiveDsl())) {
                 alt96=1;
             }
-            else if ( (LA96_0==82) && (synpred35_InternalPerspectiveDsl())) {
+            else if ( (LA96_0==81) && (synpred35_InternalPerspectiveDsl())) {
                 alt96=1;
             }
             else {
@@ -18056,19 +17926,19 @@
             }
             switch (alt96) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6514:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalPerspectiveDsl.g:6475:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
                     {
-                    // InternalPerspectiveDsl.g:6514:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
-                    // InternalPerspectiveDsl.g:6515:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalPerspectiveDsl.g:6475:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalPerspectiveDsl.g:6476:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
                     {
-                    // InternalPerspectiveDsl.g:6528:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
-                    // InternalPerspectiveDsl.g:6529:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
+                    // InternalPerspectiveDsl.g:6489:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalPerspectiveDsl.g:6490:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
                     {
-                    // InternalPerspectiveDsl.g:6529:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
-                    // InternalPerspectiveDsl.g:6530:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:6490:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
+                    // InternalPerspectiveDsl.g:6491:7: (lv_type_3_0= ruleJvmTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:6530:7: (lv_type_3_0= ruleJvmTypeReference )
-                    // InternalPerspectiveDsl.g:6531:8: lv_type_3_0= ruleJvmTypeReference
+                    // InternalPerspectiveDsl.g:6491:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:6492:8: lv_type_3_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18099,11 +17969,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:6548:6: ( (lv_name_4_0= ruleValidID ) )
-                    // InternalPerspectiveDsl.g:6549:7: (lv_name_4_0= ruleValidID )
+                    // InternalPerspectiveDsl.g:6509:6: ( (lv_name_4_0= ruleValidID ) )
+                    // InternalPerspectiveDsl.g:6510:7: (lv_name_4_0= ruleValidID )
                     {
-                    // InternalPerspectiveDsl.g:6549:7: (lv_name_4_0= ruleValidID )
-                    // InternalPerspectiveDsl.g:6550:8: lv_name_4_0= ruleValidID
+                    // InternalPerspectiveDsl.g:6510:7: (lv_name_4_0= ruleValidID )
+                    // InternalPerspectiveDsl.g:6511:8: lv_name_4_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18144,13 +18014,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:6570:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalPerspectiveDsl.g:6531:4: ( (lv_name_5_0= ruleValidID ) )
                     {
-                    // InternalPerspectiveDsl.g:6570:4: ( (lv_name_5_0= ruleValidID ) )
-                    // InternalPerspectiveDsl.g:6571:5: (lv_name_5_0= ruleValidID )
+                    // InternalPerspectiveDsl.g:6531:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalPerspectiveDsl.g:6532:5: (lv_name_5_0= ruleValidID )
                     {
-                    // InternalPerspectiveDsl.g:6571:5: (lv_name_5_0= ruleValidID )
-                    // InternalPerspectiveDsl.g:6572:6: lv_name_5_0= ruleValidID
+                    // InternalPerspectiveDsl.g:6532:5: (lv_name_5_0= ruleValidID )
+                    // InternalPerspectiveDsl.g:6533:6: lv_name_5_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18187,28 +18057,28 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6590:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            // InternalPerspectiveDsl.g:6551:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
             int alt97=2;
             int LA97_0 = input.LA(1);
 
-            if ( (LA97_0==60) ) {
+            if ( (LA97_0==59) ) {
                 alt97=1;
             }
             switch (alt97) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6591:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:6552:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,60,FOLLOW_33); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:6595:4: ( (lv_right_7_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:6596:5: (lv_right_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:6556:4: ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:6557:5: (lv_right_7_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:6596:5: (lv_right_7_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:6597:6: lv_right_7_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:6557:5: (lv_right_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:6558:6: lv_right_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18270,7 +18140,7 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalPerspectiveDsl.g:6619:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
+    // InternalPerspectiveDsl.g:6580:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
     public final EObject entryRuleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18278,8 +18148,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6619:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
-            // InternalPerspectiveDsl.g:6620:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
+            // InternalPerspectiveDsl.g:6580:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
+            // InternalPerspectiveDsl.g:6581:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmFormalParameterRule()); 
@@ -18310,7 +18180,7 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalPerspectiveDsl.g:6626:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalPerspectiveDsl.g:6587:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18323,32 +18193,32 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6632:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalPerspectiveDsl.g:6633:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:6593:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalPerspectiveDsl.g:6594:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalPerspectiveDsl.g:6633:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalPerspectiveDsl.g:6634:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
+            // InternalPerspectiveDsl.g:6594:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:6595:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalPerspectiveDsl.g:6634:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
+            // InternalPerspectiveDsl.g:6595:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
             int alt98=2;
             int LA98_0 = input.LA(1);
 
             if ( (LA98_0==RULE_ID) ) {
                 int LA98_1 = input.LA(2);
 
-                if ( (LA98_1==RULE_ID||LA98_1==62||LA98_1==69||LA98_1==94) ) {
+                if ( (LA98_1==RULE_ID||LA98_1==61||LA98_1==68||LA98_1==93) ) {
                     alt98=1;
                 }
             }
-            else if ( (LA98_0==57||LA98_0==82) ) {
+            else if ( (LA98_0==56||LA98_0==81) ) {
                 alt98=1;
             }
             switch (alt98) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6635:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:6596:4: (lv_parameterType_0_0= ruleJvmTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:6635:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-                    // InternalPerspectiveDsl.g:6636:5: lv_parameterType_0_0= ruleJvmTypeReference
+                    // InternalPerspectiveDsl.g:6596:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalPerspectiveDsl.g:6597:5: lv_parameterType_0_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18382,11 +18252,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6653:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalPerspectiveDsl.g:6654:4: (lv_name_1_0= ruleValidID )
+            // InternalPerspectiveDsl.g:6614:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalPerspectiveDsl.g:6615:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalPerspectiveDsl.g:6654:4: (lv_name_1_0= ruleValidID )
-            // InternalPerspectiveDsl.g:6655:5: lv_name_1_0= ruleValidID
+            // InternalPerspectiveDsl.g:6615:4: (lv_name_1_0= ruleValidID )
+            // InternalPerspectiveDsl.g:6616:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -18442,7 +18312,7 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalPerspectiveDsl.g:6676:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
+    // InternalPerspectiveDsl.g:6637:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
     public final EObject entryRuleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18450,8 +18320,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6676:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
-            // InternalPerspectiveDsl.g:6677:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
+            // InternalPerspectiveDsl.g:6637:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
+            // InternalPerspectiveDsl.g:6638:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -18482,7 +18352,7 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalPerspectiveDsl.g:6683:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalPerspectiveDsl.g:6644:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18495,17 +18365,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6689:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalPerspectiveDsl.g:6690:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:6650:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalPerspectiveDsl.g:6651:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalPerspectiveDsl.g:6690:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalPerspectiveDsl.g:6691:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
+            // InternalPerspectiveDsl.g:6651:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalPerspectiveDsl.g:6652:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalPerspectiveDsl.g:6691:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:6692:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:6652:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:6653:4: (lv_parameterType_0_0= ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:6692:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:6693:5: lv_parameterType_0_0= ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:6653:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:6654:5: lv_parameterType_0_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -18536,11 +18406,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6710:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalPerspectiveDsl.g:6711:4: (lv_name_1_0= ruleValidID )
+            // InternalPerspectiveDsl.g:6671:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalPerspectiveDsl.g:6672:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalPerspectiveDsl.g:6711:4: (lv_name_1_0= ruleValidID )
-            // InternalPerspectiveDsl.g:6712:5: lv_name_1_0= ruleValidID
+            // InternalPerspectiveDsl.g:6672:4: (lv_name_1_0= ruleValidID )
+            // InternalPerspectiveDsl.g:6673:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -18596,7 +18466,7 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalPerspectiveDsl.g:6733:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
+    // InternalPerspectiveDsl.g:6694:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
     public final EObject entryRuleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -18604,8 +18474,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6733:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
-            // InternalPerspectiveDsl.g:6734:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
+            // InternalPerspectiveDsl.g:6694:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
+            // InternalPerspectiveDsl.g:6695:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFeatureCallRule()); 
@@ -18636,7 +18506,7 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalPerspectiveDsl.g:6740:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
+    // InternalPerspectiveDsl.g:6701:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
     public final EObject ruleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -18663,14 +18533,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6746:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
-            // InternalPerspectiveDsl.g:6747:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalPerspectiveDsl.g:6707:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
+            // InternalPerspectiveDsl.g:6708:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
             {
-            // InternalPerspectiveDsl.g:6747:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
-            // InternalPerspectiveDsl.g:6748:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            // InternalPerspectiveDsl.g:6708:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalPerspectiveDsl.g:6709:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
             {
-            // InternalPerspectiveDsl.g:6748:3: ()
-            // InternalPerspectiveDsl.g:6749:4: 
+            // InternalPerspectiveDsl.g:6709:3: ()
+            // InternalPerspectiveDsl.g:6710:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18682,28 +18552,28 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6755:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+            // InternalPerspectiveDsl.g:6716:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
             int alt100=2;
             int LA100_0 = input.LA(1);
 
-            if ( (LA100_0==69) ) {
+            if ( (LA100_0==68) ) {
                 alt100=1;
             }
             switch (alt100) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6756:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+                    // InternalPerspectiveDsl.g:6717:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
                     {
-                    otherlv_1=(Token)match(input,69,FOLLOW_58); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,68,FOLLOW_58); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:6760:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalPerspectiveDsl.g:6761:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalPerspectiveDsl.g:6721:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalPerspectiveDsl.g:6722:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:6761:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalPerspectiveDsl.g:6762:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalPerspectiveDsl.g:6722:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalPerspectiveDsl.g:6723:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18734,32 +18604,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:6779:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    // InternalPerspectiveDsl.g:6740:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
                     loop99:
                     do {
                         int alt99=2;
                         int LA99_0 = input.LA(1);
 
-                        if ( (LA99_0==58) ) {
+                        if ( (LA99_0==57) ) {
                             alt99=1;
                         }
 
 
                         switch (alt99) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:6780:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalPerspectiveDsl.g:6741:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,58,FOLLOW_58); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,57,FOLLOW_58); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalPerspectiveDsl.g:6784:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalPerspectiveDsl.g:6785:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalPerspectiveDsl.g:6745:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalPerspectiveDsl.g:6746:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalPerspectiveDsl.g:6785:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalPerspectiveDsl.g:6786:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalPerspectiveDsl.g:6746:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalPerspectiveDsl.g:6747:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -18799,7 +18669,7 @@
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,70,FOLLOW_57); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,69,FOLLOW_57); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
@@ -18811,11 +18681,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6809:3: ( ( ruleIdOrSuper ) )
-            // InternalPerspectiveDsl.g:6810:4: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:6770:3: ( ( ruleIdOrSuper ) )
+            // InternalPerspectiveDsl.g:6771:4: ( ruleIdOrSuper )
             {
-            // InternalPerspectiveDsl.g:6810:4: ( ruleIdOrSuper )
-            // InternalPerspectiveDsl.g:6811:5: ruleIdOrSuper
+            // InternalPerspectiveDsl.g:6771:4: ( ruleIdOrSuper )
+            // InternalPerspectiveDsl.g:6772:5: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
 
@@ -18845,20 +18715,20 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6825:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
+            // InternalPerspectiveDsl.g:6786:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
             int alt103=2;
             alt103 = dfa103.predict(input);
             switch (alt103) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6826:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
+                    // InternalPerspectiveDsl.g:6787:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
                     {
-                    // InternalPerspectiveDsl.g:6826:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
-                    // InternalPerspectiveDsl.g:6827:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
+                    // InternalPerspectiveDsl.g:6787:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
+                    // InternalPerspectiveDsl.g:6788:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
                     {
-                    // InternalPerspectiveDsl.g:6831:5: (lv_explicitOperationCall_7_0= '(' )
-                    // InternalPerspectiveDsl.g:6832:6: lv_explicitOperationCall_7_0= '('
+                    // InternalPerspectiveDsl.g:6792:5: (lv_explicitOperationCall_7_0= '(' )
+                    // InternalPerspectiveDsl.g:6793:6: lv_explicitOperationCall_7_0= '('
                     {
-                    lv_explicitOperationCall_7_0=(Token)match(input,57,FOLLOW_61); if (state.failed) return current;
+                    lv_explicitOperationCall_7_0=(Token)match(input,56,FOLLOW_61); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
@@ -18878,18 +18748,18 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:6844:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
+                    // InternalPerspectiveDsl.g:6805:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
                     int alt102=3;
                     alt102 = dfa102.predict(input);
                     switch (alt102) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:6845:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalPerspectiveDsl.g:6806:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
                             {
-                            // InternalPerspectiveDsl.g:6845:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
-                            // InternalPerspectiveDsl.g:6846:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalPerspectiveDsl.g:6806:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalPerspectiveDsl.g:6807:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
                             {
-                            // InternalPerspectiveDsl.g:6871:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
-                            // InternalPerspectiveDsl.g:6872:7: lv_featureCallArguments_8_0= ruleXShortClosure
+                            // InternalPerspectiveDsl.g:6832:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalPerspectiveDsl.g:6833:7: lv_featureCallArguments_8_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
@@ -18924,16 +18794,16 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:6890:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalPerspectiveDsl.g:6851:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
                             {
-                            // InternalPerspectiveDsl.g:6890:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
-                            // InternalPerspectiveDsl.g:6891:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            // InternalPerspectiveDsl.g:6851:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalPerspectiveDsl.g:6852:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:6891:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
-                            // InternalPerspectiveDsl.g:6892:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalPerspectiveDsl.g:6852:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
+                            // InternalPerspectiveDsl.g:6853:7: (lv_featureCallArguments_9_0= ruleXExpression )
                             {
-                            // InternalPerspectiveDsl.g:6892:7: (lv_featureCallArguments_9_0= ruleXExpression )
-                            // InternalPerspectiveDsl.g:6893:8: lv_featureCallArguments_9_0= ruleXExpression
+                            // InternalPerspectiveDsl.g:6853:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalPerspectiveDsl.g:6854:8: lv_featureCallArguments_9_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -18964,32 +18834,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:6910:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            // InternalPerspectiveDsl.g:6871:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
                             loop101:
                             do {
                                 int alt101=2;
                                 int LA101_0 = input.LA(1);
 
-                                if ( (LA101_0==58) ) {
+                                if ( (LA101_0==57) ) {
                                     alt101=1;
                                 }
 
 
                                 switch (alt101) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:6911:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalPerspectiveDsl.g:6872:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_10=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                            	    otherlv_10=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalPerspectiveDsl.g:6915:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
-                            	    // InternalPerspectiveDsl.g:6916:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalPerspectiveDsl.g:6876:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalPerspectiveDsl.g:6877:8: (lv_featureCallArguments_11_0= ruleXExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:6916:8: (lv_featureCallArguments_11_0= ruleXExpression )
-                            	    // InternalPerspectiveDsl.g:6917:9: lv_featureCallArguments_11_0= ruleXExpression
+                            	    // InternalPerspectiveDsl.g:6877:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalPerspectiveDsl.g:6878:9: lv_featureCallArguments_11_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -19038,7 +18908,7 @@
 
                     }
 
-                    otherlv_12=(Token)match(input,59,FOLLOW_90); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,58,FOLLOW_90); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
@@ -19050,15 +18920,15 @@
 
             }
 
-            // InternalPerspectiveDsl.g:6942:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            // InternalPerspectiveDsl.g:6903:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
             int alt104=2;
             alt104 = dfa104.predict(input);
             switch (alt104) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6943:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalPerspectiveDsl.g:6904:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
                     {
-                    // InternalPerspectiveDsl.g:6949:4: (lv_featureCallArguments_13_0= ruleXClosure )
-                    // InternalPerspectiveDsl.g:6950:5: lv_featureCallArguments_13_0= ruleXClosure
+                    // InternalPerspectiveDsl.g:6910:4: (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalPerspectiveDsl.g:6911:5: lv_featureCallArguments_13_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19117,7 +18987,7 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalPerspectiveDsl.g:6971:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
+    // InternalPerspectiveDsl.g:6932:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
     public final String entryRuleFeatureCallID() throws RecognitionException {
         String current = null;
 
@@ -19125,8 +18995,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:6971:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
-            // InternalPerspectiveDsl.g:6972:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
+            // InternalPerspectiveDsl.g:6932:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
+            // InternalPerspectiveDsl.g:6933:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFeatureCallIDRule()); 
@@ -19157,7 +19027,7 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalPerspectiveDsl.g:6978:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
+    // InternalPerspectiveDsl.g:6939:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
     public final AntlrDatatypeRuleToken ruleFeatureCallID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19169,10 +19039,10 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:6984:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
-            // InternalPerspectiveDsl.g:6985:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            // InternalPerspectiveDsl.g:6945:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
+            // InternalPerspectiveDsl.g:6946:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
             {
-            // InternalPerspectiveDsl.g:6985:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            // InternalPerspectiveDsl.g:6946:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
             int alt105=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
@@ -19180,22 +19050,22 @@
                 alt105=1;
                 }
                 break;
-            case 109:
+            case 108:
                 {
                 alt105=2;
                 }
                 break;
-            case 51:
+            case 50:
                 {
                 alt105=3;
                 }
                 break;
-            case 50:
+            case 49:
                 {
                 alt105=4;
                 }
                 break;
-            case 52:
+            case 51:
                 {
                 alt105=5;
                 }
@@ -19210,7 +19080,7 @@
 
             switch (alt105) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:6986:3: this_ValidID_0= ruleValidID
+                    // InternalPerspectiveDsl.g:6947:3: this_ValidID_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19236,9 +19106,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:6997:3: kw= 'extends'
+                    // InternalPerspectiveDsl.g:6958:3: kw= 'extends'
                     {
-                    kw=(Token)match(input,109,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,108,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19249,9 +19119,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalPerspectiveDsl.g:7003:3: kw= 'static'
+                    // InternalPerspectiveDsl.g:6964:3: kw= 'static'
                     {
-                    kw=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19262,9 +19132,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalPerspectiveDsl.g:7009:3: kw= 'import'
+                    // InternalPerspectiveDsl.g:6970:3: kw= 'import'
                     {
-                    kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19275,9 +19145,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalPerspectiveDsl.g:7015:3: kw= 'extension'
+                    // InternalPerspectiveDsl.g:6976:3: kw= 'extension'
                     {
-                    kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19312,7 +19182,7 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalPerspectiveDsl.g:7024:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
+    // InternalPerspectiveDsl.g:6985:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
     public final String entryRuleIdOrSuper() throws RecognitionException {
         String current = null;
 
@@ -19320,8 +19190,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7024:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
-            // InternalPerspectiveDsl.g:7025:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
+            // InternalPerspectiveDsl.g:6985:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
+            // InternalPerspectiveDsl.g:6986:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIdOrSuperRule()); 
@@ -19352,7 +19222,7 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalPerspectiveDsl.g:7031:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
+    // InternalPerspectiveDsl.g:6992:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
     public final AntlrDatatypeRuleToken ruleIdOrSuper() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19364,17 +19234,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7037:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
-            // InternalPerspectiveDsl.g:7038:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            // InternalPerspectiveDsl.g:6998:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
+            // InternalPerspectiveDsl.g:6999:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
             {
-            // InternalPerspectiveDsl.g:7038:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            // InternalPerspectiveDsl.g:6999:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
             int alt106=2;
             int LA106_0 = input.LA(1);
 
-            if ( (LA106_0==RULE_ID||(LA106_0>=50 && LA106_0<=52)||LA106_0==109) ) {
+            if ( (LA106_0==RULE_ID||(LA106_0>=49 && LA106_0<=51)||LA106_0==108) ) {
                 alt106=1;
             }
-            else if ( (LA106_0==110) ) {
+            else if ( (LA106_0==109) ) {
                 alt106=2;
             }
             else {
@@ -19386,7 +19256,7 @@
             }
             switch (alt106) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7039:3: this_FeatureCallID_0= ruleFeatureCallID
+                    // InternalPerspectiveDsl.g:7000:3: this_FeatureCallID_0= ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19412,9 +19282,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:7050:3: kw= 'super'
+                    // InternalPerspectiveDsl.g:7011:3: kw= 'super'
                     {
-                    kw=(Token)match(input,110,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,109,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19449,7 +19319,7 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalPerspectiveDsl.g:7059:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
+    // InternalPerspectiveDsl.g:7020:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
     public final EObject entryRuleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -19457,8 +19327,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7059:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
-            // InternalPerspectiveDsl.g:7060:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
+            // InternalPerspectiveDsl.g:7020:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
+            // InternalPerspectiveDsl.g:7021:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXConstructorCallRule()); 
@@ -19489,7 +19359,7 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalPerspectiveDsl.g:7066:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
+    // InternalPerspectiveDsl.g:7027:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
     public final EObject ruleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -19517,14 +19387,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7072:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
-            // InternalPerspectiveDsl.g:7073:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalPerspectiveDsl.g:7033:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
+            // InternalPerspectiveDsl.g:7034:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
             {
-            // InternalPerspectiveDsl.g:7073:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
-            // InternalPerspectiveDsl.g:7074:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            // InternalPerspectiveDsl.g:7034:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalPerspectiveDsl.g:7035:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
             {
-            // InternalPerspectiveDsl.g:7074:3: ()
-            // InternalPerspectiveDsl.g:7075:4: 
+            // InternalPerspectiveDsl.g:7035:3: ()
+            // InternalPerspectiveDsl.g:7036:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -19536,17 +19406,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,111,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,110,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:7085:3: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:7086:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:7046:3: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:7047:4: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:7086:4: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:7087:5: ruleQualifiedName
+            // InternalPerspectiveDsl.g:7047:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:7048:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -19576,17 +19446,17 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7101:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
+            // InternalPerspectiveDsl.g:7062:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
             int alt108=2;
             alt108 = dfa108.predict(input);
             switch (alt108) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7102:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
+                    // InternalPerspectiveDsl.g:7063:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
                     {
-                    // InternalPerspectiveDsl.g:7102:4: ( ( '<' )=>otherlv_3= '<' )
-                    // InternalPerspectiveDsl.g:7103:5: ( '<' )=>otherlv_3= '<'
+                    // InternalPerspectiveDsl.g:7063:4: ( ( '<' )=>otherlv_3= '<' )
+                    // InternalPerspectiveDsl.g:7064:5: ( '<' )=>otherlv_3= '<'
                     {
-                    otherlv_3=(Token)match(input,69,FOLLOW_58); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,68,FOLLOW_58); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
@@ -19595,11 +19465,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:7109:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    // InternalPerspectiveDsl.g:7110:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalPerspectiveDsl.g:7070:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    // InternalPerspectiveDsl.g:7071:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:7110:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    // InternalPerspectiveDsl.g:7111:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    // InternalPerspectiveDsl.g:7071:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalPerspectiveDsl.g:7072:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19630,32 +19500,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:7128:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
+                    // InternalPerspectiveDsl.g:7089:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
                     loop107:
                     do {
                         int alt107=2;
                         int LA107_0 = input.LA(1);
 
-                        if ( (LA107_0==58) ) {
+                        if ( (LA107_0==57) ) {
                             alt107=1;
                         }
 
 
                         switch (alt107) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:7129:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalPerspectiveDsl.g:7090:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_5=(Token)match(input,58,FOLLOW_58); if (state.failed) return current;
+                    	    otherlv_5=(Token)match(input,57,FOLLOW_58); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
                     	      				
                     	    }
-                    	    // InternalPerspectiveDsl.g:7133:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalPerspectiveDsl.g:7134:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalPerspectiveDsl.g:7094:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalPerspectiveDsl.g:7095:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalPerspectiveDsl.g:7134:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
-                    	    // InternalPerspectiveDsl.g:7135:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
+                    	    // InternalPerspectiveDsl.g:7095:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalPerspectiveDsl.g:7096:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -19695,7 +19565,7 @@
                         }
                     } while (true);
 
-                    otherlv_7=(Token)match(input,70,FOLLOW_89); if (state.failed) return current;
+                    otherlv_7=(Token)match(input,69,FOLLOW_89); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
@@ -19707,20 +19577,20 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7158:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
+            // InternalPerspectiveDsl.g:7119:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
             int alt111=2;
             alt111 = dfa111.predict(input);
             switch (alt111) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7159:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
+                    // InternalPerspectiveDsl.g:7120:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
                     {
-                    // InternalPerspectiveDsl.g:7159:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
-                    // InternalPerspectiveDsl.g:7160:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalPerspectiveDsl.g:7120:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
+                    // InternalPerspectiveDsl.g:7121:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
                     {
-                    // InternalPerspectiveDsl.g:7164:5: (lv_explicitConstructorCall_8_0= '(' )
-                    // InternalPerspectiveDsl.g:7165:6: lv_explicitConstructorCall_8_0= '('
+                    // InternalPerspectiveDsl.g:7125:5: (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalPerspectiveDsl.g:7126:6: lv_explicitConstructorCall_8_0= '('
                     {
-                    lv_explicitConstructorCall_8_0=(Token)match(input,57,FOLLOW_61); if (state.failed) return current;
+                    lv_explicitConstructorCall_8_0=(Token)match(input,56,FOLLOW_61); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
@@ -19740,18 +19610,18 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:7177:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
+                    // InternalPerspectiveDsl.g:7138:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
                     int alt110=3;
                     alt110 = dfa110.predict(input);
                     switch (alt110) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:7178:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalPerspectiveDsl.g:7139:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
                             {
-                            // InternalPerspectiveDsl.g:7178:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
-                            // InternalPerspectiveDsl.g:7179:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalPerspectiveDsl.g:7139:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalPerspectiveDsl.g:7140:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
                             {
-                            // InternalPerspectiveDsl.g:7204:6: (lv_arguments_9_0= ruleXShortClosure )
-                            // InternalPerspectiveDsl.g:7205:7: lv_arguments_9_0= ruleXShortClosure
+                            // InternalPerspectiveDsl.g:7165:6: (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalPerspectiveDsl.g:7166:7: lv_arguments_9_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
@@ -19786,16 +19656,16 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:7223:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalPerspectiveDsl.g:7184:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
                             {
-                            // InternalPerspectiveDsl.g:7223:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
-                            // InternalPerspectiveDsl.g:7224:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            // InternalPerspectiveDsl.g:7184:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalPerspectiveDsl.g:7185:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:7224:6: ( (lv_arguments_10_0= ruleXExpression ) )
-                            // InternalPerspectiveDsl.g:7225:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalPerspectiveDsl.g:7185:6: ( (lv_arguments_10_0= ruleXExpression ) )
+                            // InternalPerspectiveDsl.g:7186:7: (lv_arguments_10_0= ruleXExpression )
                             {
-                            // InternalPerspectiveDsl.g:7225:7: (lv_arguments_10_0= ruleXExpression )
-                            // InternalPerspectiveDsl.g:7226:8: lv_arguments_10_0= ruleXExpression
+                            // InternalPerspectiveDsl.g:7186:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalPerspectiveDsl.g:7187:8: lv_arguments_10_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -19826,32 +19696,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:7243:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            // InternalPerspectiveDsl.g:7204:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
                             loop109:
                             do {
                                 int alt109=2;
                                 int LA109_0 = input.LA(1);
 
-                                if ( (LA109_0==58) ) {
+                                if ( (LA109_0==57) ) {
                                     alt109=1;
                                 }
 
 
                                 switch (alt109) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:7244:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalPerspectiveDsl.g:7205:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_11=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
+                            	    otherlv_11=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalPerspectiveDsl.g:7248:7: ( (lv_arguments_12_0= ruleXExpression ) )
-                            	    // InternalPerspectiveDsl.g:7249:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalPerspectiveDsl.g:7209:7: ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalPerspectiveDsl.g:7210:8: (lv_arguments_12_0= ruleXExpression )
                             	    {
-                            	    // InternalPerspectiveDsl.g:7249:8: (lv_arguments_12_0= ruleXExpression )
-                            	    // InternalPerspectiveDsl.g:7250:9: lv_arguments_12_0= ruleXExpression
+                            	    // InternalPerspectiveDsl.g:7210:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalPerspectiveDsl.g:7211:9: lv_arguments_12_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -19900,7 +19770,7 @@
 
                     }
 
-                    otherlv_13=(Token)match(input,59,FOLLOW_90); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,58,FOLLOW_90); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
@@ -19912,15 +19782,15 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7275:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            // InternalPerspectiveDsl.g:7236:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
             int alt112=2;
             alt112 = dfa112.predict(input);
             switch (alt112) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7276:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
+                    // InternalPerspectiveDsl.g:7237:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
                     {
-                    // InternalPerspectiveDsl.g:7282:4: (lv_arguments_14_0= ruleXClosure )
-                    // InternalPerspectiveDsl.g:7283:5: lv_arguments_14_0= ruleXClosure
+                    // InternalPerspectiveDsl.g:7243:4: (lv_arguments_14_0= ruleXClosure )
+                    // InternalPerspectiveDsl.g:7244:5: lv_arguments_14_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19979,7 +19849,7 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalPerspectiveDsl.g:7304:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
+    // InternalPerspectiveDsl.g:7265:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
     public final EObject entryRuleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -19987,8 +19857,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7304:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
-            // InternalPerspectiveDsl.g:7305:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
+            // InternalPerspectiveDsl.g:7265:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
+            // InternalPerspectiveDsl.g:7266:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBooleanLiteralRule()); 
@@ -20019,7 +19889,7 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalPerspectiveDsl.g:7311:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
+    // InternalPerspectiveDsl.g:7272:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
     public final EObject ruleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20030,14 +19900,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7317:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
-            // InternalPerspectiveDsl.g:7318:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalPerspectiveDsl.g:7278:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
+            // InternalPerspectiveDsl.g:7279:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
             {
-            // InternalPerspectiveDsl.g:7318:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
-            // InternalPerspectiveDsl.g:7319:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            // InternalPerspectiveDsl.g:7279:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalPerspectiveDsl.g:7280:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
             {
-            // InternalPerspectiveDsl.g:7319:3: ()
-            // InternalPerspectiveDsl.g:7320:4: 
+            // InternalPerspectiveDsl.g:7280:3: ()
+            // InternalPerspectiveDsl.g:7281:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20049,14 +19919,14 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7326:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            // InternalPerspectiveDsl.g:7287:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
             int alt113=2;
             int LA113_0 = input.LA(1);
 
-            if ( (LA113_0==112) ) {
+            if ( (LA113_0==111) ) {
                 alt113=1;
             }
-            else if ( (LA113_0==113) ) {
+            else if ( (LA113_0==112) ) {
                 alt113=2;
             }
             else {
@@ -20068,9 +19938,9 @@
             }
             switch (alt113) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7327:4: otherlv_1= 'false'
+                    // InternalPerspectiveDsl.g:7288:4: otherlv_1= 'false'
                     {
-                    otherlv_1=(Token)match(input,112,FOLLOW_2); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,111,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
@@ -20080,15 +19950,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:7332:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalPerspectiveDsl.g:7293:4: ( (lv_isTrue_2_0= 'true' ) )
                     {
-                    // InternalPerspectiveDsl.g:7332:4: ( (lv_isTrue_2_0= 'true' ) )
-                    // InternalPerspectiveDsl.g:7333:5: (lv_isTrue_2_0= 'true' )
+                    // InternalPerspectiveDsl.g:7293:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalPerspectiveDsl.g:7294:5: (lv_isTrue_2_0= 'true' )
                     {
-                    // InternalPerspectiveDsl.g:7333:5: (lv_isTrue_2_0= 'true' )
-                    // InternalPerspectiveDsl.g:7334:6: lv_isTrue_2_0= 'true'
+                    // InternalPerspectiveDsl.g:7294:5: (lv_isTrue_2_0= 'true' )
+                    // InternalPerspectiveDsl.g:7295:6: lv_isTrue_2_0= 'true'
                     {
-                    lv_isTrue_2_0=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+                    lv_isTrue_2_0=(Token)match(input,112,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
@@ -20139,7 +20009,7 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalPerspectiveDsl.g:7351:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
+    // InternalPerspectiveDsl.g:7312:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
     public final EObject entryRuleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20147,8 +20017,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7351:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
-            // InternalPerspectiveDsl.g:7352:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
+            // InternalPerspectiveDsl.g:7312:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
+            // InternalPerspectiveDsl.g:7313:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNullLiteralRule()); 
@@ -20179,7 +20049,7 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalPerspectiveDsl.g:7358:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+    // InternalPerspectiveDsl.g:7319:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
     public final EObject ruleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20189,14 +20059,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7364:2: ( ( () otherlv_1= 'null' ) )
-            // InternalPerspectiveDsl.g:7365:2: ( () otherlv_1= 'null' )
+            // InternalPerspectiveDsl.g:7325:2: ( ( () otherlv_1= 'null' ) )
+            // InternalPerspectiveDsl.g:7326:2: ( () otherlv_1= 'null' )
             {
-            // InternalPerspectiveDsl.g:7365:2: ( () otherlv_1= 'null' )
-            // InternalPerspectiveDsl.g:7366:3: () otherlv_1= 'null'
+            // InternalPerspectiveDsl.g:7326:2: ( () otherlv_1= 'null' )
+            // InternalPerspectiveDsl.g:7327:3: () otherlv_1= 'null'
             {
-            // InternalPerspectiveDsl.g:7366:3: ()
-            // InternalPerspectiveDsl.g:7367:4: 
+            // InternalPerspectiveDsl.g:7327:3: ()
+            // InternalPerspectiveDsl.g:7328:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20208,7 +20078,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,114,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
@@ -20239,7 +20109,7 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalPerspectiveDsl.g:7381:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
+    // InternalPerspectiveDsl.g:7342:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
     public final EObject entryRuleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20247,8 +20117,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7381:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
-            // InternalPerspectiveDsl.g:7382:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
+            // InternalPerspectiveDsl.g:7342:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
+            // InternalPerspectiveDsl.g:7343:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNumberLiteralRule()); 
@@ -20279,7 +20149,7 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalPerspectiveDsl.g:7388:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
+    // InternalPerspectiveDsl.g:7349:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
     public final EObject ruleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20290,14 +20160,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7394:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
-            // InternalPerspectiveDsl.g:7395:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalPerspectiveDsl.g:7355:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
+            // InternalPerspectiveDsl.g:7356:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
             {
-            // InternalPerspectiveDsl.g:7395:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
-            // InternalPerspectiveDsl.g:7396:3: () ( (lv_value_1_0= ruleNumber ) )
+            // InternalPerspectiveDsl.g:7356:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalPerspectiveDsl.g:7357:3: () ( (lv_value_1_0= ruleNumber ) )
             {
-            // InternalPerspectiveDsl.g:7396:3: ()
-            // InternalPerspectiveDsl.g:7397:4: 
+            // InternalPerspectiveDsl.g:7357:3: ()
+            // InternalPerspectiveDsl.g:7358:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20309,11 +20179,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7403:3: ( (lv_value_1_0= ruleNumber ) )
-            // InternalPerspectiveDsl.g:7404:4: (lv_value_1_0= ruleNumber )
+            // InternalPerspectiveDsl.g:7364:3: ( (lv_value_1_0= ruleNumber ) )
+            // InternalPerspectiveDsl.g:7365:4: (lv_value_1_0= ruleNumber )
             {
-            // InternalPerspectiveDsl.g:7404:4: (lv_value_1_0= ruleNumber )
-            // InternalPerspectiveDsl.g:7405:5: lv_value_1_0= ruleNumber
+            // InternalPerspectiveDsl.g:7365:4: (lv_value_1_0= ruleNumber )
+            // InternalPerspectiveDsl.g:7366:5: lv_value_1_0= ruleNumber
             {
             if ( state.backtracking==0 ) {
 
@@ -20369,7 +20239,7 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalPerspectiveDsl.g:7426:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
+    // InternalPerspectiveDsl.g:7387:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
     public final EObject entryRuleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20377,8 +20247,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7426:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
-            // InternalPerspectiveDsl.g:7427:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
+            // InternalPerspectiveDsl.g:7387:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
+            // InternalPerspectiveDsl.g:7388:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXStringLiteralRule()); 
@@ -20409,7 +20279,7 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalPerspectiveDsl.g:7433:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
+    // InternalPerspectiveDsl.g:7394:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20419,14 +20289,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7439:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
-            // InternalPerspectiveDsl.g:7440:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalPerspectiveDsl.g:7400:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
+            // InternalPerspectiveDsl.g:7401:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
             {
-            // InternalPerspectiveDsl.g:7440:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
-            // InternalPerspectiveDsl.g:7441:3: () ( (lv_value_1_0= RULE_STRING ) )
+            // InternalPerspectiveDsl.g:7401:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalPerspectiveDsl.g:7402:3: () ( (lv_value_1_0= RULE_STRING ) )
             {
-            // InternalPerspectiveDsl.g:7441:3: ()
-            // InternalPerspectiveDsl.g:7442:4: 
+            // InternalPerspectiveDsl.g:7402:3: ()
+            // InternalPerspectiveDsl.g:7403:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20438,11 +20308,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7448:3: ( (lv_value_1_0= RULE_STRING ) )
-            // InternalPerspectiveDsl.g:7449:4: (lv_value_1_0= RULE_STRING )
+            // InternalPerspectiveDsl.g:7409:3: ( (lv_value_1_0= RULE_STRING ) )
+            // InternalPerspectiveDsl.g:7410:4: (lv_value_1_0= RULE_STRING )
             {
-            // InternalPerspectiveDsl.g:7449:4: (lv_value_1_0= RULE_STRING )
-            // InternalPerspectiveDsl.g:7450:5: lv_value_1_0= RULE_STRING
+            // InternalPerspectiveDsl.g:7410:4: (lv_value_1_0= RULE_STRING )
+            // InternalPerspectiveDsl.g:7411:5: lv_value_1_0= RULE_STRING
             {
             lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -20493,7 +20363,7 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalPerspectiveDsl.g:7470:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
+    // InternalPerspectiveDsl.g:7431:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
     public final EObject entryRuleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20501,8 +20371,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7470:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
-            // InternalPerspectiveDsl.g:7471:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
+            // InternalPerspectiveDsl.g:7431:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
+            // InternalPerspectiveDsl.g:7432:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTypeLiteralRule()); 
@@ -20533,7 +20403,7 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalPerspectiveDsl.g:7477:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
+    // InternalPerspectiveDsl.g:7438:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
     public final EObject ruleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20547,14 +20417,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7483:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
-            // InternalPerspectiveDsl.g:7484:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalPerspectiveDsl.g:7444:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
+            // InternalPerspectiveDsl.g:7445:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
             {
-            // InternalPerspectiveDsl.g:7484:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
-            // InternalPerspectiveDsl.g:7485:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
+            // InternalPerspectiveDsl.g:7445:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalPerspectiveDsl.g:7446:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
             {
-            // InternalPerspectiveDsl.g:7485:3: ()
-            // InternalPerspectiveDsl.g:7486:4: 
+            // InternalPerspectiveDsl.g:7446:3: ()
+            // InternalPerspectiveDsl.g:7447:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20566,23 +20436,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,115,FOLLOW_72); if (state.failed) return current;
+            otherlv_1=(Token)match(input,114,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,57,FOLLOW_4); if (state.failed) return current;
+            otherlv_2=(Token)match(input,56,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:7500:3: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:7501:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:7461:3: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:7462:4: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:7501:4: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:7502:5: ruleQualifiedName
+            // InternalPerspectiveDsl.g:7462:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:7463:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -20612,23 +20482,23 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7516:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
+            // InternalPerspectiveDsl.g:7477:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
             loop114:
             do {
                 int alt114=2;
                 int LA114_0 = input.LA(1);
 
-                if ( (LA114_0==62) ) {
+                if ( (LA114_0==61) ) {
                     alt114=1;
                 }
 
 
                 switch (alt114) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:7517:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalPerspectiveDsl.g:7478:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
             	    {
-            	    // InternalPerspectiveDsl.g:7517:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
-            	    // InternalPerspectiveDsl.g:7518:5: lv_arrayDimensions_4_0= ruleArrayBrackets
+            	    // InternalPerspectiveDsl.g:7478:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalPerspectiveDsl.g:7479:5: lv_arrayDimensions_4_0= ruleArrayBrackets
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -20665,7 +20535,7 @@
                 }
             } while (true);
 
-            otherlv_5=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+            otherlv_5=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
@@ -20696,7 +20566,7 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalPerspectiveDsl.g:7543:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
+    // InternalPerspectiveDsl.g:7504:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
     public final EObject entryRuleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20704,8 +20574,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7543:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
-            // InternalPerspectiveDsl.g:7544:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
+            // InternalPerspectiveDsl.g:7504:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
+            // InternalPerspectiveDsl.g:7505:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXThrowExpressionRule()); 
@@ -20736,7 +20606,7 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalPerspectiveDsl.g:7550:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
+    // InternalPerspectiveDsl.g:7511:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
     public final EObject ruleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20748,14 +20618,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7556:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
-            // InternalPerspectiveDsl.g:7557:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:7517:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:7518:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
             {
-            // InternalPerspectiveDsl.g:7557:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
-            // InternalPerspectiveDsl.g:7558:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7518:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:7519:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
             {
-            // InternalPerspectiveDsl.g:7558:3: ()
-            // InternalPerspectiveDsl.g:7559:4: 
+            // InternalPerspectiveDsl.g:7519:3: ()
+            // InternalPerspectiveDsl.g:7520:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20767,17 +20637,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,116,FOLLOW_33); if (state.failed) return current;
+            otherlv_1=(Token)match(input,115,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:7569:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:7570:4: (lv_expression_2_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7530:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7531:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:7570:4: (lv_expression_2_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:7571:5: lv_expression_2_0= ruleXExpression
+            // InternalPerspectiveDsl.g:7531:4: (lv_expression_2_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7532:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -20833,7 +20703,7 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalPerspectiveDsl.g:7592:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
+    // InternalPerspectiveDsl.g:7553:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
     public final EObject entryRuleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20841,8 +20711,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7592:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
-            // InternalPerspectiveDsl.g:7593:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
+            // InternalPerspectiveDsl.g:7553:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
+            // InternalPerspectiveDsl.g:7554:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXReturnExpressionRule()); 
@@ -20873,7 +20743,7 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalPerspectiveDsl.g:7599:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
+    // InternalPerspectiveDsl.g:7560:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
     public final EObject ruleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20885,14 +20755,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7605:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
-            // InternalPerspectiveDsl.g:7606:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalPerspectiveDsl.g:7566:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
+            // InternalPerspectiveDsl.g:7567:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
             {
-            // InternalPerspectiveDsl.g:7606:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
-            // InternalPerspectiveDsl.g:7607:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            // InternalPerspectiveDsl.g:7567:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalPerspectiveDsl.g:7568:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
             {
-            // InternalPerspectiveDsl.g:7607:3: ()
-            // InternalPerspectiveDsl.g:7608:4: 
+            // InternalPerspectiveDsl.g:7568:3: ()
+            // InternalPerspectiveDsl.g:7569:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20904,21 +20774,21 @@
 
             }
 
-            otherlv_1=(Token)match(input,117,FOLLOW_93); if (state.failed) return current;
+            otherlv_1=(Token)match(input,116,FOLLOW_93); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:7618:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            // InternalPerspectiveDsl.g:7579:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
             int alt115=2;
             alt115 = dfa115.predict(input);
             switch (alt115) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7619:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:7580:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:7620:4: (lv_expression_2_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:7621:5: lv_expression_2_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:7581:4: (lv_expression_2_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:7582:5: lv_expression_2_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -20977,7 +20847,7 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalPerspectiveDsl.g:7642:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
+    // InternalPerspectiveDsl.g:7603:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
     public final EObject entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20985,8 +20855,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7642:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
-            // InternalPerspectiveDsl.g:7643:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
+            // InternalPerspectiveDsl.g:7603:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
+            // InternalPerspectiveDsl.g:7604:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -21017,7 +20887,7 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalPerspectiveDsl.g:7649:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
+    // InternalPerspectiveDsl.g:7610:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
     public final EObject ruleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -21037,14 +20907,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7655:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
-            // InternalPerspectiveDsl.g:7656:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalPerspectiveDsl.g:7616:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
+            // InternalPerspectiveDsl.g:7617:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
             {
-            // InternalPerspectiveDsl.g:7656:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
-            // InternalPerspectiveDsl.g:7657:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:7617:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalPerspectiveDsl.g:7618:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
             {
-            // InternalPerspectiveDsl.g:7657:3: ()
-            // InternalPerspectiveDsl.g:7658:4: 
+            // InternalPerspectiveDsl.g:7618:3: ()
+            // InternalPerspectiveDsl.g:7619:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -21056,17 +20926,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,118,FOLLOW_33); if (state.failed) return current;
+            otherlv_1=(Token)match(input,117,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:7668:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:7669:4: (lv_expression_2_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7629:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7630:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:7669:4: (lv_expression_2_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:7670:5: lv_expression_2_0= ruleXExpression
+            // InternalPerspectiveDsl.g:7630:4: (lv_expression_2_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7631:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -21097,14 +20967,14 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7687:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:7648:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
             int alt118=2;
             int LA118_0 = input.LA(1);
 
-            if ( (LA118_0==121) ) {
+            if ( (LA118_0==120) ) {
                 alt118=1;
             }
-            else if ( (LA118_0==119) ) {
+            else if ( (LA118_0==118) ) {
                 alt118=2;
             }
             else {
@@ -21116,19 +20986,19 @@
             }
             switch (alt118) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7688:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalPerspectiveDsl.g:7649:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
                     {
-                    // InternalPerspectiveDsl.g:7688:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
-                    // InternalPerspectiveDsl.g:7689:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    // InternalPerspectiveDsl.g:7649:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalPerspectiveDsl.g:7650:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
                     {
-                    // InternalPerspectiveDsl.g:7689:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
+                    // InternalPerspectiveDsl.g:7650:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
                     int cnt116=0;
                     loop116:
                     do {
                         int alt116=2;
                         int LA116_0 = input.LA(1);
 
-                        if ( (LA116_0==121) ) {
+                        if ( (LA116_0==120) ) {
                             int LA116_2 = input.LA(2);
 
                             if ( (synpred44_InternalPerspectiveDsl()) ) {
@@ -21141,10 +21011,10 @@
 
                         switch (alt116) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:7690:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalPerspectiveDsl.g:7651:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
                     	    {
-                    	    // InternalPerspectiveDsl.g:7691:6: (lv_catchClauses_3_0= ruleXCatchClause )
-                    	    // InternalPerspectiveDsl.g:7692:7: lv_catchClauses_3_0= ruleXCatchClause
+                    	    // InternalPerspectiveDsl.g:7652:6: (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalPerspectiveDsl.g:7653:7: lv_catchClauses_3_0= ruleXCatchClause
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -21186,11 +21056,11 @@
                         cnt116++;
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:7709:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    // InternalPerspectiveDsl.g:7670:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
                     int alt117=2;
                     int LA117_0 = input.LA(1);
 
-                    if ( (LA117_0==119) ) {
+                    if ( (LA117_0==118) ) {
                         int LA117_1 = input.LA(2);
 
                         if ( (synpred45_InternalPerspectiveDsl()) ) {
@@ -21199,12 +21069,12 @@
                     }
                     switch (alt117) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:7710:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalPerspectiveDsl.g:7671:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
                             {
-                            // InternalPerspectiveDsl.g:7710:6: ( ( 'finally' )=>otherlv_4= 'finally' )
-                            // InternalPerspectiveDsl.g:7711:7: ( 'finally' )=>otherlv_4= 'finally'
+                            // InternalPerspectiveDsl.g:7671:6: ( ( 'finally' )=>otherlv_4= 'finally' )
+                            // InternalPerspectiveDsl.g:7672:7: ( 'finally' )=>otherlv_4= 'finally'
                             {
-                            otherlv_4=(Token)match(input,119,FOLLOW_33); if (state.failed) return current;
+                            otherlv_4=(Token)match(input,118,FOLLOW_33); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
@@ -21213,11 +21083,11 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:7717:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
-                            // InternalPerspectiveDsl.g:7718:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalPerspectiveDsl.g:7678:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalPerspectiveDsl.g:7679:7: (lv_finallyExpression_5_0= ruleXExpression )
                             {
-                            // InternalPerspectiveDsl.g:7718:7: (lv_finallyExpression_5_0= ruleXExpression )
-                            // InternalPerspectiveDsl.g:7719:8: lv_finallyExpression_5_0= ruleXExpression
+                            // InternalPerspectiveDsl.g:7679:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalPerspectiveDsl.g:7680:8: lv_finallyExpression_5_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -21261,22 +21131,22 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:7739:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalPerspectiveDsl.g:7700:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
                     {
-                    // InternalPerspectiveDsl.g:7739:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
-                    // InternalPerspectiveDsl.g:7740:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:7700:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalPerspectiveDsl.g:7701:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,119,FOLLOW_33); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,118,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
                       				
                     }
-                    // InternalPerspectiveDsl.g:7744:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
-                    // InternalPerspectiveDsl.g:7745:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:7705:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalPerspectiveDsl.g:7706:6: (lv_finallyExpression_7_0= ruleXExpression )
                     {
-                    // InternalPerspectiveDsl.g:7745:6: (lv_finallyExpression_7_0= ruleXExpression )
-                    // InternalPerspectiveDsl.g:7746:7: lv_finallyExpression_7_0= ruleXExpression
+                    // InternalPerspectiveDsl.g:7706:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalPerspectiveDsl.g:7707:7: lv_finallyExpression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -21341,7 +21211,7 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalPerspectiveDsl.g:7769:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
+    // InternalPerspectiveDsl.g:7730:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
     public final EObject entryRuleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -21349,8 +21219,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7769:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
-            // InternalPerspectiveDsl.g:7770:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
+            // InternalPerspectiveDsl.g:7730:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
+            // InternalPerspectiveDsl.g:7731:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -21381,7 +21251,7 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalPerspectiveDsl.g:7776:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalPerspectiveDsl.g:7737:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -21397,20 +21267,20 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7782:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalPerspectiveDsl.g:7783:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:7743:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:7744:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalPerspectiveDsl.g:7783:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalPerspectiveDsl.g:7784:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7744:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:7745:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalPerspectiveDsl.g:7784:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
-            // InternalPerspectiveDsl.g:7785:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalPerspectiveDsl.g:7745:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
+            // InternalPerspectiveDsl.g:7746:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
             {
-            // InternalPerspectiveDsl.g:7792:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
-            // InternalPerspectiveDsl.g:7793:5: () otherlv_1= 'synchronized' otherlv_2= '('
+            // InternalPerspectiveDsl.g:7753:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalPerspectiveDsl.g:7754:5: () otherlv_1= 'synchronized' otherlv_2= '('
             {
-            // InternalPerspectiveDsl.g:7793:5: ()
-            // InternalPerspectiveDsl.g:7794:6: 
+            // InternalPerspectiveDsl.g:7754:5: ()
+            // InternalPerspectiveDsl.g:7755:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -21422,13 +21292,13 @@
 
             }
 
-            otherlv_1=(Token)match(input,120,FOLLOW_72); if (state.failed) return current;
+            otherlv_1=(Token)match(input,119,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
+            otherlv_2=(Token)match(input,56,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
@@ -21440,11 +21310,11 @@
 
             }
 
-            // InternalPerspectiveDsl.g:7810:3: ( (lv_param_3_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:7811:4: (lv_param_3_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7771:3: ( (lv_param_3_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7772:4: (lv_param_3_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:7811:4: (lv_param_3_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:7812:5: lv_param_3_0= ruleXExpression
+            // InternalPerspectiveDsl.g:7772:4: (lv_param_3_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7773:5: lv_param_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -21475,17 +21345,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
+            otherlv_4=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalPerspectiveDsl.g:7833:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:7834:4: (lv_expression_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7794:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7795:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:7834:4: (lv_expression_5_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:7835:5: lv_expression_5_0= ruleXExpression
+            // InternalPerspectiveDsl.g:7795:4: (lv_expression_5_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7796:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -21541,7 +21411,7 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalPerspectiveDsl.g:7856:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
+    // InternalPerspectiveDsl.g:7817:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
     public final EObject entryRuleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -21549,8 +21419,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7856:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
-            // InternalPerspectiveDsl.g:7857:2: iv_ruleXCatchClause= ruleXCatchClause EOF
+            // InternalPerspectiveDsl.g:7817:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
+            // InternalPerspectiveDsl.g:7818:2: iv_ruleXCatchClause= ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCatchClauseRule()); 
@@ -21581,7 +21451,7 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalPerspectiveDsl.g:7863:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+    // InternalPerspectiveDsl.g:7824:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
     public final EObject ruleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -21597,16 +21467,16 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7869:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
-            // InternalPerspectiveDsl.g:7870:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:7830:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+            // InternalPerspectiveDsl.g:7831:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
             {
-            // InternalPerspectiveDsl.g:7870:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
-            // InternalPerspectiveDsl.g:7871:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7831:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalPerspectiveDsl.g:7832:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
             {
-            // InternalPerspectiveDsl.g:7871:3: ( ( 'catch' )=>otherlv_0= 'catch' )
-            // InternalPerspectiveDsl.g:7872:4: ( 'catch' )=>otherlv_0= 'catch'
+            // InternalPerspectiveDsl.g:7832:3: ( ( 'catch' )=>otherlv_0= 'catch' )
+            // InternalPerspectiveDsl.g:7833:4: ( 'catch' )=>otherlv_0= 'catch'
             {
-            otherlv_0=(Token)match(input,121,FOLLOW_72); if (state.failed) return current;
+            otherlv_0=(Token)match(input,120,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               				newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
@@ -21615,17 +21485,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,57,FOLLOW_46); if (state.failed) return current;
+            otherlv_1=(Token)match(input,56,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:7882:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
-            // InternalPerspectiveDsl.g:7883:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalPerspectiveDsl.g:7843:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
+            // InternalPerspectiveDsl.g:7844:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
             {
-            // InternalPerspectiveDsl.g:7883:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
-            // InternalPerspectiveDsl.g:7884:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
+            // InternalPerspectiveDsl.g:7844:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalPerspectiveDsl.g:7845:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
@@ -21656,17 +21526,17 @@
 
             }
 
-            otherlv_3=(Token)match(input,59,FOLLOW_33); if (state.failed) return current;
+            otherlv_3=(Token)match(input,58,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
               		
             }
-            // InternalPerspectiveDsl.g:7905:3: ( (lv_expression_4_0= ruleXExpression ) )
-            // InternalPerspectiveDsl.g:7906:4: (lv_expression_4_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7866:3: ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalPerspectiveDsl.g:7867:4: (lv_expression_4_0= ruleXExpression )
             {
-            // InternalPerspectiveDsl.g:7906:4: (lv_expression_4_0= ruleXExpression )
-            // InternalPerspectiveDsl.g:7907:5: lv_expression_4_0= ruleXExpression
+            // InternalPerspectiveDsl.g:7867:4: (lv_expression_4_0= ruleXExpression )
+            // InternalPerspectiveDsl.g:7868:5: lv_expression_4_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -21722,7 +21592,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalPerspectiveDsl.g:7928:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalPerspectiveDsl.g:7889:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -21730,8 +21600,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:7928:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalPerspectiveDsl.g:7929:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalPerspectiveDsl.g:7889:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalPerspectiveDsl.g:7890:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameRule()); 
@@ -21762,7 +21632,7 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalPerspectiveDsl.g:7935:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    // InternalPerspectiveDsl.g:7896:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -21776,11 +21646,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:7941:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
-            // InternalPerspectiveDsl.g:7942:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalPerspectiveDsl.g:7902:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // InternalPerspectiveDsl.g:7903:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
             {
-            // InternalPerspectiveDsl.g:7942:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
-            // InternalPerspectiveDsl.g:7943:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            // InternalPerspectiveDsl.g:7903:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalPerspectiveDsl.g:7904:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
             {
             if ( state.backtracking==0 ) {
 
@@ -21802,13 +21672,13 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalPerspectiveDsl.g:7953:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            // InternalPerspectiveDsl.g:7914:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
             loop119:
             do {
                 int alt119=2;
                 int LA119_0 = input.LA(1);
 
-                if ( (LA119_0==94) ) {
+                if ( (LA119_0==93) ) {
                     int LA119_2 = input.LA(2);
 
                     if ( (LA119_2==RULE_ID) ) {
@@ -21827,12 +21697,12 @@
 
                 switch (alt119) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:7954:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    // InternalPerspectiveDsl.g:7915:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
             	    {
-            	    // InternalPerspectiveDsl.g:7954:4: ( ( '.' )=>kw= '.' )
-            	    // InternalPerspectiveDsl.g:7955:5: ( '.' )=>kw= '.'
+            	    // InternalPerspectiveDsl.g:7915:4: ( ( '.' )=>kw= '.' )
+            	    // InternalPerspectiveDsl.g:7916:5: ( '.' )=>kw= '.'
             	    {
-            	    kw=(Token)match(input,94,FOLLOW_4); if (state.failed) return current;
+            	    kw=(Token)match(input,93,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      					current.merge(kw);
@@ -21896,7 +21766,7 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalPerspectiveDsl.g:7977:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
+    // InternalPerspectiveDsl.g:7938:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
     public final String entryRuleNumber() throws RecognitionException {
         String current = null;
 
@@ -21907,8 +21777,8 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalPerspectiveDsl.g:7979:2: (iv_ruleNumber= ruleNumber EOF )
-            // InternalPerspectiveDsl.g:7980:2: iv_ruleNumber= ruleNumber EOF
+            // InternalPerspectiveDsl.g:7940:2: (iv_ruleNumber= ruleNumber EOF )
+            // InternalPerspectiveDsl.g:7941:2: iv_ruleNumber= ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberRule()); 
@@ -21942,7 +21812,7 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalPerspectiveDsl.g:7989:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
+    // InternalPerspectiveDsl.g:7950:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
     public final AntlrDatatypeRuleToken ruleNumber() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -21958,10 +21828,10 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalPerspectiveDsl.g:7996:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
-            // InternalPerspectiveDsl.g:7997:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            // InternalPerspectiveDsl.g:7957:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
+            // InternalPerspectiveDsl.g:7958:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
             {
-            // InternalPerspectiveDsl.g:7997:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            // InternalPerspectiveDsl.g:7958:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
             int alt123=2;
             int LA123_0 = input.LA(1);
 
@@ -21980,7 +21850,7 @@
             }
             switch (alt123) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:7998:3: this_HEX_0= RULE_HEX
+                    // InternalPerspectiveDsl.g:7959:3: this_HEX_0= RULE_HEX
                     {
                     this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -21997,12 +21867,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8006:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalPerspectiveDsl.g:7967:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
                     {
-                    // InternalPerspectiveDsl.g:8006:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
-                    // InternalPerspectiveDsl.g:8007:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    // InternalPerspectiveDsl.g:7967:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalPerspectiveDsl.g:7968:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
                     {
-                    // InternalPerspectiveDsl.g:8007:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
+                    // InternalPerspectiveDsl.g:7968:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
                     int alt120=2;
                     int LA120_0 = input.LA(1);
 
@@ -22021,7 +21891,7 @@
                     }
                     switch (alt120) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:8008:5: this_INT_1= RULE_INT
+                            // InternalPerspectiveDsl.g:7969:5: this_INT_1= RULE_INT
                             {
                             this_INT_1=(Token)match(input,RULE_INT,FOLLOW_96); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -22038,7 +21908,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:8016:5: this_DECIMAL_2= RULE_DECIMAL
+                            // InternalPerspectiveDsl.g:7977:5: this_DECIMAL_2= RULE_DECIMAL
                             {
                             this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_96); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -22057,11 +21927,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:8024:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    // InternalPerspectiveDsl.g:7985:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
                     int alt122=2;
                     int LA122_0 = input.LA(1);
 
-                    if ( (LA122_0==94) ) {
+                    if ( (LA122_0==93) ) {
                         int LA122_1 = input.LA(2);
 
                         if ( (LA122_1==RULE_INT||LA122_1==RULE_DECIMAL) ) {
@@ -22070,16 +21940,16 @@
                     }
                     switch (alt122) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:8025:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            // InternalPerspectiveDsl.g:7986:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
                             {
-                            kw=(Token)match(input,94,FOLLOW_97); if (state.failed) return current;
+                            kw=(Token)match(input,93,FOLLOW_97); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
                               					newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
                               				
                             }
-                            // InternalPerspectiveDsl.g:8030:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            // InternalPerspectiveDsl.g:7991:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
                             int alt121=2;
                             int LA121_0 = input.LA(1);
 
@@ -22098,7 +21968,7 @@
                             }
                             switch (alt121) {
                                 case 1 :
-                                    // InternalPerspectiveDsl.g:8031:6: this_INT_4= RULE_INT
+                                    // InternalPerspectiveDsl.g:7992:6: this_INT_4= RULE_INT
                                     {
                                     this_INT_4=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -22115,7 +21985,7 @@
                                     }
                                     break;
                                 case 2 :
-                                    // InternalPerspectiveDsl.g:8039:6: this_DECIMAL_5= RULE_DECIMAL
+                                    // InternalPerspectiveDsl.g:8000:6: this_DECIMAL_5= RULE_DECIMAL
                                     {
                                     this_DECIMAL_5=(Token)match(input,RULE_DECIMAL,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -22174,7 +22044,7 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalPerspectiveDsl.g:8056:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
+    // InternalPerspectiveDsl.g:8017:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
     public final EObject entryRuleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22182,8 +22052,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8056:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
-            // InternalPerspectiveDsl.g:8057:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
+            // InternalPerspectiveDsl.g:8017:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
+            // InternalPerspectiveDsl.g:8018:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); 
@@ -22214,7 +22084,7 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalPerspectiveDsl.g:8063:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
+    // InternalPerspectiveDsl.g:8024:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
     public final EObject ruleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22227,17 +22097,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8069:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
-            // InternalPerspectiveDsl.g:8070:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            // InternalPerspectiveDsl.g:8030:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
+            // InternalPerspectiveDsl.g:8031:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
             {
-            // InternalPerspectiveDsl.g:8070:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            // InternalPerspectiveDsl.g:8031:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
             int alt125=2;
             int LA125_0 = input.LA(1);
 
             if ( (LA125_0==RULE_ID) ) {
                 alt125=1;
             }
-            else if ( (LA125_0==57||LA125_0==82) ) {
+            else if ( (LA125_0==56||LA125_0==81) ) {
                 alt125=2;
             }
             else {
@@ -22249,10 +22119,10 @@
             }
             switch (alt125) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8071:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalPerspectiveDsl.g:8032:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
                     {
-                    // InternalPerspectiveDsl.g:8071:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
-                    // InternalPerspectiveDsl.g:8072:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    // InternalPerspectiveDsl.g:8032:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalPerspectiveDsl.g:8033:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
                     {
                     if ( state.backtracking==0 ) {
 
@@ -22270,16 +22140,16 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalPerspectiveDsl.g:8080:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    // InternalPerspectiveDsl.g:8041:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
                     loop124:
                     do {
                         int alt124=2;
                         int LA124_0 = input.LA(1);
 
-                        if ( (LA124_0==62) ) {
+                        if ( (LA124_0==61) ) {
                             int LA124_2 = input.LA(2);
 
-                            if ( (LA124_2==63) ) {
+                            if ( (LA124_2==62) ) {
                                 int LA124_3 = input.LA(3);
 
                                 if ( (synpred49_InternalPerspectiveDsl()) ) {
@@ -22295,13 +22165,13 @@
 
                         switch (alt124) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:8081:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
+                    	    // InternalPerspectiveDsl.g:8042:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
                     	    {
-                    	    // InternalPerspectiveDsl.g:8087:5: ( () ruleArrayBrackets )
-                    	    // InternalPerspectiveDsl.g:8088:6: () ruleArrayBrackets
+                    	    // InternalPerspectiveDsl.g:8048:5: ( () ruleArrayBrackets )
+                    	    // InternalPerspectiveDsl.g:8049:6: () ruleArrayBrackets
                     	    {
-                    	    // InternalPerspectiveDsl.g:8088:6: ()
-                    	    // InternalPerspectiveDsl.g:8089:7: 
+                    	    // InternalPerspectiveDsl.g:8049:6: ()
+                    	    // InternalPerspectiveDsl.g:8050:7: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -22347,7 +22217,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8106:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
+                    // InternalPerspectiveDsl.g:8067:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
 
@@ -22393,7 +22263,7 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalPerspectiveDsl.g:8118:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
+    // InternalPerspectiveDsl.g:8079:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
     public final String entryRuleArrayBrackets() throws RecognitionException {
         String current = null;
 
@@ -22401,8 +22271,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8118:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
-            // InternalPerspectiveDsl.g:8119:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
+            // InternalPerspectiveDsl.g:8079:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
+            // InternalPerspectiveDsl.g:8080:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getArrayBracketsRule()); 
@@ -22433,7 +22303,7 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalPerspectiveDsl.g:8125:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
+    // InternalPerspectiveDsl.g:8086:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
     public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -22443,20 +22313,20 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8131:2: ( (kw= '[' kw= ']' ) )
-            // InternalPerspectiveDsl.g:8132:2: (kw= '[' kw= ']' )
+            // InternalPerspectiveDsl.g:8092:2: ( (kw= '[' kw= ']' ) )
+            // InternalPerspectiveDsl.g:8093:2: (kw= '[' kw= ']' )
             {
-            // InternalPerspectiveDsl.g:8132:2: (kw= '[' kw= ']' )
-            // InternalPerspectiveDsl.g:8133:3: kw= '[' kw= ']'
+            // InternalPerspectiveDsl.g:8093:2: (kw= '[' kw= ']' )
+            // InternalPerspectiveDsl.g:8094:3: kw= '[' kw= ']'
             {
-            kw=(Token)match(input,62,FOLLOW_69); if (state.failed) return current;
+            kw=(Token)match(input,61,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
               		
             }
-            kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -22488,7 +22358,7 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalPerspectiveDsl.g:8147:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
+    // InternalPerspectiveDsl.g:8108:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
     public final EObject entryRuleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -22496,8 +22366,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8147:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
-            // InternalPerspectiveDsl.g:8148:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
+            // InternalPerspectiveDsl.g:8108:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
+            // InternalPerspectiveDsl.g:8109:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); 
@@ -22528,7 +22398,7 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalPerspectiveDsl.g:8154:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
+    // InternalPerspectiveDsl.g:8115:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -22547,45 +22417,45 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8160:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
-            // InternalPerspectiveDsl.g:8161:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8121:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
+            // InternalPerspectiveDsl.g:8122:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
             {
-            // InternalPerspectiveDsl.g:8161:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
-            // InternalPerspectiveDsl.g:8162:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8122:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8123:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
             {
-            // InternalPerspectiveDsl.g:8162:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
+            // InternalPerspectiveDsl.g:8123:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
             int alt128=2;
             int LA128_0 = input.LA(1);
 
-            if ( (LA128_0==57) ) {
+            if ( (LA128_0==56) ) {
                 alt128=1;
             }
             switch (alt128) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8163:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
+                    // InternalPerspectiveDsl.g:8124:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
                     {
-                    otherlv_0=(Token)match(input,57,FOLLOW_98); if (state.failed) return current;
+                    otherlv_0=(Token)match(input,56,FOLLOW_98); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
                       			
                     }
-                    // InternalPerspectiveDsl.g:8167:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
+                    // InternalPerspectiveDsl.g:8128:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
                     int alt127=2;
                     int LA127_0 = input.LA(1);
 
-                    if ( (LA127_0==RULE_ID||LA127_0==57||LA127_0==82) ) {
+                    if ( (LA127_0==RULE_ID||LA127_0==56||LA127_0==81) ) {
                         alt127=1;
                     }
                     switch (alt127) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:8168:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            // InternalPerspectiveDsl.g:8129:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
                             {
-                            // InternalPerspectiveDsl.g:8168:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
-                            // InternalPerspectiveDsl.g:8169:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalPerspectiveDsl.g:8129:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
+                            // InternalPerspectiveDsl.g:8130:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
                             {
-                            // InternalPerspectiveDsl.g:8169:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
-                            // InternalPerspectiveDsl.g:8170:7: lv_paramTypes_1_0= ruleJvmTypeReference
+                            // InternalPerspectiveDsl.g:8130:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalPerspectiveDsl.g:8131:7: lv_paramTypes_1_0= ruleJvmTypeReference
                             {
                             if ( state.backtracking==0 ) {
 
@@ -22616,32 +22486,32 @@
 
                             }
 
-                            // InternalPerspectiveDsl.g:8187:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            // InternalPerspectiveDsl.g:8148:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
                             loop126:
                             do {
                                 int alt126=2;
                                 int LA126_0 = input.LA(1);
 
-                                if ( (LA126_0==58) ) {
+                                if ( (LA126_0==57) ) {
                                     alt126=1;
                                 }
 
 
                                 switch (alt126) {
                             	case 1 :
-                            	    // InternalPerspectiveDsl.g:8188:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalPerspectiveDsl.g:8149:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
                             	    {
-                            	    otherlv_2=(Token)match(input,58,FOLLOW_46); if (state.failed) return current;
+                            	    otherlv_2=(Token)match(input,57,FOLLOW_46); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalPerspectiveDsl.g:8192:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
-                            	    // InternalPerspectiveDsl.g:8193:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalPerspectiveDsl.g:8153:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalPerspectiveDsl.g:8154:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
                             	    {
-                            	    // InternalPerspectiveDsl.g:8193:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
-                            	    // InternalPerspectiveDsl.g:8194:8: lv_paramTypes_3_0= ruleJvmTypeReference
+                            	    // InternalPerspectiveDsl.g:8154:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalPerspectiveDsl.g:8155:8: lv_paramTypes_3_0= ruleJvmTypeReference
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -22687,7 +22557,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,59,FOLLOW_99); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,58,FOLLOW_99); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
@@ -22699,17 +22569,17 @@
 
             }
 
-            otherlv_5=(Token)match(input,82,FOLLOW_46); if (state.failed) return current;
+            otherlv_5=(Token)match(input,81,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:8222:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:8223:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8183:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8184:4: (lv_returnType_6_0= ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:8223:4: (lv_returnType_6_0= ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:8224:5: lv_returnType_6_0= ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:8184:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8185:5: lv_returnType_6_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -22765,7 +22635,7 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalPerspectiveDsl.g:8245:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
+    // InternalPerspectiveDsl.g:8206:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
     public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22773,8 +22643,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8245:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
-            // InternalPerspectiveDsl.g:8246:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
+            // InternalPerspectiveDsl.g:8206:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
+            // InternalPerspectiveDsl.g:8207:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -22805,7 +22675,7 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalPerspectiveDsl.g:8252:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
+    // InternalPerspectiveDsl.g:8213:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
     public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22829,17 +22699,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8258:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
-            // InternalPerspectiveDsl.g:8259:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalPerspectiveDsl.g:8219:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
+            // InternalPerspectiveDsl.g:8220:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
             {
-            // InternalPerspectiveDsl.g:8259:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
-            // InternalPerspectiveDsl.g:8260:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            // InternalPerspectiveDsl.g:8220:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalPerspectiveDsl.g:8221:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
             {
-            // InternalPerspectiveDsl.g:8260:3: ( ( ruleQualifiedName ) )
-            // InternalPerspectiveDsl.g:8261:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:8221:3: ( ( ruleQualifiedName ) )
+            // InternalPerspectiveDsl.g:8222:4: ( ruleQualifiedName )
             {
-            // InternalPerspectiveDsl.g:8261:4: ( ruleQualifiedName )
-            // InternalPerspectiveDsl.g:8262:5: ruleQualifiedName
+            // InternalPerspectiveDsl.g:8222:4: ( ruleQualifiedName )
+            // InternalPerspectiveDsl.g:8223:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -22869,17 +22739,17 @@
 
             }
 
-            // InternalPerspectiveDsl.g:8276:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            // InternalPerspectiveDsl.g:8237:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
             int alt133=2;
             alt133 = dfa133.predict(input);
             switch (alt133) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8277:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    // InternalPerspectiveDsl.g:8238:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
                     {
-                    // InternalPerspectiveDsl.g:8277:4: ( ( '<' )=>otherlv_1= '<' )
-                    // InternalPerspectiveDsl.g:8278:5: ( '<' )=>otherlv_1= '<'
+                    // InternalPerspectiveDsl.g:8238:4: ( ( '<' )=>otherlv_1= '<' )
+                    // InternalPerspectiveDsl.g:8239:5: ( '<' )=>otherlv_1= '<'
                     {
-                    otherlv_1=(Token)match(input,69,FOLLOW_58); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,68,FOLLOW_58); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
@@ -22888,11 +22758,11 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:8284:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalPerspectiveDsl.g:8285:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalPerspectiveDsl.g:8245:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalPerspectiveDsl.g:8246:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalPerspectiveDsl.g:8285:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalPerspectiveDsl.g:8286:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalPerspectiveDsl.g:8246:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalPerspectiveDsl.g:8247:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -22923,32 +22793,32 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:8303:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    // InternalPerspectiveDsl.g:8264:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
                     loop129:
                     do {
                         int alt129=2;
                         int LA129_0 = input.LA(1);
 
-                        if ( (LA129_0==58) ) {
+                        if ( (LA129_0==57) ) {
                             alt129=1;
                         }
 
 
                         switch (alt129) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:8304:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalPerspectiveDsl.g:8265:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,58,FOLLOW_58); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,57,FOLLOW_58); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalPerspectiveDsl.g:8308:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalPerspectiveDsl.g:8309:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalPerspectiveDsl.g:8269:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalPerspectiveDsl.g:8270:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalPerspectiveDsl.g:8309:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalPerspectiveDsl.g:8310:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalPerspectiveDsl.g:8270:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalPerspectiveDsl.g:8271:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -22988,19 +22858,19 @@
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,70,FOLLOW_96); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,69,FOLLOW_96); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
                       			
                     }
-                    // InternalPerspectiveDsl.g:8332:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    // InternalPerspectiveDsl.g:8293:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
                     loop132:
                     do {
                         int alt132=2;
                         int LA132_0 = input.LA(1);
 
-                        if ( (LA132_0==94) ) {
+                        if ( (LA132_0==93) ) {
                             int LA132_2 = input.LA(2);
 
                             if ( (LA132_2==RULE_ID) ) {
@@ -23019,16 +22889,16 @@
 
                         switch (alt132) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:8333:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    // InternalPerspectiveDsl.g:8294:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
                     	    {
-                    	    // InternalPerspectiveDsl.g:8333:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
-                    	    // InternalPerspectiveDsl.g:8334:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
+                    	    // InternalPerspectiveDsl.g:8294:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
+                    	    // InternalPerspectiveDsl.g:8295:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
                     	    {
-                    	    // InternalPerspectiveDsl.g:8340:6: ( () otherlv_7= '.' )
-                    	    // InternalPerspectiveDsl.g:8341:7: () otherlv_7= '.'
+                    	    // InternalPerspectiveDsl.g:8301:6: ( () otherlv_7= '.' )
+                    	    // InternalPerspectiveDsl.g:8302:7: () otherlv_7= '.'
                     	    {
-                    	    // InternalPerspectiveDsl.g:8341:7: ()
-                    	    // InternalPerspectiveDsl.g:8342:8: 
+                    	    // InternalPerspectiveDsl.g:8302:7: ()
+                    	    // InternalPerspectiveDsl.g:8303:8: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -23040,7 +22910,7 @@
 
                     	    }
 
-                    	    otherlv_7=(Token)match(input,94,FOLLOW_4); if (state.failed) return current;
+                    	    otherlv_7=(Token)match(input,93,FOLLOW_4); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
@@ -23052,11 +22922,11 @@
 
                     	    }
 
-                    	    // InternalPerspectiveDsl.g:8354:5: ( ( ruleValidID ) )
-                    	    // InternalPerspectiveDsl.g:8355:6: ( ruleValidID )
+                    	    // InternalPerspectiveDsl.g:8315:5: ( ( ruleValidID ) )
+                    	    // InternalPerspectiveDsl.g:8316:6: ( ruleValidID )
                     	    {
-                    	    // InternalPerspectiveDsl.g:8355:6: ( ruleValidID )
-                    	    // InternalPerspectiveDsl.g:8356:7: ruleValidID
+                    	    // InternalPerspectiveDsl.g:8316:6: ( ruleValidID )
+                    	    // InternalPerspectiveDsl.g:8317:7: ruleValidID
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -23086,17 +22956,17 @@
 
                     	    }
 
-                    	    // InternalPerspectiveDsl.g:8370:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    // InternalPerspectiveDsl.g:8331:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
                     	    int alt131=2;
                     	    alt131 = dfa131.predict(input);
                     	    switch (alt131) {
                     	        case 1 :
-                    	            // InternalPerspectiveDsl.g:8371:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
+                    	            // InternalPerspectiveDsl.g:8332:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
                     	            {
-                    	            // InternalPerspectiveDsl.g:8371:6: ( ( '<' )=>otherlv_9= '<' )
-                    	            // InternalPerspectiveDsl.g:8372:7: ( '<' )=>otherlv_9= '<'
+                    	            // InternalPerspectiveDsl.g:8332:6: ( ( '<' )=>otherlv_9= '<' )
+                    	            // InternalPerspectiveDsl.g:8333:7: ( '<' )=>otherlv_9= '<'
                     	            {
-                    	            otherlv_9=(Token)match(input,69,FOLLOW_58); if (state.failed) return current;
+                    	            otherlv_9=(Token)match(input,68,FOLLOW_58); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              							newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
@@ -23105,11 +22975,11 @@
 
                     	            }
 
-                    	            // InternalPerspectiveDsl.g:8378:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
-                    	            // InternalPerspectiveDsl.g:8379:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalPerspectiveDsl.g:8339:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
+                    	            // InternalPerspectiveDsl.g:8340:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
                     	            {
-                    	            // InternalPerspectiveDsl.g:8379:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
-                    	            // InternalPerspectiveDsl.g:8380:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
+                    	            // InternalPerspectiveDsl.g:8340:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalPerspectiveDsl.g:8341:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
                     	            {
                     	            if ( state.backtracking==0 ) {
 
@@ -23140,32 +23010,32 @@
 
                     	            }
 
-                    	            // InternalPerspectiveDsl.g:8397:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
+                    	            // InternalPerspectiveDsl.g:8358:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
                     	            loop130:
                     	            do {
                     	                int alt130=2;
                     	                int LA130_0 = input.LA(1);
 
-                    	                if ( (LA130_0==58) ) {
+                    	                if ( (LA130_0==57) ) {
                     	                    alt130=1;
                     	                }
 
 
                     	                switch (alt130) {
                     	            	case 1 :
-                    	            	    // InternalPerspectiveDsl.g:8398:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalPerspectiveDsl.g:8359:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
                     	            	    {
-                    	            	    otherlv_11=(Token)match(input,58,FOLLOW_58); if (state.failed) return current;
+                    	            	    otherlv_11=(Token)match(input,57,FOLLOW_58); if (state.failed) return current;
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      							newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
                     	            	      						
                     	            	    }
-                    	            	    // InternalPerspectiveDsl.g:8402:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
-                    	            	    // InternalPerspectiveDsl.g:8403:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalPerspectiveDsl.g:8363:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalPerspectiveDsl.g:8364:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
                     	            	    {
-                    	            	    // InternalPerspectiveDsl.g:8403:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
-                    	            	    // InternalPerspectiveDsl.g:8404:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
+                    	            	    // InternalPerspectiveDsl.g:8364:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalPerspectiveDsl.g:8365:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
                     	            	    {
                     	            	    if ( state.backtracking==0 ) {
 
@@ -23205,7 +23075,7 @@
                     	                }
                     	            } while (true);
 
-                    	            otherlv_13=(Token)match(input,70,FOLLOW_96); if (state.failed) return current;
+                    	            otherlv_13=(Token)match(input,69,FOLLOW_96); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              						newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
@@ -23257,7 +23127,7 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalPerspectiveDsl.g:8433:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
+    // InternalPerspectiveDsl.g:8394:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
     public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23265,8 +23135,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8433:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
-            // InternalPerspectiveDsl.g:8434:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
+            // InternalPerspectiveDsl.g:8394:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
+            // InternalPerspectiveDsl.g:8395:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -23297,7 +23167,7 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalPerspectiveDsl.g:8440:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
+    // InternalPerspectiveDsl.g:8401:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
     public final EObject ruleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23310,17 +23180,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8446:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
-            // InternalPerspectiveDsl.g:8447:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            // InternalPerspectiveDsl.g:8407:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
+            // InternalPerspectiveDsl.g:8408:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
             {
-            // InternalPerspectiveDsl.g:8447:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            // InternalPerspectiveDsl.g:8408:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
             int alt134=2;
             int LA134_0 = input.LA(1);
 
-            if ( (LA134_0==RULE_ID||LA134_0==57||LA134_0==82) ) {
+            if ( (LA134_0==RULE_ID||LA134_0==56||LA134_0==81) ) {
                 alt134=1;
             }
-            else if ( (LA134_0==122) ) {
+            else if ( (LA134_0==121) ) {
                 alt134=2;
             }
             else {
@@ -23332,7 +23202,7 @@
             }
             switch (alt134) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8448:3: this_JvmTypeReference_0= ruleJvmTypeReference
+                    // InternalPerspectiveDsl.g:8409:3: this_JvmTypeReference_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -23354,7 +23224,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8457:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
+                    // InternalPerspectiveDsl.g:8418:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -23400,7 +23270,7 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalPerspectiveDsl.g:8469:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
+    // InternalPerspectiveDsl.g:8430:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
     public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23408,8 +23278,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8469:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
-            // InternalPerspectiveDsl.g:8470:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
+            // InternalPerspectiveDsl.g:8430:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
+            // InternalPerspectiveDsl.g:8431:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -23440,7 +23310,7 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalPerspectiveDsl.g:8476:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
+    // InternalPerspectiveDsl.g:8437:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
     public final EObject ruleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23458,14 +23328,14 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8482:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
-            // InternalPerspectiveDsl.g:8483:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalPerspectiveDsl.g:8443:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
+            // InternalPerspectiveDsl.g:8444:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
             {
-            // InternalPerspectiveDsl.g:8483:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
-            // InternalPerspectiveDsl.g:8484:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            // InternalPerspectiveDsl.g:8444:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalPerspectiveDsl.g:8445:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
             {
-            // InternalPerspectiveDsl.g:8484:3: ()
-            // InternalPerspectiveDsl.g:8485:4: 
+            // InternalPerspectiveDsl.g:8445:3: ()
+            // InternalPerspectiveDsl.g:8446:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -23477,34 +23347,34 @@
 
             }
 
-            otherlv_1=(Token)match(input,122,FOLLOW_102); if (state.failed) return current;
+            otherlv_1=(Token)match(input,121,FOLLOW_102); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
               		
             }
-            // InternalPerspectiveDsl.g:8495:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            // InternalPerspectiveDsl.g:8456:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
             int alt137=3;
             int LA137_0 = input.LA(1);
 
-            if ( (LA137_0==109) ) {
+            if ( (LA137_0==108) ) {
                 alt137=1;
             }
-            else if ( (LA137_0==110) ) {
+            else if ( (LA137_0==109) ) {
                 alt137=2;
             }
             switch (alt137) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8496:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalPerspectiveDsl.g:8457:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
                     {
-                    // InternalPerspectiveDsl.g:8496:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
-                    // InternalPerspectiveDsl.g:8497:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    // InternalPerspectiveDsl.g:8457:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalPerspectiveDsl.g:8458:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
                     {
-                    // InternalPerspectiveDsl.g:8497:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
-                    // InternalPerspectiveDsl.g:8498:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalPerspectiveDsl.g:8458:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+                    // InternalPerspectiveDsl.g:8459:6: (lv_constraints_2_0= ruleJvmUpperBound )
                     {
-                    // InternalPerspectiveDsl.g:8498:6: (lv_constraints_2_0= ruleJvmUpperBound )
-                    // InternalPerspectiveDsl.g:8499:7: lv_constraints_2_0= ruleJvmUpperBound
+                    // InternalPerspectiveDsl.g:8459:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalPerspectiveDsl.g:8460:7: lv_constraints_2_0= ruleJvmUpperBound
                     {
                     if ( state.backtracking==0 ) {
 
@@ -23535,23 +23405,23 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:8516:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    // InternalPerspectiveDsl.g:8477:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
                     loop135:
                     do {
                         int alt135=2;
                         int LA135_0 = input.LA(1);
 
-                        if ( (LA135_0==123) ) {
+                        if ( (LA135_0==122) ) {
                             alt135=1;
                         }
 
 
                         switch (alt135) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:8517:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalPerspectiveDsl.g:8478:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
                     	    {
-                    	    // InternalPerspectiveDsl.g:8517:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
-                    	    // InternalPerspectiveDsl.g:8518:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
+                    	    // InternalPerspectiveDsl.g:8478:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalPerspectiveDsl.g:8479:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -23595,16 +23465,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8537:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalPerspectiveDsl.g:8498:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
                     {
-                    // InternalPerspectiveDsl.g:8537:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
-                    // InternalPerspectiveDsl.g:8538:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    // InternalPerspectiveDsl.g:8498:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalPerspectiveDsl.g:8499:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
                     {
-                    // InternalPerspectiveDsl.g:8538:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
-                    // InternalPerspectiveDsl.g:8539:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalPerspectiveDsl.g:8499:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
+                    // InternalPerspectiveDsl.g:8500:6: (lv_constraints_4_0= ruleJvmLowerBound )
                     {
-                    // InternalPerspectiveDsl.g:8539:6: (lv_constraints_4_0= ruleJvmLowerBound )
-                    // InternalPerspectiveDsl.g:8540:7: lv_constraints_4_0= ruleJvmLowerBound
+                    // InternalPerspectiveDsl.g:8500:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalPerspectiveDsl.g:8501:7: lv_constraints_4_0= ruleJvmLowerBound
                     {
                     if ( state.backtracking==0 ) {
 
@@ -23635,23 +23505,23 @@
 
                     }
 
-                    // InternalPerspectiveDsl.g:8557:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    // InternalPerspectiveDsl.g:8518:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
                     loop136:
                     do {
                         int alt136=2;
                         int LA136_0 = input.LA(1);
 
-                        if ( (LA136_0==123) ) {
+                        if ( (LA136_0==122) ) {
                             alt136=1;
                         }
 
 
                         switch (alt136) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:8558:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalPerspectiveDsl.g:8519:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
                     	    {
-                    	    // InternalPerspectiveDsl.g:8558:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
-                    	    // InternalPerspectiveDsl.g:8559:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
+                    	    // InternalPerspectiveDsl.g:8519:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalPerspectiveDsl.g:8520:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -23722,7 +23592,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalPerspectiveDsl.g:8582:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
+    // InternalPerspectiveDsl.g:8543:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
     public final EObject entryRuleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -23730,8 +23600,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8582:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
-            // InternalPerspectiveDsl.g:8583:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
+            // InternalPerspectiveDsl.g:8543:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
+            // InternalPerspectiveDsl.g:8544:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundRule()); 
@@ -23762,7 +23632,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalPerspectiveDsl.g:8589:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalPerspectiveDsl.g:8550:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -23774,23 +23644,23 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8595:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalPerspectiveDsl.g:8596:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8556:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalPerspectiveDsl.g:8557:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalPerspectiveDsl.g:8596:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalPerspectiveDsl.g:8597:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8557:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8558:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,109,FOLLOW_46); if (state.failed) return current;
+            otherlv_0=(Token)match(input,108,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
               		
             }
-            // InternalPerspectiveDsl.g:8601:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:8602:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8562:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8563:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:8602:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:8603:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:8563:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8564:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -23846,7 +23716,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalPerspectiveDsl.g:8624:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
+    // InternalPerspectiveDsl.g:8585:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
     public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -23854,8 +23724,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8624:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
-            // InternalPerspectiveDsl.g:8625:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
+            // InternalPerspectiveDsl.g:8585:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
+            // InternalPerspectiveDsl.g:8586:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -23886,7 +23756,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalPerspectiveDsl.g:8631:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalPerspectiveDsl.g:8592:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -23898,23 +23768,23 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8637:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalPerspectiveDsl.g:8638:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8598:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalPerspectiveDsl.g:8599:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalPerspectiveDsl.g:8638:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalPerspectiveDsl.g:8639:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8599:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8600:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,123,FOLLOW_46); if (state.failed) return current;
+            otherlv_0=(Token)match(input,122,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalPerspectiveDsl.g:8643:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:8644:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8604:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8605:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:8644:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:8645:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:8605:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8606:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -23970,7 +23840,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalPerspectiveDsl.g:8666:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
+    // InternalPerspectiveDsl.g:8627:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
     public final EObject entryRuleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -23978,8 +23848,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8666:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
-            // InternalPerspectiveDsl.g:8667:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
+            // InternalPerspectiveDsl.g:8627:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
+            // InternalPerspectiveDsl.g:8628:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundRule()); 
@@ -24010,7 +23880,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalPerspectiveDsl.g:8673:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalPerspectiveDsl.g:8634:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -24022,23 +23892,23 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8679:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalPerspectiveDsl.g:8680:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8640:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalPerspectiveDsl.g:8641:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalPerspectiveDsl.g:8680:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalPerspectiveDsl.g:8681:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8641:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8642:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,110,FOLLOW_46); if (state.failed) return current;
+            otherlv_0=(Token)match(input,109,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
               		
             }
-            // InternalPerspectiveDsl.g:8685:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:8686:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8646:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8647:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:8686:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:8687:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:8647:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8648:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -24094,7 +23964,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalPerspectiveDsl.g:8708:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
+    // InternalPerspectiveDsl.g:8669:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
     public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -24102,8 +23972,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8708:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
-            // InternalPerspectiveDsl.g:8709:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
+            // InternalPerspectiveDsl.g:8669:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
+            // InternalPerspectiveDsl.g:8670:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -24134,7 +24004,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalPerspectiveDsl.g:8715:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalPerspectiveDsl.g:8676:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -24146,23 +24016,23 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8721:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalPerspectiveDsl.g:8722:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8682:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalPerspectiveDsl.g:8683:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalPerspectiveDsl.g:8722:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalPerspectiveDsl.g:8723:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8683:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalPerspectiveDsl.g:8684:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,123,FOLLOW_46); if (state.failed) return current;
+            otherlv_0=(Token)match(input,122,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalPerspectiveDsl.g:8727:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalPerspectiveDsl.g:8728:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8688:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalPerspectiveDsl.g:8689:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalPerspectiveDsl.g:8728:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalPerspectiveDsl.g:8729:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalPerspectiveDsl.g:8689:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalPerspectiveDsl.g:8690:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -24218,7 +24088,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalPerspectiveDsl.g:8750:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+    // InternalPerspectiveDsl.g:8711:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
     public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         String current = null;
 
@@ -24226,8 +24096,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8750:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
-            // InternalPerspectiveDsl.g:8751:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+            // InternalPerspectiveDsl.g:8711:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+            // InternalPerspectiveDsl.g:8712:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -24258,7 +24128,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalPerspectiveDsl.g:8757:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
+    // InternalPerspectiveDsl.g:8718:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -24270,11 +24140,11 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8763:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
-            // InternalPerspectiveDsl.g:8764:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalPerspectiveDsl.g:8724:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
+            // InternalPerspectiveDsl.g:8725:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
             {
-            // InternalPerspectiveDsl.g:8764:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
-            // InternalPerspectiveDsl.g:8765:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
+            // InternalPerspectiveDsl.g:8725:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalPerspectiveDsl.g:8726:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
             {
             if ( state.backtracking==0 ) {
 
@@ -24296,14 +24166,14 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            kw=(Token)match(input,94,FOLLOW_105); if (state.failed) return current;
+            kw=(Token)match(input,93,FOLLOW_105); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
               		
             }
-            kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -24335,7 +24205,7 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalPerspectiveDsl.g:8789:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    // InternalPerspectiveDsl.g:8750:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
     public final String entryRuleValidID() throws RecognitionException {
         String current = null;
 
@@ -24343,8 +24213,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8789:47: (iv_ruleValidID= ruleValidID EOF )
-            // InternalPerspectiveDsl.g:8790:2: iv_ruleValidID= ruleValidID EOF
+            // InternalPerspectiveDsl.g:8750:47: (iv_ruleValidID= ruleValidID EOF )
+            // InternalPerspectiveDsl.g:8751:2: iv_ruleValidID= ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getValidIDRule()); 
@@ -24375,7 +24245,7 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalPerspectiveDsl.g:8796:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalPerspectiveDsl.g:8757:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -24385,8 +24255,8 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8802:2: (this_ID_0= RULE_ID )
-            // InternalPerspectiveDsl.g:8803:2: this_ID_0= RULE_ID
+            // InternalPerspectiveDsl.g:8763:2: (this_ID_0= RULE_ID )
+            // InternalPerspectiveDsl.g:8764:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -24421,7 +24291,7 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalPerspectiveDsl.g:8813:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
+    // InternalPerspectiveDsl.g:8774:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
     public final EObject entryRuleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -24429,8 +24299,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8813:55: (iv_ruleXImportSection= ruleXImportSection EOF )
-            // InternalPerspectiveDsl.g:8814:2: iv_ruleXImportSection= ruleXImportSection EOF
+            // InternalPerspectiveDsl.g:8774:55: (iv_ruleXImportSection= ruleXImportSection EOF )
+            // InternalPerspectiveDsl.g:8775:2: iv_ruleXImportSection= ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportSectionRule()); 
@@ -24461,7 +24331,7 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalPerspectiveDsl.g:8820:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
+    // InternalPerspectiveDsl.g:8781:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
     public final EObject ruleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -24472,27 +24342,27 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8826:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
-            // InternalPerspectiveDsl.g:8827:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            // InternalPerspectiveDsl.g:8787:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
+            // InternalPerspectiveDsl.g:8788:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
             {
-            // InternalPerspectiveDsl.g:8827:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            // InternalPerspectiveDsl.g:8788:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
             int cnt138=0;
             loop138:
             do {
                 int alt138=2;
                 int LA138_0 = input.LA(1);
 
-                if ( (LA138_0==50) ) {
+                if ( (LA138_0==49) ) {
                     alt138=1;
                 }
 
 
                 switch (alt138) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8828:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalPerspectiveDsl.g:8789:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
             	    {
-            	    // InternalPerspectiveDsl.g:8828:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
-            	    // InternalPerspectiveDsl.g:8829:4: lv_importDeclarations_0_0= ruleXImportDeclaration
+            	    // InternalPerspectiveDsl.g:8789:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalPerspectiveDsl.g:8790:4: lv_importDeclarations_0_0= ruleXImportDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -24556,7 +24426,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalPerspectiveDsl.g:8849:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
+    // InternalPerspectiveDsl.g:8810:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
     public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         String current = null;
 
@@ -24564,8 +24434,8 @@
 
 
         try {
-            // InternalPerspectiveDsl.g:8849:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
-            // InternalPerspectiveDsl.g:8850:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
+            // InternalPerspectiveDsl.g:8810:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
+            // InternalPerspectiveDsl.g:8811:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -24596,7 +24466,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalPerspectiveDsl.g:8856:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
+    // InternalPerspectiveDsl.g:8817:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -24608,10 +24478,10 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8862:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
-            // InternalPerspectiveDsl.g:8863:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            // InternalPerspectiveDsl.g:8823:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
+            // InternalPerspectiveDsl.g:8824:2: (this_ValidID_0= ruleValidID kw= '.' )+
             {
-            // InternalPerspectiveDsl.g:8863:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            // InternalPerspectiveDsl.g:8824:2: (this_ValidID_0= ruleValidID kw= '.' )+
             int cnt139=0;
             loop139:
             do {
@@ -24621,7 +24491,7 @@
                 if ( (LA139_0==RULE_ID) ) {
                     int LA139_2 = input.LA(2);
 
-                    if ( (LA139_2==94) ) {
+                    if ( (LA139_2==93) ) {
                         alt139=1;
                     }
 
@@ -24631,7 +24501,7 @@
 
                 switch (alt139) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8864:3: this_ValidID_0= ruleValidID kw= '.'
+            	    // InternalPerspectiveDsl.g:8825:3: this_ValidID_0= ruleValidID kw= '.'
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -24653,7 +24523,7 @@
             	      			afterParserOrEnumRuleCall();
             	      		
             	    }
-            	    kw=(Token)match(input,94,FOLLOW_107); if (state.failed) return current;
+            	    kw=(Token)match(input,93,FOLLOW_107); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      			current.merge(kw);
@@ -24696,7 +24566,7 @@
 
 
     // $ANTLR start "ruleSashOrientation"
-    // InternalPerspectiveDsl.g:8883:1: ruleSashOrientation returns [Enumerator current=null] : ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) ) ;
+    // InternalPerspectiveDsl.g:8844:1: ruleSashOrientation returns [Enumerator current=null] : ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) ) ;
     public final Enumerator ruleSashOrientation() throws RecognitionException {
         Enumerator current = null;
 
@@ -24707,17 +24577,17 @@
         	enterRule();
 
         try {
-            // InternalPerspectiveDsl.g:8889:2: ( ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) ) )
-            // InternalPerspectiveDsl.g:8890:2: ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) )
+            // InternalPerspectiveDsl.g:8850:2: ( ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) ) )
+            // InternalPerspectiveDsl.g:8851:2: ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) )
             {
-            // InternalPerspectiveDsl.g:8890:2: ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) )
+            // InternalPerspectiveDsl.g:8851:2: ( (enumLiteral_0= 'horizontal' ) | (enumLiteral_1= 'vertical' ) )
             int alt140=2;
             int LA140_0 = input.LA(1);
 
-            if ( (LA140_0==124) ) {
+            if ( (LA140_0==123) ) {
                 alt140=1;
             }
-            else if ( (LA140_0==125) ) {
+            else if ( (LA140_0==124) ) {
                 alt140=2;
             }
             else {
@@ -24729,12 +24599,12 @@
             }
             switch (alt140) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8891:3: (enumLiteral_0= 'horizontal' )
+                    // InternalPerspectiveDsl.g:8852:3: (enumLiteral_0= 'horizontal' )
                     {
-                    // InternalPerspectiveDsl.g:8891:3: (enumLiteral_0= 'horizontal' )
-                    // InternalPerspectiveDsl.g:8892:4: enumLiteral_0= 'horizontal'
+                    // InternalPerspectiveDsl.g:8852:3: (enumLiteral_0= 'horizontal' )
+                    // InternalPerspectiveDsl.g:8853:4: enumLiteral_0= 'horizontal'
                     {
-                    enumLiteral_0=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,123,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSashOrientationAccess().getHORIZONTALEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -24748,12 +24618,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:8899:3: (enumLiteral_1= 'vertical' )
+                    // InternalPerspectiveDsl.g:8860:3: (enumLiteral_1= 'vertical' )
                     {
-                    // InternalPerspectiveDsl.g:8899:3: (enumLiteral_1= 'vertical' )
-                    // InternalPerspectiveDsl.g:8900:4: enumLiteral_1= 'vertical'
+                    // InternalPerspectiveDsl.g:8860:3: (enumLiteral_1= 'vertical' )
+                    // InternalPerspectiveDsl.g:8861:4: enumLiteral_1= 'vertical'
                     {
-                    enumLiteral_1=(Token)match(input,125,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSashOrientationAccess().getVERTICALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -24791,10 +24661,10 @@
 
     // $ANTLR start synpred1_InternalPerspectiveDsl
     public final void synpred1_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2259:5: ( '(' )
-        // InternalPerspectiveDsl.g:2259:6: '('
+        // InternalPerspectiveDsl.g:2220:5: ( '(' )
+        // InternalPerspectiveDsl.g:2220:6: '('
         {
-        match(input,57,FOLLOW_2); if (state.failed) return ;
+        match(input,56,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24802,17 +24672,17 @@
 
     // $ANTLR start synpred2_InternalPerspectiveDsl
     public final void synpred2_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2268:7: ( ( ( ( ruleValidID ) ) '=' ) )
-        // InternalPerspectiveDsl.g:2268:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalPerspectiveDsl.g:2229:7: ( ( ( ( ruleValidID ) ) '=' ) )
+        // InternalPerspectiveDsl.g:2229:8: ( ( ( ruleValidID ) ) '=' )
         {
-        // InternalPerspectiveDsl.g:2268:8: ( ( ( ruleValidID ) ) '=' )
-        // InternalPerspectiveDsl.g:2269:8: ( ( ruleValidID ) ) '='
+        // InternalPerspectiveDsl.g:2229:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalPerspectiveDsl.g:2230:8: ( ( ruleValidID ) ) '='
         {
-        // InternalPerspectiveDsl.g:2269:8: ( ( ruleValidID ) )
-        // InternalPerspectiveDsl.g:2270:9: ( ruleValidID )
+        // InternalPerspectiveDsl.g:2230:8: ( ( ruleValidID ) )
+        // InternalPerspectiveDsl.g:2231:9: ( ruleValidID )
         {
-        // InternalPerspectiveDsl.g:2270:9: ( ruleValidID )
-        // InternalPerspectiveDsl.g:2271:10: ruleValidID
+        // InternalPerspectiveDsl.g:2231:9: ( ruleValidID )
+        // InternalPerspectiveDsl.g:2232:10: ruleValidID
         {
         pushFollow(FOLLOW_32);
         ruleValidID();
@@ -24825,7 +24695,7 @@
 
         }
 
-        match(input,60,FOLLOW_2); if (state.failed) return ;
+        match(input,59,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24836,19 +24706,19 @@
 
     // $ANTLR start synpred5_InternalPerspectiveDsl
     public final void synpred5_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2448:5: ( ( () '#' '[' ) )
-        // InternalPerspectiveDsl.g:2448:6: ( () '#' '[' )
+        // InternalPerspectiveDsl.g:2409:5: ( ( () '#' '[' ) )
+        // InternalPerspectiveDsl.g:2409:6: ( () '#' '[' )
         {
-        // InternalPerspectiveDsl.g:2448:6: ( () '#' '[' )
-        // InternalPerspectiveDsl.g:2449:6: () '#' '['
+        // InternalPerspectiveDsl.g:2409:6: ( () '#' '[' )
+        // InternalPerspectiveDsl.g:2410:6: () '#' '['
         {
-        // InternalPerspectiveDsl.g:2449:6: ()
-        // InternalPerspectiveDsl.g:2450:6: 
+        // InternalPerspectiveDsl.g:2410:6: ()
+        // InternalPerspectiveDsl.g:2411:6: 
         {
         }
 
-        match(input,61,FOLLOW_34); if (state.failed) return ;
-        match(input,62,FOLLOW_2); if (state.failed) return ;
+        match(input,60,FOLLOW_34); if (state.failed) return ;
+        match(input,61,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24859,19 +24729,19 @@
 
     // $ANTLR start synpred6_InternalPerspectiveDsl
     public final void synpred6_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2590:5: ( ( () '#' '[' ) )
-        // InternalPerspectiveDsl.g:2590:6: ( () '#' '[' )
+        // InternalPerspectiveDsl.g:2551:5: ( ( () '#' '[' ) )
+        // InternalPerspectiveDsl.g:2551:6: ( () '#' '[' )
         {
-        // InternalPerspectiveDsl.g:2590:6: ( () '#' '[' )
-        // InternalPerspectiveDsl.g:2591:6: () '#' '['
+        // InternalPerspectiveDsl.g:2551:6: ( () '#' '[' )
+        // InternalPerspectiveDsl.g:2552:6: () '#' '['
         {
-        // InternalPerspectiveDsl.g:2591:6: ()
-        // InternalPerspectiveDsl.g:2592:6: 
+        // InternalPerspectiveDsl.g:2552:6: ()
+        // InternalPerspectiveDsl.g:2553:6: 
         {
         }
 
-        match(input,61,FOLLOW_34); if (state.failed) return ;
-        match(input,62,FOLLOW_2); if (state.failed) return ;
+        match(input,60,FOLLOW_34); if (state.failed) return ;
+        match(input,61,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24882,22 +24752,22 @@
 
     // $ANTLR start synpred7_InternalPerspectiveDsl
     public final void synpred7_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:2818:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
-        // InternalPerspectiveDsl.g:2818:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalPerspectiveDsl.g:2779:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
+        // InternalPerspectiveDsl.g:2779:7: ( () ( ( ruleOpMultiAssign ) ) )
         {
-        // InternalPerspectiveDsl.g:2818:7: ( () ( ( ruleOpMultiAssign ) ) )
-        // InternalPerspectiveDsl.g:2819:7: () ( ( ruleOpMultiAssign ) )
+        // InternalPerspectiveDsl.g:2779:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalPerspectiveDsl.g:2780:7: () ( ( ruleOpMultiAssign ) )
         {
-        // InternalPerspectiveDsl.g:2819:7: ()
-        // InternalPerspectiveDsl.g:2820:7: 
+        // InternalPerspectiveDsl.g:2780:7: ()
+        // InternalPerspectiveDsl.g:2781:7: 
         {
         }
 
-        // InternalPerspectiveDsl.g:2821:7: ( ( ruleOpMultiAssign ) )
-        // InternalPerspectiveDsl.g:2822:8: ( ruleOpMultiAssign )
+        // InternalPerspectiveDsl.g:2782:7: ( ( ruleOpMultiAssign ) )
+        // InternalPerspectiveDsl.g:2783:8: ( ruleOpMultiAssign )
         {
-        // InternalPerspectiveDsl.g:2822:8: ( ruleOpMultiAssign )
-        // InternalPerspectiveDsl.g:2823:9: ruleOpMultiAssign
+        // InternalPerspectiveDsl.g:2783:8: ( ruleOpMultiAssign )
+        // InternalPerspectiveDsl.g:2784:9: ruleOpMultiAssign
         {
         pushFollow(FOLLOW_2);
         ruleOpMultiAssign();
@@ -24920,22 +24790,22 @@
 
     // $ANTLR start synpred8_InternalPerspectiveDsl
     public final void synpred8_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3012:5: ( ( () ( ( ruleOpOr ) ) ) )
-        // InternalPerspectiveDsl.g:3012:6: ( () ( ( ruleOpOr ) ) )
+        // InternalPerspectiveDsl.g:2973:5: ( ( () ( ( ruleOpOr ) ) ) )
+        // InternalPerspectiveDsl.g:2973:6: ( () ( ( ruleOpOr ) ) )
         {
-        // InternalPerspectiveDsl.g:3012:6: ( () ( ( ruleOpOr ) ) )
-        // InternalPerspectiveDsl.g:3013:6: () ( ( ruleOpOr ) )
+        // InternalPerspectiveDsl.g:2973:6: ( () ( ( ruleOpOr ) ) )
+        // InternalPerspectiveDsl.g:2974:6: () ( ( ruleOpOr ) )
         {
-        // InternalPerspectiveDsl.g:3013:6: ()
-        // InternalPerspectiveDsl.g:3014:6: 
+        // InternalPerspectiveDsl.g:2974:6: ()
+        // InternalPerspectiveDsl.g:2975:6: 
         {
         }
 
-        // InternalPerspectiveDsl.g:3015:6: ( ( ruleOpOr ) )
-        // InternalPerspectiveDsl.g:3016:7: ( ruleOpOr )
+        // InternalPerspectiveDsl.g:2976:6: ( ( ruleOpOr ) )
+        // InternalPerspectiveDsl.g:2977:7: ( ruleOpOr )
         {
-        // InternalPerspectiveDsl.g:3016:7: ( ruleOpOr )
-        // InternalPerspectiveDsl.g:3017:8: ruleOpOr
+        // InternalPerspectiveDsl.g:2977:7: ( ruleOpOr )
+        // InternalPerspectiveDsl.g:2978:8: ruleOpOr
         {
         pushFollow(FOLLOW_2);
         ruleOpOr();
@@ -24958,22 +24828,22 @@
 
     // $ANTLR start synpred9_InternalPerspectiveDsl
     public final void synpred9_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3119:5: ( ( () ( ( ruleOpAnd ) ) ) )
-        // InternalPerspectiveDsl.g:3119:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalPerspectiveDsl.g:3080:5: ( ( () ( ( ruleOpAnd ) ) ) )
+        // InternalPerspectiveDsl.g:3080:6: ( () ( ( ruleOpAnd ) ) )
         {
-        // InternalPerspectiveDsl.g:3119:6: ( () ( ( ruleOpAnd ) ) )
-        // InternalPerspectiveDsl.g:3120:6: () ( ( ruleOpAnd ) )
+        // InternalPerspectiveDsl.g:3080:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalPerspectiveDsl.g:3081:6: () ( ( ruleOpAnd ) )
         {
-        // InternalPerspectiveDsl.g:3120:6: ()
-        // InternalPerspectiveDsl.g:3121:6: 
+        // InternalPerspectiveDsl.g:3081:6: ()
+        // InternalPerspectiveDsl.g:3082:6: 
         {
         }
 
-        // InternalPerspectiveDsl.g:3122:6: ( ( ruleOpAnd ) )
-        // InternalPerspectiveDsl.g:3123:7: ( ruleOpAnd )
+        // InternalPerspectiveDsl.g:3083:6: ( ( ruleOpAnd ) )
+        // InternalPerspectiveDsl.g:3084:7: ( ruleOpAnd )
         {
-        // InternalPerspectiveDsl.g:3123:7: ( ruleOpAnd )
-        // InternalPerspectiveDsl.g:3124:8: ruleOpAnd
+        // InternalPerspectiveDsl.g:3084:7: ( ruleOpAnd )
+        // InternalPerspectiveDsl.g:3085:8: ruleOpAnd
         {
         pushFollow(FOLLOW_2);
         ruleOpAnd();
@@ -24996,22 +24866,22 @@
 
     // $ANTLR start synpred10_InternalPerspectiveDsl
     public final void synpred10_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3226:5: ( ( () ( ( ruleOpEquality ) ) ) )
-        // InternalPerspectiveDsl.g:3226:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalPerspectiveDsl.g:3187:5: ( ( () ( ( ruleOpEquality ) ) ) )
+        // InternalPerspectiveDsl.g:3187:6: ( () ( ( ruleOpEquality ) ) )
         {
-        // InternalPerspectiveDsl.g:3226:6: ( () ( ( ruleOpEquality ) ) )
-        // InternalPerspectiveDsl.g:3227:6: () ( ( ruleOpEquality ) )
+        // InternalPerspectiveDsl.g:3187:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalPerspectiveDsl.g:3188:6: () ( ( ruleOpEquality ) )
         {
-        // InternalPerspectiveDsl.g:3227:6: ()
-        // InternalPerspectiveDsl.g:3228:6: 
+        // InternalPerspectiveDsl.g:3188:6: ()
+        // InternalPerspectiveDsl.g:3189:6: 
         {
         }
 
-        // InternalPerspectiveDsl.g:3229:6: ( ( ruleOpEquality ) )
-        // InternalPerspectiveDsl.g:3230:7: ( ruleOpEquality )
+        // InternalPerspectiveDsl.g:3190:6: ( ( ruleOpEquality ) )
+        // InternalPerspectiveDsl.g:3191:7: ( ruleOpEquality )
         {
-        // InternalPerspectiveDsl.g:3230:7: ( ruleOpEquality )
-        // InternalPerspectiveDsl.g:3231:8: ruleOpEquality
+        // InternalPerspectiveDsl.g:3191:7: ( ruleOpEquality )
+        // InternalPerspectiveDsl.g:3192:8: ruleOpEquality
         {
         pushFollow(FOLLOW_2);
         ruleOpEquality();
@@ -25034,18 +24904,18 @@
 
     // $ANTLR start synpred11_InternalPerspectiveDsl
     public final void synpred11_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3354:6: ( ( () 'instanceof' ) )
-        // InternalPerspectiveDsl.g:3354:7: ( () 'instanceof' )
+        // InternalPerspectiveDsl.g:3315:6: ( ( () 'instanceof' ) )
+        // InternalPerspectiveDsl.g:3315:7: ( () 'instanceof' )
         {
-        // InternalPerspectiveDsl.g:3354:7: ( () 'instanceof' )
-        // InternalPerspectiveDsl.g:3355:7: () 'instanceof'
+        // InternalPerspectiveDsl.g:3315:7: ( () 'instanceof' )
+        // InternalPerspectiveDsl.g:3316:7: () 'instanceof'
         {
-        // InternalPerspectiveDsl.g:3355:7: ()
-        // InternalPerspectiveDsl.g:3356:7: 
+        // InternalPerspectiveDsl.g:3316:7: ()
+        // InternalPerspectiveDsl.g:3317:7: 
         {
         }
 
-        match(input,78,FOLLOW_2); if (state.failed) return ;
+        match(input,77,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25056,22 +24926,22 @@
 
     // $ANTLR start synpred12_InternalPerspectiveDsl
     public final void synpred12_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3397:6: ( ( () ( ( ruleOpCompare ) ) ) )
-        // InternalPerspectiveDsl.g:3397:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalPerspectiveDsl.g:3358:6: ( ( () ( ( ruleOpCompare ) ) ) )
+        // InternalPerspectiveDsl.g:3358:7: ( () ( ( ruleOpCompare ) ) )
         {
-        // InternalPerspectiveDsl.g:3397:7: ( () ( ( ruleOpCompare ) ) )
-        // InternalPerspectiveDsl.g:3398:7: () ( ( ruleOpCompare ) )
+        // InternalPerspectiveDsl.g:3358:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalPerspectiveDsl.g:3359:7: () ( ( ruleOpCompare ) )
         {
-        // InternalPerspectiveDsl.g:3398:7: ()
-        // InternalPerspectiveDsl.g:3399:7: 
+        // InternalPerspectiveDsl.g:3359:7: ()
+        // InternalPerspectiveDsl.g:3360:7: 
         {
         }
 
-        // InternalPerspectiveDsl.g:3400:7: ( ( ruleOpCompare ) )
-        // InternalPerspectiveDsl.g:3401:8: ( ruleOpCompare )
+        // InternalPerspectiveDsl.g:3361:7: ( ( ruleOpCompare ) )
+        // InternalPerspectiveDsl.g:3362:8: ( ruleOpCompare )
         {
-        // InternalPerspectiveDsl.g:3401:8: ( ruleOpCompare )
-        // InternalPerspectiveDsl.g:3402:9: ruleOpCompare
+        // InternalPerspectiveDsl.g:3362:8: ( ruleOpCompare )
+        // InternalPerspectiveDsl.g:3363:9: ruleOpCompare
         {
         pushFollow(FOLLOW_2);
         ruleOpCompare();
@@ -25094,22 +24964,22 @@
 
     // $ANTLR start synpred13_InternalPerspectiveDsl
     public final void synpred13_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3532:5: ( ( () ( ( ruleOpOther ) ) ) )
-        // InternalPerspectiveDsl.g:3532:6: ( () ( ( ruleOpOther ) ) )
+        // InternalPerspectiveDsl.g:3493:5: ( ( () ( ( ruleOpOther ) ) ) )
+        // InternalPerspectiveDsl.g:3493:6: ( () ( ( ruleOpOther ) ) )
         {
-        // InternalPerspectiveDsl.g:3532:6: ( () ( ( ruleOpOther ) ) )
-        // InternalPerspectiveDsl.g:3533:6: () ( ( ruleOpOther ) )
+        // InternalPerspectiveDsl.g:3493:6: ( () ( ( ruleOpOther ) ) )
+        // InternalPerspectiveDsl.g:3494:6: () ( ( ruleOpOther ) )
         {
-        // InternalPerspectiveDsl.g:3533:6: ()
-        // InternalPerspectiveDsl.g:3534:6: 
+        // InternalPerspectiveDsl.g:3494:6: ()
+        // InternalPerspectiveDsl.g:3495:6: 
         {
         }
 
-        // InternalPerspectiveDsl.g:3535:6: ( ( ruleOpOther ) )
-        // InternalPerspectiveDsl.g:3536:7: ( ruleOpOther )
+        // InternalPerspectiveDsl.g:3496:6: ( ( ruleOpOther ) )
+        // InternalPerspectiveDsl.g:3497:7: ( ruleOpOther )
         {
-        // InternalPerspectiveDsl.g:3536:7: ( ruleOpOther )
-        // InternalPerspectiveDsl.g:3537:8: ruleOpOther
+        // InternalPerspectiveDsl.g:3497:7: ( ruleOpOther )
+        // InternalPerspectiveDsl.g:3498:8: ruleOpOther
         {
         pushFollow(FOLLOW_2);
         ruleOpOther();
@@ -25132,14 +25002,14 @@
 
     // $ANTLR start synpred14_InternalPerspectiveDsl
     public final void synpred14_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3652:6: ( ( '>' '>' ) )
-        // InternalPerspectiveDsl.g:3652:7: ( '>' '>' )
+        // InternalPerspectiveDsl.g:3613:6: ( ( '>' '>' ) )
+        // InternalPerspectiveDsl.g:3613:7: ( '>' '>' )
         {
-        // InternalPerspectiveDsl.g:3652:7: ( '>' '>' )
-        // InternalPerspectiveDsl.g:3653:7: '>' '>'
+        // InternalPerspectiveDsl.g:3613:7: ( '>' '>' )
+        // InternalPerspectiveDsl.g:3614:7: '>' '>'
         {
-        match(input,70,FOLLOW_49); if (state.failed) return ;
-        match(input,70,FOLLOW_2); if (state.failed) return ;
+        match(input,69,FOLLOW_49); if (state.failed) return ;
+        match(input,69,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25150,14 +25020,14 @@
 
     // $ANTLR start synpred15_InternalPerspectiveDsl
     public final void synpred15_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3687:6: ( ( '<' '<' ) )
-        // InternalPerspectiveDsl.g:3687:7: ( '<' '<' )
+        // InternalPerspectiveDsl.g:3648:6: ( ( '<' '<' ) )
+        // InternalPerspectiveDsl.g:3648:7: ( '<' '<' )
         {
-        // InternalPerspectiveDsl.g:3687:7: ( '<' '<' )
-        // InternalPerspectiveDsl.g:3688:7: '<' '<'
+        // InternalPerspectiveDsl.g:3648:7: ( '<' '<' )
+        // InternalPerspectiveDsl.g:3649:7: '<' '<'
         {
-        match(input,69,FOLLOW_39); if (state.failed) return ;
-        match(input,69,FOLLOW_2); if (state.failed) return ;
+        match(input,68,FOLLOW_39); if (state.failed) return ;
+        match(input,68,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25168,22 +25038,22 @@
 
     // $ANTLR start synpred16_InternalPerspectiveDsl
     public final void synpred16_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3760:5: ( ( () ( ( ruleOpAdd ) ) ) )
-        // InternalPerspectiveDsl.g:3760:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalPerspectiveDsl.g:3721:5: ( ( () ( ( ruleOpAdd ) ) ) )
+        // InternalPerspectiveDsl.g:3721:6: ( () ( ( ruleOpAdd ) ) )
         {
-        // InternalPerspectiveDsl.g:3760:6: ( () ( ( ruleOpAdd ) ) )
-        // InternalPerspectiveDsl.g:3761:6: () ( ( ruleOpAdd ) )
+        // InternalPerspectiveDsl.g:3721:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalPerspectiveDsl.g:3722:6: () ( ( ruleOpAdd ) )
         {
-        // InternalPerspectiveDsl.g:3761:6: ()
-        // InternalPerspectiveDsl.g:3762:6: 
+        // InternalPerspectiveDsl.g:3722:6: ()
+        // InternalPerspectiveDsl.g:3723:6: 
         {
         }
 
-        // InternalPerspectiveDsl.g:3763:6: ( ( ruleOpAdd ) )
-        // InternalPerspectiveDsl.g:3764:7: ( ruleOpAdd )
+        // InternalPerspectiveDsl.g:3724:6: ( ( ruleOpAdd ) )
+        // InternalPerspectiveDsl.g:3725:7: ( ruleOpAdd )
         {
-        // InternalPerspectiveDsl.g:3764:7: ( ruleOpAdd )
-        // InternalPerspectiveDsl.g:3765:8: ruleOpAdd
+        // InternalPerspectiveDsl.g:3725:7: ( ruleOpAdd )
+        // InternalPerspectiveDsl.g:3726:8: ruleOpAdd
         {
         pushFollow(FOLLOW_2);
         ruleOpAdd();
@@ -25206,22 +25076,22 @@
 
     // $ANTLR start synpred17_InternalPerspectiveDsl
     public final void synpred17_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:3875:5: ( ( () ( ( ruleOpMulti ) ) ) )
-        // InternalPerspectiveDsl.g:3875:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalPerspectiveDsl.g:3836:5: ( ( () ( ( ruleOpMulti ) ) ) )
+        // InternalPerspectiveDsl.g:3836:6: ( () ( ( ruleOpMulti ) ) )
         {
-        // InternalPerspectiveDsl.g:3875:6: ( () ( ( ruleOpMulti ) ) )
-        // InternalPerspectiveDsl.g:3876:6: () ( ( ruleOpMulti ) )
+        // InternalPerspectiveDsl.g:3836:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalPerspectiveDsl.g:3837:6: () ( ( ruleOpMulti ) )
         {
-        // InternalPerspectiveDsl.g:3876:6: ()
-        // InternalPerspectiveDsl.g:3877:6: 
+        // InternalPerspectiveDsl.g:3837:6: ()
+        // InternalPerspectiveDsl.g:3838:6: 
         {
         }
 
-        // InternalPerspectiveDsl.g:3878:6: ( ( ruleOpMulti ) )
-        // InternalPerspectiveDsl.g:3879:7: ( ruleOpMulti )
+        // InternalPerspectiveDsl.g:3839:6: ( ( ruleOpMulti ) )
+        // InternalPerspectiveDsl.g:3840:7: ( ruleOpMulti )
         {
-        // InternalPerspectiveDsl.g:3879:7: ( ruleOpMulti )
-        // InternalPerspectiveDsl.g:3880:8: ruleOpMulti
+        // InternalPerspectiveDsl.g:3840:7: ( ruleOpMulti )
+        // InternalPerspectiveDsl.g:3841:8: ruleOpMulti
         {
         pushFollow(FOLLOW_2);
         ruleOpMulti();
@@ -25244,18 +25114,18 @@
 
     // $ANTLR start synpred18_InternalPerspectiveDsl
     public final void synpred18_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4110:5: ( ( () 'as' ) )
-        // InternalPerspectiveDsl.g:4110:6: ( () 'as' )
+        // InternalPerspectiveDsl.g:4071:5: ( ( () 'as' ) )
+        // InternalPerspectiveDsl.g:4071:6: ( () 'as' )
         {
-        // InternalPerspectiveDsl.g:4110:6: ( () 'as' )
-        // InternalPerspectiveDsl.g:4111:6: () 'as'
+        // InternalPerspectiveDsl.g:4071:6: ( () 'as' )
+        // InternalPerspectiveDsl.g:4072:6: () 'as'
         {
-        // InternalPerspectiveDsl.g:4111:6: ()
-        // InternalPerspectiveDsl.g:4112:6: 
+        // InternalPerspectiveDsl.g:4072:6: ()
+        // InternalPerspectiveDsl.g:4073:6: 
         {
         }
 
-        match(input,91,FOLLOW_2); if (state.failed) return ;
+        match(input,90,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25266,22 +25136,22 @@
 
     // $ANTLR start synpred19_InternalPerspectiveDsl
     public final void synpred19_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4178:4: ( ( () ( ( ruleOpPostfix ) ) ) )
-        // InternalPerspectiveDsl.g:4178:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalPerspectiveDsl.g:4139:4: ( ( () ( ( ruleOpPostfix ) ) ) )
+        // InternalPerspectiveDsl.g:4139:5: ( () ( ( ruleOpPostfix ) ) )
         {
-        // InternalPerspectiveDsl.g:4178:5: ( () ( ( ruleOpPostfix ) ) )
-        // InternalPerspectiveDsl.g:4179:5: () ( ( ruleOpPostfix ) )
+        // InternalPerspectiveDsl.g:4139:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalPerspectiveDsl.g:4140:5: () ( ( ruleOpPostfix ) )
         {
-        // InternalPerspectiveDsl.g:4179:5: ()
-        // InternalPerspectiveDsl.g:4180:5: 
+        // InternalPerspectiveDsl.g:4140:5: ()
+        // InternalPerspectiveDsl.g:4141:5: 
         {
         }
 
-        // InternalPerspectiveDsl.g:4181:5: ( ( ruleOpPostfix ) )
-        // InternalPerspectiveDsl.g:4182:6: ( ruleOpPostfix )
+        // InternalPerspectiveDsl.g:4142:5: ( ( ruleOpPostfix ) )
+        // InternalPerspectiveDsl.g:4143:6: ( ruleOpPostfix )
         {
-        // InternalPerspectiveDsl.g:4182:6: ( ruleOpPostfix )
-        // InternalPerspectiveDsl.g:4183:7: ruleOpPostfix
+        // InternalPerspectiveDsl.g:4143:6: ( ruleOpPostfix )
+        // InternalPerspectiveDsl.g:4144:7: ruleOpPostfix
         {
         pushFollow(FOLLOW_2);
         ruleOpPostfix();
@@ -25304,25 +25174,25 @@
 
     // $ANTLR start synpred20_InternalPerspectiveDsl
     public final void synpred20_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4274:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-        // InternalPerspectiveDsl.g:4274:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalPerspectiveDsl.g:4235:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+        // InternalPerspectiveDsl.g:4235:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
         {
-        // InternalPerspectiveDsl.g:4274:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-        // InternalPerspectiveDsl.g:4275:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+        // InternalPerspectiveDsl.g:4235:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalPerspectiveDsl.g:4236:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
         {
-        // InternalPerspectiveDsl.g:4275:7: ()
-        // InternalPerspectiveDsl.g:4276:7: 
+        // InternalPerspectiveDsl.g:4236:7: ()
+        // InternalPerspectiveDsl.g:4237:7: 
         {
         }
 
-        // InternalPerspectiveDsl.g:4277:7: ( '.' | ( ( '::' ) ) )
+        // InternalPerspectiveDsl.g:4238:7: ( '.' | ( ( '::' ) ) )
         int alt141=2;
         int LA141_0 = input.LA(1);
 
-        if ( (LA141_0==94) ) {
+        if ( (LA141_0==93) ) {
             alt141=1;
         }
-        else if ( (LA141_0==95) ) {
+        else if ( (LA141_0==94) ) {
             alt141=2;
         }
         else {
@@ -25334,22 +25204,22 @@
         }
         switch (alt141) {
             case 1 :
-                // InternalPerspectiveDsl.g:4278:8: '.'
+                // InternalPerspectiveDsl.g:4239:8: '.'
                 {
-                match(input,94,FOLLOW_56); if (state.failed) return ;
+                match(input,93,FOLLOW_56); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalPerspectiveDsl.g:4280:8: ( ( '::' ) )
+                // InternalPerspectiveDsl.g:4241:8: ( ( '::' ) )
                 {
-                // InternalPerspectiveDsl.g:4280:8: ( ( '::' ) )
-                // InternalPerspectiveDsl.g:4281:9: ( '::' )
+                // InternalPerspectiveDsl.g:4241:8: ( ( '::' ) )
+                // InternalPerspectiveDsl.g:4242:9: ( '::' )
                 {
-                // InternalPerspectiveDsl.g:4281:9: ( '::' )
-                // InternalPerspectiveDsl.g:4282:10: '::'
+                // InternalPerspectiveDsl.g:4242:9: ( '::' )
+                // InternalPerspectiveDsl.g:4243:10: '::'
                 {
-                match(input,95,FOLLOW_56); if (state.failed) return ;
+                match(input,94,FOLLOW_56); if (state.failed) return ;
 
                 }
 
@@ -25362,11 +25232,11 @@
 
         }
 
-        // InternalPerspectiveDsl.g:4286:7: ( ( ruleFeatureCallID ) )
-        // InternalPerspectiveDsl.g:4287:8: ( ruleFeatureCallID )
+        // InternalPerspectiveDsl.g:4247:7: ( ( ruleFeatureCallID ) )
+        // InternalPerspectiveDsl.g:4248:8: ( ruleFeatureCallID )
         {
-        // InternalPerspectiveDsl.g:4287:8: ( ruleFeatureCallID )
-        // InternalPerspectiveDsl.g:4288:9: ruleFeatureCallID
+        // InternalPerspectiveDsl.g:4248:8: ( ruleFeatureCallID )
+        // InternalPerspectiveDsl.g:4249:9: ruleFeatureCallID
         {
         pushFollow(FOLLOW_32);
         ruleFeatureCallID();
@@ -25394,31 +25264,31 @@
 
     // $ANTLR start synpred21_InternalPerspectiveDsl
     public final void synpred21_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4371:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
-        // InternalPerspectiveDsl.g:4371:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalPerspectiveDsl.g:4332:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
+        // InternalPerspectiveDsl.g:4332:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
         {
-        // InternalPerspectiveDsl.g:4371:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
-        // InternalPerspectiveDsl.g:4372:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        // InternalPerspectiveDsl.g:4332:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalPerspectiveDsl.g:4333:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
         {
-        // InternalPerspectiveDsl.g:4372:7: ()
-        // InternalPerspectiveDsl.g:4373:7: 
+        // InternalPerspectiveDsl.g:4333:7: ()
+        // InternalPerspectiveDsl.g:4334:7: 
         {
         }
 
-        // InternalPerspectiveDsl.g:4374:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        // InternalPerspectiveDsl.g:4335:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
         int alt142=3;
         switch ( input.LA(1) ) {
-        case 94:
+        case 93:
             {
             alt142=1;
             }
             break;
-        case 96:
+        case 95:
             {
             alt142=2;
             }
             break;
-        case 95:
+        case 94:
             {
             alt142=3;
             }
@@ -25433,22 +25303,22 @@
 
         switch (alt142) {
             case 1 :
-                // InternalPerspectiveDsl.g:4375:8: '.'
+                // InternalPerspectiveDsl.g:4336:8: '.'
                 {
-                match(input,94,FOLLOW_2); if (state.failed) return ;
+                match(input,93,FOLLOW_2); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalPerspectiveDsl.g:4377:8: ( ( '?.' ) )
+                // InternalPerspectiveDsl.g:4338:8: ( ( '?.' ) )
                 {
-                // InternalPerspectiveDsl.g:4377:8: ( ( '?.' ) )
-                // InternalPerspectiveDsl.g:4378:9: ( '?.' )
+                // InternalPerspectiveDsl.g:4338:8: ( ( '?.' ) )
+                // InternalPerspectiveDsl.g:4339:9: ( '?.' )
                 {
-                // InternalPerspectiveDsl.g:4378:9: ( '?.' )
-                // InternalPerspectiveDsl.g:4379:10: '?.'
+                // InternalPerspectiveDsl.g:4339:9: ( '?.' )
+                // InternalPerspectiveDsl.g:4340:10: '?.'
                 {
-                match(input,96,FOLLOW_2); if (state.failed) return ;
+                match(input,95,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -25459,15 +25329,15 @@
                 }
                 break;
             case 3 :
-                // InternalPerspectiveDsl.g:4383:8: ( ( '::' ) )
+                // InternalPerspectiveDsl.g:4344:8: ( ( '::' ) )
                 {
-                // InternalPerspectiveDsl.g:4383:8: ( ( '::' ) )
-                // InternalPerspectiveDsl.g:4384:9: ( '::' )
+                // InternalPerspectiveDsl.g:4344:8: ( ( '::' ) )
+                // InternalPerspectiveDsl.g:4345:9: ( '::' )
                 {
-                // InternalPerspectiveDsl.g:4384:9: ( '::' )
-                // InternalPerspectiveDsl.g:4385:10: '::'
+                // InternalPerspectiveDsl.g:4345:9: ( '::' )
+                // InternalPerspectiveDsl.g:4346:10: '::'
                 {
-                match(input,95,FOLLOW_2); if (state.failed) return ;
+                match(input,94,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -25490,13 +25360,13 @@
 
     // $ANTLR start synpred22_InternalPerspectiveDsl
     public final void synpred22_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4509:7: ( ( '(' ) )
-        // InternalPerspectiveDsl.g:4509:8: ( '(' )
+        // InternalPerspectiveDsl.g:4470:7: ( ( '(' ) )
+        // InternalPerspectiveDsl.g:4470:8: ( '(' )
         {
-        // InternalPerspectiveDsl.g:4509:8: ( '(' )
-        // InternalPerspectiveDsl.g:4510:8: '('
+        // InternalPerspectiveDsl.g:4470:8: ( '(' )
+        // InternalPerspectiveDsl.g:4471:8: '('
         {
-        match(input,57,FOLLOW_2); if (state.failed) return ;
+        match(input,56,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25507,33 +25377,33 @@
 
     // $ANTLR start synpred23_InternalPerspectiveDsl
     public final void synpred23_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4528:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalPerspectiveDsl.g:4528:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:4489:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalPerspectiveDsl.g:4489:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalPerspectiveDsl.g:4528:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalPerspectiveDsl.g:4529:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalPerspectiveDsl.g:4489:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:4490:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalPerspectiveDsl.g:4529:9: ()
-        // InternalPerspectiveDsl.g:4530:9: 
+        // InternalPerspectiveDsl.g:4490:9: ()
+        // InternalPerspectiveDsl.g:4491:9: 
         {
         }
 
-        // InternalPerspectiveDsl.g:4531:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        // InternalPerspectiveDsl.g:4492:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
         int alt144=2;
         int LA144_0 = input.LA(1);
 
-        if ( (LA144_0==RULE_ID||LA144_0==57||LA144_0==82) ) {
+        if ( (LA144_0==RULE_ID||LA144_0==56||LA144_0==81) ) {
             alt144=1;
         }
         switch (alt144) {
             case 1 :
-                // InternalPerspectiveDsl.g:4532:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:4493:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalPerspectiveDsl.g:4532:10: ( ( ruleJvmFormalParameter ) )
-                // InternalPerspectiveDsl.g:4533:11: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:4493:10: ( ( ruleJvmFormalParameter ) )
+                // InternalPerspectiveDsl.g:4494:11: ( ruleJvmFormalParameter )
                 {
-                // InternalPerspectiveDsl.g:4533:11: ( ruleJvmFormalParameter )
-                // InternalPerspectiveDsl.g:4534:12: ruleJvmFormalParameter
+                // InternalPerspectiveDsl.g:4494:11: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:4495:12: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_67);
                 ruleJvmFormalParameter();
@@ -25546,27 +25416,27 @@
 
                 }
 
-                // InternalPerspectiveDsl.g:4537:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:4498:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 loop143:
                 do {
                     int alt143=2;
                     int LA143_0 = input.LA(1);
 
-                    if ( (LA143_0==58) ) {
+                    if ( (LA143_0==57) ) {
                         alt143=1;
                     }
 
 
                     switch (alt143) {
                 	case 1 :
-                	    // InternalPerspectiveDsl.g:4538:11: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:4499:11: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,58,FOLLOW_46); if (state.failed) return ;
-                	    // InternalPerspectiveDsl.g:4539:11: ( ( ruleJvmFormalParameter ) )
-                	    // InternalPerspectiveDsl.g:4540:12: ( ruleJvmFormalParameter )
+                	    match(input,57,FOLLOW_46); if (state.failed) return ;
+                	    // InternalPerspectiveDsl.g:4500:11: ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:4501:12: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalPerspectiveDsl.g:4540:12: ( ruleJvmFormalParameter )
-                	    // InternalPerspectiveDsl.g:4541:13: ruleJvmFormalParameter
+                	    // InternalPerspectiveDsl.g:4501:12: ( ruleJvmFormalParameter )
+                	    // InternalPerspectiveDsl.g:4502:13: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_67);
                 	    ruleJvmFormalParameter();
@@ -25594,13 +25464,13 @@
 
         }
 
-        // InternalPerspectiveDsl.g:4546:9: ( ( '|' ) )
-        // InternalPerspectiveDsl.g:4547:10: ( '|' )
+        // InternalPerspectiveDsl.g:4507:9: ( ( '|' ) )
+        // InternalPerspectiveDsl.g:4508:10: ( '|' )
         {
-        // InternalPerspectiveDsl.g:4547:10: ( '|' )
-        // InternalPerspectiveDsl.g:4548:11: '|'
+        // InternalPerspectiveDsl.g:4508:10: ( '|' )
+        // InternalPerspectiveDsl.g:4509:11: '|'
         {
-        match(input,97,FOLLOW_2); if (state.failed) return ;
+        match(input,96,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25617,18 +25487,18 @@
 
     // $ANTLR start synpred24_InternalPerspectiveDsl
     public final void synpred24_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4625:6: ( ( () '[' ) )
-        // InternalPerspectiveDsl.g:4625:7: ( () '[' )
+        // InternalPerspectiveDsl.g:4586:6: ( ( () '[' ) )
+        // InternalPerspectiveDsl.g:4586:7: ( () '[' )
         {
-        // InternalPerspectiveDsl.g:4625:7: ( () '[' )
-        // InternalPerspectiveDsl.g:4626:7: () '['
+        // InternalPerspectiveDsl.g:4586:7: ( () '[' )
+        // InternalPerspectiveDsl.g:4587:7: () '['
         {
-        // InternalPerspectiveDsl.g:4626:7: ()
-        // InternalPerspectiveDsl.g:4627:7: 
+        // InternalPerspectiveDsl.g:4587:7: ()
+        // InternalPerspectiveDsl.g:4588:7: 
         {
         }
 
-        match(input,62,FOLLOW_2); if (state.failed) return ;
+        match(input,61,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25639,19 +25509,19 @@
 
     // $ANTLR start synpred25_InternalPerspectiveDsl
     public final void synpred25_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4698:4: ( ( () 'synchronized' '(' ) )
-        // InternalPerspectiveDsl.g:4698:5: ( () 'synchronized' '(' )
+        // InternalPerspectiveDsl.g:4659:4: ( ( () 'synchronized' '(' ) )
+        // InternalPerspectiveDsl.g:4659:5: ( () 'synchronized' '(' )
         {
-        // InternalPerspectiveDsl.g:4698:5: ( () 'synchronized' '(' )
-        // InternalPerspectiveDsl.g:4699:5: () 'synchronized' '('
+        // InternalPerspectiveDsl.g:4659:5: ( () 'synchronized' '(' )
+        // InternalPerspectiveDsl.g:4660:5: () 'synchronized' '('
         {
-        // InternalPerspectiveDsl.g:4699:5: ()
-        // InternalPerspectiveDsl.g:4700:5: 
+        // InternalPerspectiveDsl.g:4660:5: ()
+        // InternalPerspectiveDsl.g:4661:5: 
         {
         }
 
-        match(input,120,FOLLOW_72); if (state.failed) return ;
-        match(input,57,FOLLOW_2); if (state.failed) return ;
+        match(input,119,FOLLOW_72); if (state.failed) return ;
+        match(input,56,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25662,24 +25532,24 @@
 
     // $ANTLR start synpred26_InternalPerspectiveDsl
     public final void synpred26_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4743:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalPerspectiveDsl.g:4743:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalPerspectiveDsl.g:4704:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalPerspectiveDsl.g:4704:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalPerspectiveDsl.g:4743:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalPerspectiveDsl.g:4744:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalPerspectiveDsl.g:4704:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalPerspectiveDsl.g:4705:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalPerspectiveDsl.g:4744:5: ()
-        // InternalPerspectiveDsl.g:4745:5: 
+        // InternalPerspectiveDsl.g:4705:5: ()
+        // InternalPerspectiveDsl.g:4706:5: 
         {
         }
 
-        match(input,104,FOLLOW_72); if (state.failed) return ;
-        match(input,57,FOLLOW_46); if (state.failed) return ;
-        // InternalPerspectiveDsl.g:4748:5: ( ( ruleJvmFormalParameter ) )
-        // InternalPerspectiveDsl.g:4749:6: ( ruleJvmFormalParameter )
+        match(input,103,FOLLOW_72); if (state.failed) return ;
+        match(input,56,FOLLOW_46); if (state.failed) return ;
+        // InternalPerspectiveDsl.g:4709:5: ( ( ruleJvmFormalParameter ) )
+        // InternalPerspectiveDsl.g:4710:6: ( ruleJvmFormalParameter )
         {
-        // InternalPerspectiveDsl.g:4749:6: ( ruleJvmFormalParameter )
-        // InternalPerspectiveDsl.g:4750:7: ruleJvmFormalParameter
+        // InternalPerspectiveDsl.g:4710:6: ( ruleJvmFormalParameter )
+        // InternalPerspectiveDsl.g:4711:7: ruleJvmFormalParameter
         {
         pushFollow(FOLLOW_75);
         ruleJvmFormalParameter();
@@ -25692,7 +25562,7 @@
 
         }
 
-        match(input,101,FOLLOW_2); if (state.failed) return ;
+        match(input,100,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25703,18 +25573,18 @@
 
     // $ANTLR start synpred27_InternalPerspectiveDsl
     public final void synpred27_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:4857:4: ( ( () '[' ) )
-        // InternalPerspectiveDsl.g:4857:5: ( () '[' )
+        // InternalPerspectiveDsl.g:4818:4: ( ( () '[' ) )
+        // InternalPerspectiveDsl.g:4818:5: ( () '[' )
         {
-        // InternalPerspectiveDsl.g:4857:5: ( () '[' )
-        // InternalPerspectiveDsl.g:4858:5: () '['
+        // InternalPerspectiveDsl.g:4818:5: ( () '[' )
+        // InternalPerspectiveDsl.g:4819:5: () '['
         {
-        // InternalPerspectiveDsl.g:4858:5: ()
-        // InternalPerspectiveDsl.g:4859:5: 
+        // InternalPerspectiveDsl.g:4819:5: ()
+        // InternalPerspectiveDsl.g:4820:5: 
         {
         }
 
-        match(input,62,FOLLOW_2); if (state.failed) return ;
+        match(input,61,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25725,28 +25595,28 @@
 
     // $ANTLR start synpred29_InternalPerspectiveDsl
     public final void synpred29_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:5162:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalPerspectiveDsl.g:5162:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:5123:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalPerspectiveDsl.g:5123:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalPerspectiveDsl.g:5162:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalPerspectiveDsl.g:5163:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalPerspectiveDsl.g:5123:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:5124:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalPerspectiveDsl.g:5163:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        // InternalPerspectiveDsl.g:5124:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
         int alt146=2;
         int LA146_0 = input.LA(1);
 
-        if ( (LA146_0==RULE_ID||LA146_0==57||LA146_0==82) ) {
+        if ( (LA146_0==RULE_ID||LA146_0==56||LA146_0==81) ) {
             alt146=1;
         }
         switch (alt146) {
             case 1 :
-                // InternalPerspectiveDsl.g:5164:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:5125:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalPerspectiveDsl.g:5164:6: ( ( ruleJvmFormalParameter ) )
-                // InternalPerspectiveDsl.g:5165:7: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:5125:6: ( ( ruleJvmFormalParameter ) )
+                // InternalPerspectiveDsl.g:5126:7: ( ruleJvmFormalParameter )
                 {
-                // InternalPerspectiveDsl.g:5165:7: ( ruleJvmFormalParameter )
-                // InternalPerspectiveDsl.g:5166:8: ruleJvmFormalParameter
+                // InternalPerspectiveDsl.g:5126:7: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:5127:8: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_67);
                 ruleJvmFormalParameter();
@@ -25759,27 +25629,27 @@
 
                 }
 
-                // InternalPerspectiveDsl.g:5169:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:5130:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 loop145:
                 do {
                     int alt145=2;
                     int LA145_0 = input.LA(1);
 
-                    if ( (LA145_0==58) ) {
+                    if ( (LA145_0==57) ) {
                         alt145=1;
                     }
 
 
                     switch (alt145) {
                 	case 1 :
-                	    // InternalPerspectiveDsl.g:5170:7: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:5131:7: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,58,FOLLOW_46); if (state.failed) return ;
-                	    // InternalPerspectiveDsl.g:5171:7: ( ( ruleJvmFormalParameter ) )
-                	    // InternalPerspectiveDsl.g:5172:8: ( ruleJvmFormalParameter )
+                	    match(input,57,FOLLOW_46); if (state.failed) return ;
+                	    // InternalPerspectiveDsl.g:5132:7: ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:5133:8: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalPerspectiveDsl.g:5172:8: ( ruleJvmFormalParameter )
-                	    // InternalPerspectiveDsl.g:5173:9: ruleJvmFormalParameter
+                	    // InternalPerspectiveDsl.g:5133:8: ( ruleJvmFormalParameter )
+                	    // InternalPerspectiveDsl.g:5134:9: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_67);
                 	    ruleJvmFormalParameter();
@@ -25807,13 +25677,13 @@
 
         }
 
-        // InternalPerspectiveDsl.g:5178:5: ( ( '|' ) )
-        // InternalPerspectiveDsl.g:5179:6: ( '|' )
+        // InternalPerspectiveDsl.g:5139:5: ( ( '|' ) )
+        // InternalPerspectiveDsl.g:5140:6: ( '|' )
         {
-        // InternalPerspectiveDsl.g:5179:6: ( '|' )
-        // InternalPerspectiveDsl.g:5180:7: '|'
+        // InternalPerspectiveDsl.g:5140:6: ( '|' )
+        // InternalPerspectiveDsl.g:5141:7: '|'
         {
-        match(input,97,FOLLOW_2); if (state.failed) return ;
+        match(input,96,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25830,10 +25700,10 @@
 
     // $ANTLR start synpred31_InternalPerspectiveDsl
     public final void synpred31_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:5571:5: ( 'else' )
-        // InternalPerspectiveDsl.g:5571:6: 'else'
+        // InternalPerspectiveDsl.g:5532:5: ( 'else' )
+        // InternalPerspectiveDsl.g:5532:6: 'else'
         {
-        match(input,99,FOLLOW_2); if (state.failed) return ;
+        match(input,98,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -25841,18 +25711,18 @@
 
     // $ANTLR start synpred32_InternalPerspectiveDsl
     public final void synpred32_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:5630:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalPerspectiveDsl.g:5630:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalPerspectiveDsl.g:5591:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalPerspectiveDsl.g:5591:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalPerspectiveDsl.g:5630:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalPerspectiveDsl.g:5631:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalPerspectiveDsl.g:5591:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalPerspectiveDsl.g:5592:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        match(input,57,FOLLOW_46); if (state.failed) return ;
-        // InternalPerspectiveDsl.g:5632:7: ( ( ruleJvmFormalParameter ) )
-        // InternalPerspectiveDsl.g:5633:8: ( ruleJvmFormalParameter )
+        match(input,56,FOLLOW_46); if (state.failed) return ;
+        // InternalPerspectiveDsl.g:5593:7: ( ( ruleJvmFormalParameter ) )
+        // InternalPerspectiveDsl.g:5594:8: ( ruleJvmFormalParameter )
         {
-        // InternalPerspectiveDsl.g:5633:8: ( ruleJvmFormalParameter )
-        // InternalPerspectiveDsl.g:5634:9: ruleJvmFormalParameter
+        // InternalPerspectiveDsl.g:5594:8: ( ruleJvmFormalParameter )
+        // InternalPerspectiveDsl.g:5595:9: ruleJvmFormalParameter
         {
         pushFollow(FOLLOW_75);
         ruleJvmFormalParameter();
@@ -25865,7 +25735,7 @@
 
         }
 
-        match(input,101,FOLLOW_2); if (state.failed) return ;
+        match(input,100,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25876,17 +25746,17 @@
 
     // $ANTLR start synpred33_InternalPerspectiveDsl
     public final void synpred33_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:5697:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalPerspectiveDsl.g:5697:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalPerspectiveDsl.g:5658:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalPerspectiveDsl.g:5658:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalPerspectiveDsl.g:5697:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalPerspectiveDsl.g:5698:7: ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalPerspectiveDsl.g:5658:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalPerspectiveDsl.g:5659:7: ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalPerspectiveDsl.g:5698:7: ( ( ruleJvmFormalParameter ) )
-        // InternalPerspectiveDsl.g:5699:8: ( ruleJvmFormalParameter )
+        // InternalPerspectiveDsl.g:5659:7: ( ( ruleJvmFormalParameter ) )
+        // InternalPerspectiveDsl.g:5660:8: ( ruleJvmFormalParameter )
         {
-        // InternalPerspectiveDsl.g:5699:8: ( ruleJvmFormalParameter )
-        // InternalPerspectiveDsl.g:5700:9: ruleJvmFormalParameter
+        // InternalPerspectiveDsl.g:5660:8: ( ruleJvmFormalParameter )
+        // InternalPerspectiveDsl.g:5661:9: ruleJvmFormalParameter
         {
         pushFollow(FOLLOW_75);
         ruleJvmFormalParameter();
@@ -25899,7 +25769,7 @@
 
         }
 
-        match(input,101,FOLLOW_2); if (state.failed) return ;
+        match(input,100,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25910,17 +25780,17 @@
 
     // $ANTLR start synpred35_InternalPerspectiveDsl
     public final void synpred35_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:6515:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
-        // InternalPerspectiveDsl.g:6515:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalPerspectiveDsl.g:6476:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
+        // InternalPerspectiveDsl.g:6476:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
         {
-        // InternalPerspectiveDsl.g:6515:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
-        // InternalPerspectiveDsl.g:6516:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
+        // InternalPerspectiveDsl.g:6476:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalPerspectiveDsl.g:6477:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
         {
-        // InternalPerspectiveDsl.g:6516:6: ( ( ruleJvmTypeReference ) )
-        // InternalPerspectiveDsl.g:6517:7: ( ruleJvmTypeReference )
+        // InternalPerspectiveDsl.g:6477:6: ( ( ruleJvmTypeReference ) )
+        // InternalPerspectiveDsl.g:6478:7: ( ruleJvmTypeReference )
         {
-        // InternalPerspectiveDsl.g:6517:7: ( ruleJvmTypeReference )
-        // InternalPerspectiveDsl.g:6518:8: ruleJvmTypeReference
+        // InternalPerspectiveDsl.g:6478:7: ( ruleJvmTypeReference )
+        // InternalPerspectiveDsl.g:6479:8: ruleJvmTypeReference
         {
         pushFollow(FOLLOW_4);
         ruleJvmTypeReference();
@@ -25933,11 +25803,11 @@
 
         }
 
-        // InternalPerspectiveDsl.g:6521:6: ( ( ruleValidID ) )
-        // InternalPerspectiveDsl.g:6522:7: ( ruleValidID )
+        // InternalPerspectiveDsl.g:6482:6: ( ( ruleValidID ) )
+        // InternalPerspectiveDsl.g:6483:7: ( ruleValidID )
         {
-        // InternalPerspectiveDsl.g:6522:7: ( ruleValidID )
-        // InternalPerspectiveDsl.g:6523:8: ruleValidID
+        // InternalPerspectiveDsl.g:6483:7: ( ruleValidID )
+        // InternalPerspectiveDsl.g:6484:8: ruleValidID
         {
         pushFollow(FOLLOW_2);
         ruleValidID();
@@ -25960,13 +25830,13 @@
 
     // $ANTLR start synpred36_InternalPerspectiveDsl
     public final void synpred36_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:6827:5: ( ( '(' ) )
-        // InternalPerspectiveDsl.g:6827:6: ( '(' )
+        // InternalPerspectiveDsl.g:6788:5: ( ( '(' ) )
+        // InternalPerspectiveDsl.g:6788:6: ( '(' )
         {
-        // InternalPerspectiveDsl.g:6827:6: ( '(' )
-        // InternalPerspectiveDsl.g:6828:6: '('
+        // InternalPerspectiveDsl.g:6788:6: ( '(' )
+        // InternalPerspectiveDsl.g:6789:6: '('
         {
-        match(input,57,FOLLOW_2); if (state.failed) return ;
+        match(input,56,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25977,33 +25847,33 @@
 
     // $ANTLR start synpred37_InternalPerspectiveDsl
     public final void synpred37_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:6846:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalPerspectiveDsl.g:6846:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:6807:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalPerspectiveDsl.g:6807:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalPerspectiveDsl.g:6846:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalPerspectiveDsl.g:6847:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalPerspectiveDsl.g:6807:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:6808:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalPerspectiveDsl.g:6847:7: ()
-        // InternalPerspectiveDsl.g:6848:7: 
+        // InternalPerspectiveDsl.g:6808:7: ()
+        // InternalPerspectiveDsl.g:6809:7: 
         {
         }
 
-        // InternalPerspectiveDsl.g:6849:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        // InternalPerspectiveDsl.g:6810:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
         int alt150=2;
         int LA150_0 = input.LA(1);
 
-        if ( (LA150_0==RULE_ID||LA150_0==57||LA150_0==82) ) {
+        if ( (LA150_0==RULE_ID||LA150_0==56||LA150_0==81) ) {
             alt150=1;
         }
         switch (alt150) {
             case 1 :
-                // InternalPerspectiveDsl.g:6850:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:6811:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalPerspectiveDsl.g:6850:8: ( ( ruleJvmFormalParameter ) )
-                // InternalPerspectiveDsl.g:6851:9: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:6811:8: ( ( ruleJvmFormalParameter ) )
+                // InternalPerspectiveDsl.g:6812:9: ( ruleJvmFormalParameter )
                 {
-                // InternalPerspectiveDsl.g:6851:9: ( ruleJvmFormalParameter )
-                // InternalPerspectiveDsl.g:6852:10: ruleJvmFormalParameter
+                // InternalPerspectiveDsl.g:6812:9: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:6813:10: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_67);
                 ruleJvmFormalParameter();
@@ -26016,27 +25886,27 @@
 
                 }
 
-                // InternalPerspectiveDsl.g:6855:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:6816:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 loop149:
                 do {
                     int alt149=2;
                     int LA149_0 = input.LA(1);
 
-                    if ( (LA149_0==58) ) {
+                    if ( (LA149_0==57) ) {
                         alt149=1;
                     }
 
 
                     switch (alt149) {
                 	case 1 :
-                	    // InternalPerspectiveDsl.g:6856:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:6817:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,58,FOLLOW_46); if (state.failed) return ;
-                	    // InternalPerspectiveDsl.g:6857:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalPerspectiveDsl.g:6858:10: ( ruleJvmFormalParameter )
+                	    match(input,57,FOLLOW_46); if (state.failed) return ;
+                	    // InternalPerspectiveDsl.g:6818:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:6819:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalPerspectiveDsl.g:6858:10: ( ruleJvmFormalParameter )
-                	    // InternalPerspectiveDsl.g:6859:11: ruleJvmFormalParameter
+                	    // InternalPerspectiveDsl.g:6819:10: ( ruleJvmFormalParameter )
+                	    // InternalPerspectiveDsl.g:6820:11: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_67);
                 	    ruleJvmFormalParameter();
@@ -26064,13 +25934,13 @@
 
         }
 
-        // InternalPerspectiveDsl.g:6864:7: ( ( '|' ) )
-        // InternalPerspectiveDsl.g:6865:8: ( '|' )
+        // InternalPerspectiveDsl.g:6825:7: ( ( '|' ) )
+        // InternalPerspectiveDsl.g:6826:8: ( '|' )
         {
-        // InternalPerspectiveDsl.g:6865:8: ( '|' )
-        // InternalPerspectiveDsl.g:6866:9: '|'
+        // InternalPerspectiveDsl.g:6826:8: ( '|' )
+        // InternalPerspectiveDsl.g:6827:9: '|'
         {
-        match(input,97,FOLLOW_2); if (state.failed) return ;
+        match(input,96,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26087,18 +25957,18 @@
 
     // $ANTLR start synpred38_InternalPerspectiveDsl
     public final void synpred38_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:6943:4: ( ( () '[' ) )
-        // InternalPerspectiveDsl.g:6943:5: ( () '[' )
+        // InternalPerspectiveDsl.g:6904:4: ( ( () '[' ) )
+        // InternalPerspectiveDsl.g:6904:5: ( () '[' )
         {
-        // InternalPerspectiveDsl.g:6943:5: ( () '[' )
-        // InternalPerspectiveDsl.g:6944:5: () '['
+        // InternalPerspectiveDsl.g:6904:5: ( () '[' )
+        // InternalPerspectiveDsl.g:6905:5: () '['
         {
-        // InternalPerspectiveDsl.g:6944:5: ()
-        // InternalPerspectiveDsl.g:6945:5: 
+        // InternalPerspectiveDsl.g:6905:5: ()
+        // InternalPerspectiveDsl.g:6906:5: 
         {
         }
 
-        match(input,62,FOLLOW_2); if (state.failed) return ;
+        match(input,61,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26109,10 +25979,10 @@
 
     // $ANTLR start synpred39_InternalPerspectiveDsl
     public final void synpred39_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7103:5: ( '<' )
-        // InternalPerspectiveDsl.g:7103:6: '<'
+        // InternalPerspectiveDsl.g:7064:5: ( '<' )
+        // InternalPerspectiveDsl.g:7064:6: '<'
         {
-        match(input,69,FOLLOW_2); if (state.failed) return ;
+        match(input,68,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26120,13 +25990,13 @@
 
     // $ANTLR start synpred40_InternalPerspectiveDsl
     public final void synpred40_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7160:5: ( ( '(' ) )
-        // InternalPerspectiveDsl.g:7160:6: ( '(' )
+        // InternalPerspectiveDsl.g:7121:5: ( ( '(' ) )
+        // InternalPerspectiveDsl.g:7121:6: ( '(' )
         {
-        // InternalPerspectiveDsl.g:7160:6: ( '(' )
-        // InternalPerspectiveDsl.g:7161:6: '('
+        // InternalPerspectiveDsl.g:7121:6: ( '(' )
+        // InternalPerspectiveDsl.g:7122:6: '('
         {
-        match(input,57,FOLLOW_2); if (state.failed) return ;
+        match(input,56,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26137,33 +26007,33 @@
 
     // $ANTLR start synpred41_InternalPerspectiveDsl
     public final void synpred41_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7179:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalPerspectiveDsl.g:7179:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:7140:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalPerspectiveDsl.g:7140:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalPerspectiveDsl.g:7179:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalPerspectiveDsl.g:7180:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalPerspectiveDsl.g:7140:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalPerspectiveDsl.g:7141:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalPerspectiveDsl.g:7180:7: ()
-        // InternalPerspectiveDsl.g:7181:7: 
+        // InternalPerspectiveDsl.g:7141:7: ()
+        // InternalPerspectiveDsl.g:7142:7: 
         {
         }
 
-        // InternalPerspectiveDsl.g:7182:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        // InternalPerspectiveDsl.g:7143:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
         int alt152=2;
         int LA152_0 = input.LA(1);
 
-        if ( (LA152_0==RULE_ID||LA152_0==57||LA152_0==82) ) {
+        if ( (LA152_0==RULE_ID||LA152_0==56||LA152_0==81) ) {
             alt152=1;
         }
         switch (alt152) {
             case 1 :
-                // InternalPerspectiveDsl.g:7183:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:7144:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalPerspectiveDsl.g:7183:8: ( ( ruleJvmFormalParameter ) )
-                // InternalPerspectiveDsl.g:7184:9: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:7144:8: ( ( ruleJvmFormalParameter ) )
+                // InternalPerspectiveDsl.g:7145:9: ( ruleJvmFormalParameter )
                 {
-                // InternalPerspectiveDsl.g:7184:9: ( ruleJvmFormalParameter )
-                // InternalPerspectiveDsl.g:7185:10: ruleJvmFormalParameter
+                // InternalPerspectiveDsl.g:7145:9: ( ruleJvmFormalParameter )
+                // InternalPerspectiveDsl.g:7146:10: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_67);
                 ruleJvmFormalParameter();
@@ -26176,27 +26046,27 @@
 
                 }
 
-                // InternalPerspectiveDsl.g:7188:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalPerspectiveDsl.g:7149:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 loop151:
                 do {
                     int alt151=2;
                     int LA151_0 = input.LA(1);
 
-                    if ( (LA151_0==58) ) {
+                    if ( (LA151_0==57) ) {
                         alt151=1;
                     }
 
 
                     switch (alt151) {
                 	case 1 :
-                	    // InternalPerspectiveDsl.g:7189:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:7150:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,58,FOLLOW_46); if (state.failed) return ;
-                	    // InternalPerspectiveDsl.g:7190:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalPerspectiveDsl.g:7191:10: ( ruleJvmFormalParameter )
+                	    match(input,57,FOLLOW_46); if (state.failed) return ;
+                	    // InternalPerspectiveDsl.g:7151:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalPerspectiveDsl.g:7152:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalPerspectiveDsl.g:7191:10: ( ruleJvmFormalParameter )
-                	    // InternalPerspectiveDsl.g:7192:11: ruleJvmFormalParameter
+                	    // InternalPerspectiveDsl.g:7152:10: ( ruleJvmFormalParameter )
+                	    // InternalPerspectiveDsl.g:7153:11: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_67);
                 	    ruleJvmFormalParameter();
@@ -26224,13 +26094,13 @@
 
         }
 
-        // InternalPerspectiveDsl.g:7197:7: ( ( '|' ) )
-        // InternalPerspectiveDsl.g:7198:8: ( '|' )
+        // InternalPerspectiveDsl.g:7158:7: ( ( '|' ) )
+        // InternalPerspectiveDsl.g:7159:8: ( '|' )
         {
-        // InternalPerspectiveDsl.g:7198:8: ( '|' )
-        // InternalPerspectiveDsl.g:7199:9: '|'
+        // InternalPerspectiveDsl.g:7159:8: ( '|' )
+        // InternalPerspectiveDsl.g:7160:9: '|'
         {
-        match(input,97,FOLLOW_2); if (state.failed) return ;
+        match(input,96,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26247,18 +26117,18 @@
 
     // $ANTLR start synpred42_InternalPerspectiveDsl
     public final void synpred42_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7276:4: ( ( () '[' ) )
-        // InternalPerspectiveDsl.g:7276:5: ( () '[' )
+        // InternalPerspectiveDsl.g:7237:4: ( ( () '[' ) )
+        // InternalPerspectiveDsl.g:7237:5: ( () '[' )
         {
-        // InternalPerspectiveDsl.g:7276:5: ( () '[' )
-        // InternalPerspectiveDsl.g:7277:5: () '['
+        // InternalPerspectiveDsl.g:7237:5: ( () '[' )
+        // InternalPerspectiveDsl.g:7238:5: () '['
         {
-        // InternalPerspectiveDsl.g:7277:5: ()
-        // InternalPerspectiveDsl.g:7278:5: 
+        // InternalPerspectiveDsl.g:7238:5: ()
+        // InternalPerspectiveDsl.g:7239:5: 
         {
         }
 
-        match(input,62,FOLLOW_2); if (state.failed) return ;
+        match(input,61,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26269,10 +26139,10 @@
 
     // $ANTLR start synpred43_InternalPerspectiveDsl
     public final void synpred43_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7619:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
+        // InternalPerspectiveDsl.g:7580:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
         // InternalPerspectiveDsl.g:
         {
-        if ( (input.LA(1)>=RULE_ID && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||(input.LA(1)>=50 && input.LA(1)<=52)||input.LA(1)==57||(input.LA(1)>=61 && input.LA(1)<=62)||input.LA(1)==69||(input.LA(1)>=85 && input.LA(1)<=86)||input.LA(1)==90||input.LA(1)==98||input.LA(1)==100||(input.LA(1)>=104 && input.LA(1)<=106)||(input.LA(1)>=109 && input.LA(1)<=118)||input.LA(1)==120 ) {
+        if ( (input.LA(1)>=RULE_ID && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||(input.LA(1)>=49 && input.LA(1)<=51)||input.LA(1)==56||(input.LA(1)>=60 && input.LA(1)<=61)||input.LA(1)==68||(input.LA(1)>=84 && input.LA(1)<=85)||input.LA(1)==89||input.LA(1)==97||input.LA(1)==99||(input.LA(1)>=103 && input.LA(1)<=105)||(input.LA(1)>=108 && input.LA(1)<=117)||input.LA(1)==119 ) {
             input.consume();
             state.errorRecovery=false;state.failed=false;
         }
@@ -26289,10 +26159,10 @@
 
     // $ANTLR start synpred44_InternalPerspectiveDsl
     public final void synpred44_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7690:6: ( 'catch' )
-        // InternalPerspectiveDsl.g:7690:7: 'catch'
+        // InternalPerspectiveDsl.g:7651:6: ( 'catch' )
+        // InternalPerspectiveDsl.g:7651:7: 'catch'
         {
-        match(input,121,FOLLOW_2); if (state.failed) return ;
+        match(input,120,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26300,10 +26170,10 @@
 
     // $ANTLR start synpred45_InternalPerspectiveDsl
     public final void synpred45_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7711:7: ( 'finally' )
-        // InternalPerspectiveDsl.g:7711:8: 'finally'
+        // InternalPerspectiveDsl.g:7672:7: ( 'finally' )
+        // InternalPerspectiveDsl.g:7672:8: 'finally'
         {
-        match(input,119,FOLLOW_2); if (state.failed) return ;
+        match(input,118,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26311,10 +26181,10 @@
 
     // $ANTLR start synpred48_InternalPerspectiveDsl
     public final void synpred48_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:7955:5: ( '.' )
-        // InternalPerspectiveDsl.g:7955:6: '.'
+        // InternalPerspectiveDsl.g:7916:5: ( '.' )
+        // InternalPerspectiveDsl.g:7916:6: '.'
         {
-        match(input,94,FOLLOW_2); if (state.failed) return ;
+        match(input,93,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26322,14 +26192,14 @@
 
     // $ANTLR start synpred49_InternalPerspectiveDsl
     public final void synpred49_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:8081:5: ( ( () ruleArrayBrackets ) )
-        // InternalPerspectiveDsl.g:8081:6: ( () ruleArrayBrackets )
+        // InternalPerspectiveDsl.g:8042:5: ( ( () ruleArrayBrackets ) )
+        // InternalPerspectiveDsl.g:8042:6: ( () ruleArrayBrackets )
         {
-        // InternalPerspectiveDsl.g:8081:6: ( () ruleArrayBrackets )
-        // InternalPerspectiveDsl.g:8082:6: () ruleArrayBrackets
+        // InternalPerspectiveDsl.g:8042:6: ( () ruleArrayBrackets )
+        // InternalPerspectiveDsl.g:8043:6: () ruleArrayBrackets
         {
-        // InternalPerspectiveDsl.g:8082:6: ()
-        // InternalPerspectiveDsl.g:8083:6: 
+        // InternalPerspectiveDsl.g:8043:6: ()
+        // InternalPerspectiveDsl.g:8044:6: 
         {
         }
 
@@ -26348,10 +26218,10 @@
 
     // $ANTLR start synpred50_InternalPerspectiveDsl
     public final void synpred50_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:8278:5: ( '<' )
-        // InternalPerspectiveDsl.g:8278:6: '<'
+        // InternalPerspectiveDsl.g:8239:5: ( '<' )
+        // InternalPerspectiveDsl.g:8239:6: '<'
         {
-        match(input,69,FOLLOW_2); if (state.failed) return ;
+        match(input,68,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26359,18 +26229,18 @@
 
     // $ANTLR start synpred51_InternalPerspectiveDsl
     public final void synpred51_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:8334:6: ( ( () '.' ) )
-        // InternalPerspectiveDsl.g:8334:7: ( () '.' )
+        // InternalPerspectiveDsl.g:8295:6: ( ( () '.' ) )
+        // InternalPerspectiveDsl.g:8295:7: ( () '.' )
         {
-        // InternalPerspectiveDsl.g:8334:7: ( () '.' )
-        // InternalPerspectiveDsl.g:8335:7: () '.'
+        // InternalPerspectiveDsl.g:8295:7: ( () '.' )
+        // InternalPerspectiveDsl.g:8296:7: () '.'
         {
-        // InternalPerspectiveDsl.g:8335:7: ()
-        // InternalPerspectiveDsl.g:8336:7: 
+        // InternalPerspectiveDsl.g:8296:7: ()
+        // InternalPerspectiveDsl.g:8297:7: 
         {
         }
 
-        match(input,94,FOLLOW_2); if (state.failed) return ;
+        match(input,93,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26381,10 +26251,10 @@
 
     // $ANTLR start synpred52_InternalPerspectiveDsl
     public final void synpred52_InternalPerspectiveDsl_fragment() throws RecognitionException {   
-        // InternalPerspectiveDsl.g:8372:7: ( '<' )
-        // InternalPerspectiveDsl.g:8372:8: '<'
+        // InternalPerspectiveDsl.g:8333:7: ( '<' )
+        // InternalPerspectiveDsl.g:8333:8: '<'
         {
-        match(input,69,FOLLOW_2); if (state.failed) return ;
+        match(input,68,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -27049,20 +26919,20 @@
     protected DFA133 dfa133 = new DFA133(this);
     protected DFA131 dfa131 = new DFA131(this);
     static final String dfa_1s = "\10\uffff";
-    static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
-    static final String dfa_3s = "\1\4\1\uffff\1\15\1\uffff\1\4\1\uffff\1\15\1\uffff";
-    static final String dfa_4s = "\1\66\1\uffff\1\136\1\uffff\1\65\1\uffff\1\136\1\uffff";
-    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
+    static final String dfa_2s = "\2\uffff\1\5\4\uffff\1\5";
+    static final String dfa_3s = "\1\4\1\uffff\1\15\1\uffff\1\4\2\uffff\1\15";
+    static final String dfa_4s = "\1\65\1\uffff\1\135\1\uffff\1\64\2\uffff\1\135";
+    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\3\1\uffff";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\56\uffff\1\1\2\uffff\1\3",
+            "\1\2\55\uffff\1\1\2\uffff\1\3",
             "",
-            "\1\5\44\uffff\1\5\4\uffff\1\5\46\uffff\1\4",
+            "\1\5\43\uffff\1\5\4\uffff\1\5\46\uffff\1\4",
             "",
-            "\1\6\60\uffff\1\7",
+            "\1\7\57\uffff\1\6",
             "",
-            "\1\5\44\uffff\1\5\4\uffff\1\5\46\uffff\1\4",
-            ""
+            "",
+            "\1\5\43\uffff\1\5\4\uffff\1\5\46\uffff\1\4"
     };
 
     static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -27087,16 +26957,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "2048:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
+            return "2009:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
         }
     }
     static final String dfa_8s = "\44\uffff";
     static final String dfa_9s = "\1\4\1\0\42\uffff";
-    static final String dfa_10s = "\1\170\1\0\42\uffff";
+    static final String dfa_10s = "\1\167\1\0\42\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\3\1\1";
     static final String dfa_12s = "\1\uffff\1\0\42\uffff}>";
     static final String[] dfa_13s = {
-            "\1\1\4\2\5\uffff\1\2\43\uffff\3\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\1\4\2\5\uffff\1\2\42\uffff\3\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -27155,7 +27025,7 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "2265:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
+            return "2226:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -27186,11 +27056,11 @@
     }
     static final String dfa_14s = "\43\uffff";
     static final String dfa_15s = "\1\4\1\0\41\uffff";
-    static final String dfa_16s = "\1\170\1\0\41\uffff";
+    static final String dfa_16s = "\1\167\1\0\41\uffff";
     static final String dfa_17s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_18s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_19s = {
-            "\5\2\5\uffff\1\2\43\uffff\3\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\42\uffff\3\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -27248,7 +27118,7 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "2445:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
+            return "2406:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -27292,7 +27162,7 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "2587:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+            return "2548:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -27324,11 +27194,11 @@
     static final String dfa_20s = "\12\uffff";
     static final String dfa_21s = "\1\10\11\uffff";
     static final String dfa_22s = "\1\4\7\0\2\uffff";
-    static final String dfa_23s = "\1\171\7\0\2\uffff";
+    static final String dfa_23s = "\1\170\7\0\2\uffff";
     static final String dfa_24s = "\10\uffff\1\2\1\1";
-    static final String dfa_25s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\0\1\6\2\uffff}>";
+    static final String dfa_25s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\0\2\uffff}>";
     static final String[] dfa_26s = {
-            "\5\10\5\uffff\2\10\42\uffff\4\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\32\10\1\uffff\30\10",
+            "\5\10\5\uffff\2\10\41\uffff\4\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\32\10\1\uffff\30\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -27362,17 +27232,17 @@
             this.transition = dfa_26;
         }
         public String getDescription() {
-            return "2816:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
+            return "2777:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA33_6 = input.LA(1);
+                        int LA33_7 = input.LA(1);
 
                          
-                        int index33_6 = input.index();
+                        int index33_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalPerspectiveDsl()) ) {s = 9;}
@@ -27380,7 +27250,7 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index33_6);
+                        input.seek(index33_7);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
@@ -27459,10 +27329,10 @@
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA33_7 = input.LA(1);
+                        int LA33_6 = input.LA(1);
 
                          
-                        int index33_7 = input.index();
+                        int index33_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalPerspectiveDsl()) ) {s = 9;}
@@ -27470,7 +27340,7 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index33_7);
+                        input.seek(index33_6);
                         if ( s>=0 ) return s;
                         break;
             }
@@ -27484,11 +27354,11 @@
     static final String dfa_27s = "\13\uffff";
     static final String dfa_28s = "\1\1\12\uffff";
     static final String dfa_29s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_30s = "\1\171\1\uffff\10\0\1\uffff";
+    static final String dfa_30s = "\1\170\1\uffff\10\0\1\uffff";
     static final String dfa_31s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_32s = "\2\uffff\1\3\1\4\1\6\1\7\1\5\1\0\1\1\1\2\1\uffff}>";
+    static final String dfa_32s = "\2\uffff\1\4\1\5\1\2\1\3\1\1\1\0\1\6\1\7\1\uffff}>";
     static final String[] dfa_33s = {
-            "\5\1\5\uffff\2\1\42\uffff\4\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\14\1\1\uffff\30\1",
+            "\5\1\5\uffff\2\1\41\uffff\4\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\14\1\1\uffff\30\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -27523,7 +27393,7 @@
             this.transition = dfa_33;
         }
         public String getDescription() {
-            return "()* loopback of 3530:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
+            return "()* loopback of 3491:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -27545,66 +27415,6 @@
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA43_8 = input.LA(1);
-
-                         
-                        int index43_8 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index43_8);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA43_9 = input.LA(1);
-
-                         
-                        int index43_9 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index43_9);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 3 : 
-                        int LA43_2 = input.LA(1);
-
-                         
-                        int index43_2 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index43_2);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 4 : 
-                        int LA43_3 = input.LA(1);
-
-                         
-                        int index43_3 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
-
-                        else if ( (true) ) {s = 1;}
-
-                         
-                        input.seek(index43_3);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 5 : 
                         int LA43_6 = input.LA(1);
 
                          
@@ -27619,7 +27429,7 @@
                         input.seek(index43_6);
                         if ( s>=0 ) return s;
                         break;
-                    case 6 : 
+                    case 2 : 
                         int LA43_4 = input.LA(1);
 
                          
@@ -27634,7 +27444,7 @@
                         input.seek(index43_4);
                         if ( s>=0 ) return s;
                         break;
-                    case 7 : 
+                    case 3 : 
                         int LA43_5 = input.LA(1);
 
                          
@@ -27649,6 +27459,66 @@
                         input.seek(index43_5);
                         if ( s>=0 ) return s;
                         break;
+                    case 4 : 
+                        int LA43_2 = input.LA(1);
+
+                         
+                        int index43_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index43_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA43_3 = input.LA(1);
+
+                         
+                        int index43_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index43_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA43_8 = input.LA(1);
+
+                         
+                        int index43_8 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index43_8);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA43_9 = input.LA(1);
+
+                         
+                        int index43_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalPerspectiveDsl()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index43_9);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -27657,15 +27527,15 @@
             throw nvae;
         }
     }
-    static final String dfa_34s = "\1\105\2\uffff\1\106\7\uffff";
-    static final String dfa_35s = "\1\124\2\uffff\1\121\7\uffff";
-    static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\3\1\6";
+    static final String dfa_34s = "\1\104\2\uffff\1\105\7\uffff";
+    static final String dfa_35s = "\1\123\2\uffff\1\120\7\uffff";
+    static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\6\1\3";
     static final String dfa_37s = "\13\uffff}>";
     static final String[] dfa_38s = {
             "\1\6\1\3\10\uffff\1\1\1\2\1\4\1\5\1\7\1\10",
             "",
             "",
-            "\1\12\12\uffff\1\11",
+            "\1\11\12\uffff\1\12",
             "",
             "",
             "",
@@ -27694,17 +27564,17 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "3606:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
+            return "3567:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
         }
     }
     static final String dfa_39s = "\116\uffff";
     static final String dfa_40s = "\1\2\115\uffff";
     static final String dfa_41s = "\1\4\1\0\114\uffff";
-    static final String dfa_42s = "\1\171\1\0\114\uffff";
+    static final String dfa_42s = "\1\170\1\0\114\uffff";
     static final String dfa_43s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_44s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_45s = {
-            "\5\2\5\uffff\2\2\42\uffff\4\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\44\2\1\uffff\30\2",
+            "\5\2\5\uffff\2\2\41\uffff\4\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\44\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -27806,7 +27676,7 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "4507:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
+            return "4468:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -27836,11 +27706,11 @@
         }
     }
     static final String dfa_46s = "\1\4\2\0\41\uffff";
-    static final String dfa_47s = "\1\170\2\0\41\uffff";
+    static final String dfa_47s = "\1\167\2\0\41\uffff";
     static final String dfa_48s = "\3\uffff\2\1\1\2\35\uffff\1\3";
     static final String dfa_49s = "\1\0\1\1\1\2\41\uffff}>";
     static final String[] dfa_50s = {
-            "\1\1\4\5\5\uffff\1\5\43\uffff\3\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\3\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
+            "\1\1\4\5\5\uffff\1\5\42\uffff\3\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\3\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -27897,7 +27767,7 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "4526:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
+            return "4487:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -27912,15 +27782,15 @@
                         s = -1;
                         if ( (LA61_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA61_0==57) ) {s = 2;}
+                        else if ( (LA61_0==56) ) {s = 2;}
 
-                        else if ( (LA61_0==82) && (synpred23_InternalPerspectiveDsl())) {s = 3;}
+                        else if ( (LA61_0==81) && (synpred23_InternalPerspectiveDsl())) {s = 3;}
 
-                        else if ( (LA61_0==97) && (synpred23_InternalPerspectiveDsl())) {s = 4;}
+                        else if ( (LA61_0==96) && (synpred23_InternalPerspectiveDsl())) {s = 4;}
 
-                        else if ( ((LA61_0>=RULE_STRING && LA61_0<=RULE_DECIMAL)||LA61_0==14||(LA61_0>=50 && LA61_0<=52)||(LA61_0>=61 && LA61_0<=62)||LA61_0==69||(LA61_0>=85 && LA61_0<=86)||LA61_0==90||LA61_0==98||LA61_0==100||(LA61_0>=104 && LA61_0<=106)||(LA61_0>=109 && LA61_0<=118)||LA61_0==120) ) {s = 5;}
+                        else if ( ((LA61_0>=RULE_STRING && LA61_0<=RULE_DECIMAL)||LA61_0==14||(LA61_0>=49 && LA61_0<=51)||(LA61_0>=60 && LA61_0<=61)||LA61_0==68||(LA61_0>=84 && LA61_0<=85)||LA61_0==89||LA61_0==97||LA61_0==99||(LA61_0>=103 && LA61_0<=105)||(LA61_0>=108 && LA61_0<=117)||LA61_0==119) ) {s = 5;}
 
-                        else if ( (LA61_0==59) ) {s = 35;}
+                        else if ( (LA61_0==58) ) {s = 35;}
 
                          
                         input.seek(index61_0);
@@ -27965,7 +27835,7 @@
         }
     }
     static final String[] dfa_51s = {
-            "\5\2\5\uffff\2\2\42\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\42\2\1\uffff\30\2",
+            "\5\2\5\uffff\2\2\41\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\42\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -28060,7 +27930,7 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "4624:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
+            return "4585:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28091,11 +27961,11 @@
     }
     static final String dfa_52s = "\40\uffff";
     static final String dfa_53s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_54s = "\1\170\26\uffff\1\0\10\uffff";
+    static final String dfa_54s = "\1\167\26\uffff\1\0\10\uffff";
     static final String dfa_55s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_56s = "\1\0\26\uffff\1\1\10\uffff}>";
     static final String[] dfa_57s = {
-            "\1\5\4\14\5\uffff\1\2\43\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\34\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
+            "\1\5\4\14\5\uffff\1\2\42\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\34\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
             "",
             "",
             "",
@@ -28150,7 +28020,7 @@
             this.transition = dfa_57;
         }
         public String getDescription() {
-            return "4669:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
+            return "4630:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28163,33 +28033,33 @@
                         int index65_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA65_0==111) ) {s = 1;}
+                        if ( (LA65_0==110) ) {s = 1;}
 
                         else if ( (LA65_0==14) ) {s = 2;}
 
-                        else if ( (LA65_0==100) ) {s = 3;}
+                        else if ( (LA65_0==99) ) {s = 3;}
 
-                        else if ( (LA65_0==120) && (synpred25_InternalPerspectiveDsl())) {s = 4;}
+                        else if ( (LA65_0==119) && (synpred25_InternalPerspectiveDsl())) {s = 4;}
 
-                        else if ( (LA65_0==RULE_ID||(LA65_0>=50 && LA65_0<=52)||LA65_0==69||(LA65_0>=109 && LA65_0<=110)) ) {s = 5;}
+                        else if ( (LA65_0==RULE_ID||(LA65_0>=49 && LA65_0<=51)||LA65_0==68||(LA65_0>=108 && LA65_0<=109)) ) {s = 5;}
 
-                        else if ( ((LA65_0>=RULE_STRING && LA65_0<=RULE_DECIMAL)||(LA65_0>=61 && LA65_0<=62)||(LA65_0>=112 && LA65_0<=115)) ) {s = 12;}
+                        else if ( ((LA65_0>=RULE_STRING && LA65_0<=RULE_DECIMAL)||(LA65_0>=60 && LA65_0<=61)||(LA65_0>=111 && LA65_0<=114)) ) {s = 12;}
 
-                        else if ( (LA65_0==98) ) {s = 22;}
+                        else if ( (LA65_0==97) ) {s = 22;}
 
-                        else if ( (LA65_0==104) ) {s = 23;}
+                        else if ( (LA65_0==103) ) {s = 23;}
 
-                        else if ( (LA65_0==105) ) {s = 24;}
+                        else if ( (LA65_0==104) ) {s = 24;}
 
-                        else if ( (LA65_0==106) ) {s = 25;}
+                        else if ( (LA65_0==105) ) {s = 25;}
 
-                        else if ( (LA65_0==116) ) {s = 26;}
+                        else if ( (LA65_0==115) ) {s = 26;}
 
-                        else if ( (LA65_0==117) ) {s = 27;}
+                        else if ( (LA65_0==116) ) {s = 27;}
 
-                        else if ( (LA65_0==118) ) {s = 28;}
+                        else if ( (LA65_0==117) ) {s = 28;}
 
-                        else if ( (LA65_0==57) ) {s = 29;}
+                        else if ( (LA65_0==56) ) {s = 29;}
 
                          
                         input.seek(index65_0);
@@ -28220,11 +28090,11 @@
     }
     static final String dfa_58s = "\46\uffff";
     static final String dfa_59s = "\1\4\2\0\43\uffff";
-    static final String dfa_60s = "\1\170\2\0\43\uffff";
+    static final String dfa_60s = "\1\167\2\0\43\uffff";
     static final String dfa_61s = "\3\uffff\2\1\1\2\40\uffff";
     static final String dfa_62s = "\1\0\1\1\1\2\43\uffff}>";
     static final String[] dfa_63s = {
-            "\1\1\4\5\5\uffff\1\5\43\uffff\3\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\3\uffff\17\5\1\uffff\1\5",
+            "\1\1\4\5\5\uffff\1\5\42\uffff\3\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\3\uffff\17\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -28285,7 +28155,7 @@
             this.transition = dfa_63;
         }
         public String getDescription() {
-            return "5161:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
+            return "5122:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28300,13 +28170,13 @@
                         s = -1;
                         if ( (LA74_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA74_0==57) ) {s = 2;}
+                        else if ( (LA74_0==56) ) {s = 2;}
 
-                        else if ( (LA74_0==82) && (synpred29_InternalPerspectiveDsl())) {s = 3;}
+                        else if ( (LA74_0==81) && (synpred29_InternalPerspectiveDsl())) {s = 3;}
 
-                        else if ( (LA74_0==97) && (synpred29_InternalPerspectiveDsl())) {s = 4;}
+                        else if ( (LA74_0==96) && (synpred29_InternalPerspectiveDsl())) {s = 4;}
 
-                        else if ( ((LA74_0>=RULE_STRING && LA74_0<=RULE_DECIMAL)||LA74_0==14||(LA74_0>=50 && LA74_0<=52)||(LA74_0>=61 && LA74_0<=63)||LA74_0==69||(LA74_0>=85 && LA74_0<=86)||LA74_0==90||LA74_0==98||LA74_0==100||(LA74_0>=104 && LA74_0<=118)||LA74_0==120) ) {s = 5;}
+                        else if ( ((LA74_0>=RULE_STRING && LA74_0<=RULE_DECIMAL)||LA74_0==14||(LA74_0>=49 && LA74_0<=51)||(LA74_0>=60 && LA74_0<=62)||LA74_0==68||(LA74_0>=84 && LA74_0<=85)||LA74_0==89||LA74_0==97||LA74_0==99||(LA74_0>=103 && LA74_0<=117)||LA74_0==119) ) {s = 5;}
 
                          
                         input.seek(index74_0);
@@ -28351,7 +28221,7 @@
         }
     }
     static final String[] dfa_64s = {
-            "\5\2\5\uffff\1\2\43\uffff\3\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\42\uffff\3\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -28403,7 +28273,7 @@
             this.transition = dfa_64;
         }
         public String getDescription() {
-            return "5627:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
+            return "5588:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28434,11 +28304,11 @@
     }
     static final String dfa_65s = "\42\uffff";
     static final String dfa_66s = "\1\4\2\0\37\uffff";
-    static final String dfa_67s = "\1\170\2\0\37\uffff";
+    static final String dfa_67s = "\1\167\2\0\37\uffff";
     static final String dfa_68s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_69s = "\1\0\1\1\1\2\37\uffff}>";
     static final String[] dfa_70s = {
-            "\1\1\4\4\5\uffff\1\4\43\uffff\3\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\2\4\3\uffff\1\4\7\uffff\1\4\1\uffff\1\4\3\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
+            "\1\1\4\4\5\uffff\1\4\42\uffff\3\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\2\4\3\uffff\1\4\7\uffff\1\4\1\uffff\1\4\3\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -28495,7 +28365,7 @@
             this.transition = dfa_70;
         }
         public String getDescription() {
-            return "5696:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
+            return "5657:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28510,11 +28380,11 @@
                         s = -1;
                         if ( (LA80_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA80_0==57) ) {s = 2;}
+                        else if ( (LA80_0==56) ) {s = 2;}
 
-                        else if ( (LA80_0==82) && (synpred33_InternalPerspectiveDsl())) {s = 3;}
+                        else if ( (LA80_0==81) && (synpred33_InternalPerspectiveDsl())) {s = 3;}
 
-                        else if ( ((LA80_0>=RULE_STRING && LA80_0<=RULE_DECIMAL)||LA80_0==14||(LA80_0>=50 && LA80_0<=52)||(LA80_0>=61 && LA80_0<=62)||LA80_0==69||(LA80_0>=85 && LA80_0<=86)||LA80_0==90||LA80_0==98||LA80_0==100||(LA80_0>=104 && LA80_0<=106)||(LA80_0>=109 && LA80_0<=118)||LA80_0==120) ) {s = 4;}
+                        else if ( ((LA80_0>=RULE_STRING && LA80_0<=RULE_DECIMAL)||LA80_0==14||(LA80_0>=49 && LA80_0<=51)||(LA80_0>=60 && LA80_0<=61)||LA80_0==68||(LA80_0>=84 && LA80_0<=85)||LA80_0==89||LA80_0==97||LA80_0==99||(LA80_0>=103 && LA80_0<=105)||(LA80_0>=108 && LA80_0<=117)||LA80_0==119) ) {s = 4;}
 
                          
                         input.seek(index80_0);
@@ -28573,7 +28443,7 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "6825:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
+            return "6786:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28617,7 +28487,7 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "6844:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
+            return "6805:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28632,15 +28502,15 @@
                         s = -1;
                         if ( (LA102_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA102_0==57) ) {s = 2;}
+                        else if ( (LA102_0==56) ) {s = 2;}
 
-                        else if ( (LA102_0==82) && (synpred37_InternalPerspectiveDsl())) {s = 3;}
+                        else if ( (LA102_0==81) && (synpred37_InternalPerspectiveDsl())) {s = 3;}
 
-                        else if ( (LA102_0==97) && (synpred37_InternalPerspectiveDsl())) {s = 4;}
+                        else if ( (LA102_0==96) && (synpred37_InternalPerspectiveDsl())) {s = 4;}
 
-                        else if ( ((LA102_0>=RULE_STRING && LA102_0<=RULE_DECIMAL)||LA102_0==14||(LA102_0>=50 && LA102_0<=52)||(LA102_0>=61 && LA102_0<=62)||LA102_0==69||(LA102_0>=85 && LA102_0<=86)||LA102_0==90||LA102_0==98||LA102_0==100||(LA102_0>=104 && LA102_0<=106)||(LA102_0>=109 && LA102_0<=118)||LA102_0==120) ) {s = 5;}
+                        else if ( ((LA102_0>=RULE_STRING && LA102_0<=RULE_DECIMAL)||LA102_0==14||(LA102_0>=49 && LA102_0<=51)||(LA102_0>=60 && LA102_0<=61)||LA102_0==68||(LA102_0>=84 && LA102_0<=85)||LA102_0==89||LA102_0==97||LA102_0==99||(LA102_0>=103 && LA102_0<=105)||(LA102_0>=108 && LA102_0<=117)||LA102_0==119) ) {s = 5;}
 
-                        else if ( (LA102_0==59) ) {s = 35;}
+                        else if ( (LA102_0==58) ) {s = 35;}
 
                          
                         input.seek(index102_0);
@@ -28699,7 +28569,7 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "6942:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
+            return "6903:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28729,7 +28599,7 @@
         }
     }
     static final String[] dfa_71s = {
-            "\5\2\5\uffff\2\2\42\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\30\2",
+            "\5\2\5\uffff\2\2\41\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -28824,7 +28694,7 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "7101:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
+            return "7062:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28868,7 +28738,7 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "7158:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+            return "7119:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28912,7 +28782,7 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "7177:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
+            return "7138:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -28927,15 +28797,15 @@
                         s = -1;
                         if ( (LA110_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA110_0==57) ) {s = 2;}
+                        else if ( (LA110_0==56) ) {s = 2;}
 
-                        else if ( (LA110_0==82) && (synpred41_InternalPerspectiveDsl())) {s = 3;}
+                        else if ( (LA110_0==81) && (synpred41_InternalPerspectiveDsl())) {s = 3;}
 
-                        else if ( (LA110_0==97) && (synpred41_InternalPerspectiveDsl())) {s = 4;}
+                        else if ( (LA110_0==96) && (synpred41_InternalPerspectiveDsl())) {s = 4;}
 
-                        else if ( ((LA110_0>=RULE_STRING && LA110_0<=RULE_DECIMAL)||LA110_0==14||(LA110_0>=50 && LA110_0<=52)||(LA110_0>=61 && LA110_0<=62)||LA110_0==69||(LA110_0>=85 && LA110_0<=86)||LA110_0==90||LA110_0==98||LA110_0==100||(LA110_0>=104 && LA110_0<=106)||(LA110_0>=109 && LA110_0<=118)||LA110_0==120) ) {s = 5;}
+                        else if ( ((LA110_0>=RULE_STRING && LA110_0<=RULE_DECIMAL)||LA110_0==14||(LA110_0>=49 && LA110_0<=51)||(LA110_0>=60 && LA110_0<=61)||LA110_0==68||(LA110_0>=84 && LA110_0<=85)||LA110_0==89||LA110_0==97||LA110_0==99||(LA110_0>=103 && LA110_0<=105)||(LA110_0>=108 && LA110_0<=117)||LA110_0==119) ) {s = 5;}
 
-                        else if ( (LA110_0==59) ) {s = 35;}
+                        else if ( (LA110_0==58) ) {s = 35;}
 
                          
                         input.seek(index110_0);
@@ -28994,7 +28864,7 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "7275:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
+            return "7236:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -29025,11 +28895,11 @@
     }
     static final String dfa_72s = "\1\41\115\uffff";
     static final String dfa_73s = "\1\4\40\0\55\uffff";
-    static final String dfa_74s = "\1\171\40\0\55\uffff";
+    static final String dfa_74s = "\1\170\40\0\55\uffff";
     static final String dfa_75s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_76s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_77s = {
-            "\1\1\1\27\1\24\1\23\1\25\5\uffff\1\12\1\41\42\uffff\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\1\7\3\41\1\6\6\41\1\uffff\1\31\1\41\1\13\3\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
+            "\1\1\1\27\1\24\1\23\1\25\5\uffff\1\12\1\41\41\uffff\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\1\7\3\41\1\6\6\41\1\uffff\1\31\1\41\1\13\3\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -29129,7 +28999,7 @@
             this.transition = dfa_77;
         }
         public String getDescription() {
-            return "7618:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
+            return "7579:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -29626,11 +29496,11 @@
     static final String dfa_78s = "\117\uffff";
     static final String dfa_79s = "\1\2\116\uffff";
     static final String dfa_80s = "\1\4\1\0\115\uffff";
-    static final String dfa_81s = "\1\173\1\0\115\uffff";
+    static final String dfa_81s = "\1\172\1\0\115\uffff";
     static final String dfa_82s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_83s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_84s = {
-            "\5\2\5\uffff\2\2\42\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\30\2\1\uffff\1\2",
+            "\5\2\5\uffff\2\2\41\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\30\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -29733,7 +29603,7 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "8276:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
+            return "8237:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -29777,7 +29647,7 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "8370:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
+            return "8331:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -29821,99 +29691,99 @@
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000704000L});
     public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000018808000L});
     public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000007204000L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000000L,0x3000000000000000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000000L,0x1800000000000000L});
     public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000006204000L});
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000064300002L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x000233FF80000000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x000119FF80000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000040000000000L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000008000000000L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0001800000000002L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000C00000000002L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0048000000000010L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0010000000000010L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0020000000000010L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0080000000000002L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0200000000000002L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x6B1C0000000041F0L,0x017FE71404600020L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0C00000000000000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x1000000000000000L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x631C0000000041F0L,0x017FE71404600020L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x4000000000000000L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0xE31C0000000041F0L,0x017FE71404600020L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x8400000000000000L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0400000000000002L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000002L,0x000000000000007FL});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x00000000000000C0L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x0000000000003C00L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x00000000000040E0L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0200000000000010L,0x0000000000040000L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x00000000001F8060L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040020L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x0000000000600000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0020000000000002L,0x0000000003800000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000002L,0x0000000030000000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000002L,0x00000001C0000000L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x001C000000000010L,0x0000200000000000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x001C000000000010L,0x0000600000000020L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0200000000000010L,0x0400000000040000L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x4200000000000002L,0x00000001C0000000L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x6B1C0000000041F0L,0x017FE71604640020L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x4000000000000002L,0x00000001C0000000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0024000000000010L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0008000000000010L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0010000000000010L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0040000000000002L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0100000000000002L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x358E0000000041F0L,0x00BFF38A02300010L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0600000000000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x318E0000000041F0L,0x00BFF38A02300010L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x2000000000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x718E0000000041F0L,0x00BFF38A02300010L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x4200000000000000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0200000000000002L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x8000000000000002L,0x000000000000003FL});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000060L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001E00L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002070L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0100000000000010L,0x0000000000020000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x00000000000FC030L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020010L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x0000000000300000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0010000000000002L,0x0000000001C00000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000002L,0x0000000018000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000002L,0x00000000E0000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x000E000000000010L,0x0000100000000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x000E000000000010L,0x0000300000000010L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0100000000000010L,0x0200000000020000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x2100000000000002L,0x00000000E0000000L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x358E0000000041F0L,0x00BFF38B02320010L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x2000000000000002L,0x00000000E0000000L});
     public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x631C00000000C1F0L,0x017FE71404600020L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0400000000008000L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0xE31C0000000041F0L,0x017FFF1604640020L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0400000000000000L,0x0000000200000000L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0xE31C0000000041F0L,0x017FFF1404600020L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x8000000000000000L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x639C0000000041F2L,0x017FFF1404600020L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x631C0000000041F2L,0x017FFF1404600020L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0200000000000000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x631C0000000041F0L,0x017FE71404640020L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0600000000008010L,0x000000E000040000L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x318E00000000C1F0L,0x00BFF38A02300010L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0200000000008000L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x718E0000000041F0L,0x00BFFF8B02320010L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0200000000000000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x718E0000000041F0L,0x00BFFF8A02300010L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x4000000000000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x31CE0000000041F2L,0x00BFFF8A02300010L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x318E0000000041F2L,0x00BFFF8A02300010L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0100000000000000L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x318E0000000041F0L,0x00BFF38A02320010L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0300000000008010L,0x0000007000020000L});
     public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0400000000000000L,0x000000A000000000L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0400000000000000L,0x0000002000000000L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x639C0000000041F0L,0x017FFF1404600020L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0480000000000000L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x631C0000000041F0L,0x017FFF1404600020L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x639C0000000041F0L,0x017FE71404600020L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0080000000000000L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x631C00000000C1F0L,0x017FFF1404600020L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x639C00000000C1F0L,0x017FFF1404600020L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x1000000000000002L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x4200000000000002L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x4200000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x4800000000000000L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x631C0000000041F2L,0x017FE71404600020L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x0280000000000000L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000002L,0x0280000000000000L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0200000000000000L,0x0000005000000000L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0200000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x31CE0000000041F0L,0x00BFFF8A02300010L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0240000000000000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x318E0000000041F0L,0x00BFFF8A02300010L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x31CE0000000041F0L,0x00BFF38A02300010L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x318E00000000C1F0L,0x00BFFF8A02300010L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x31CE00000000C1F0L,0x00BFFF8A02300010L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0800000000000002L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x2100000000000002L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x2100000000000002L,0x0000000000000010L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x2400000000000000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x318E0000000041F2L,0x00BFF38A02300010L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x0140000000000000L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000002L,0x0140000000000000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
     public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000140L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0A00000000000010L,0x0000000000040000L});
-    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000020L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000002L,0x0000600000000000L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000002L,0x0800000000000000L});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0020000000000000L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0500000000000010L,0x0000000000020000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000010L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000002L,0x0000300000000000L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0010000000000000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0002000000000002L});
     public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000012L});
 
 }
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/serializer/PerspectiveDslSemanticSequencer.java b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/serializer/PerspectiveDslSemanticSequencer.java
index 8b807c4..de2bf93 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/serializer/PerspectiveDslSemanticSequencer.java
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/serializer/PerspectiveDslSemanticSequencer.java
@@ -24,7 +24,6 @@
 import org.eclipse.osbp.xtext.oxtype.oxtype.OXtypePackage;
 import org.eclipse.osbp.xtext.oxtype.serializer.OXtypeSemanticSequencer;
 import org.eclipse.osbp.xtext.perspective.Perspective;
-import org.eclipse.osbp.xtext.perspective.PerspectiveBPMN;
 import org.eclipse.osbp.xtext.perspective.PerspectiveBean;
 import org.eclipse.osbp.xtext.perspective.PerspectiveChart;
 import org.eclipse.osbp.xtext.perspective.PerspectiveDataInterchange;
@@ -122,9 +121,6 @@
 			case PerspectiveDslPackage.PERSPECTIVE:
 				sequence_Perspective(context, (Perspective) semanticObject); 
 				return; 
-			case PerspectiveDslPackage.PERSPECTIVE_BPMN:
-				sequence_PerspectiveBPMN(context, (PerspectiveBPMN) semanticObject); 
-				return; 
 			case PerspectiveDslPackage.PERSPECTIVE_BEAN:
 				sequence_PerspectiveBean(context, (PerspectiveBean) semanticObject); 
 				return; 
@@ -483,19 +479,6 @@
 	
 	/**
 	 * Contexts:
-	 *     PerspectiveView returns PerspectiveBPMN
-	 *     PerspectiveBPMN returns PerspectiveBPMN
-	 *
-	 * Constraint:
-	 *     {PerspectiveBPMN}
-	 */
-	protected void sequence_PerspectiveBPMN(ISerializationContext context, PerspectiveBPMN semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
-	}
-	
-	
-	/**
-	 * Contexts:
 	 *     PerspectiveView returns PerspectiveBean
 	 *     PerspectiveBean returns PerspectiveBean
 	 *
diff --git a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/services/PerspectiveDslGrammarAccess.java b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/services/PerspectiveDslGrammarAccess.java
index 9bf3529..e729005 100644
--- a/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/services/PerspectiveDslGrammarAccess.java
+++ b/org.eclipse.osbp.xtext.perspective/src-gen/org/eclipse/osbp/xtext/perspective/services/PerspectiveDslGrammarAccess.java
@@ -647,22 +647,21 @@
 		private final RuleCall cPerspectiveOrganizationParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
 		private final RuleCall cPerspectiveTopologyParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
 		private final RuleCall cPerspectiveDialogParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
-		private final RuleCall cPerspectiveBPMNParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
-		private final RuleCall cPerspectiveGridParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
-		private final RuleCall cPerspectiveWelcomeParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
-		private final RuleCall cPerspectiveSearchParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11);
-		private final RuleCall cPerspectiveDataInterchangeParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12);
-		private final RuleCall cPerspectiveKanbanParserRuleCall_13 = (RuleCall)cAlternatives.eContents().get(13);
+		private final RuleCall cPerspectiveGridParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+		private final RuleCall cPerspectiveWelcomeParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
+		private final RuleCall cPerspectiveSearchParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
+		private final RuleCall cPerspectiveDataInterchangeParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11);
+		private final RuleCall cPerspectiveKanbanParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12);
 		
 		//PerspectiveView:
 		//	PerspectiveSelection | PerspectiveTable | PerspectiveChart | PerspectiveBean | PerspectiveReport |
-		//	PerspectiveOrganization | PerspectiveTopology | PerspectiveDialog | PerspectiveBPMN | PerspectiveGrid |
-		//	PerspectiveWelcome | PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban;
+		//	PerspectiveOrganization | PerspectiveTopology | PerspectiveDialog | PerspectiveGrid | PerspectiveWelcome |
+		//	PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//PerspectiveSelection | PerspectiveTable | PerspectiveChart | PerspectiveBean | PerspectiveReport |
-		//PerspectiveOrganization | PerspectiveTopology | PerspectiveDialog | PerspectiveBPMN | PerspectiveGrid |
-		//PerspectiveWelcome | PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban
+		//PerspectiveOrganization | PerspectiveTopology | PerspectiveDialog | PerspectiveGrid | PerspectiveWelcome |
+		//PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//PerspectiveSelection
@@ -689,23 +688,20 @@
 		//PerspectiveDialog
 		public RuleCall getPerspectiveDialogParserRuleCall_7() { return cPerspectiveDialogParserRuleCall_7; }
 		
-		//PerspectiveBPMN
-		public RuleCall getPerspectiveBPMNParserRuleCall_8() { return cPerspectiveBPMNParserRuleCall_8; }
-		
 		//PerspectiveGrid
-		public RuleCall getPerspectiveGridParserRuleCall_9() { return cPerspectiveGridParserRuleCall_9; }
+		public RuleCall getPerspectiveGridParserRuleCall_8() { return cPerspectiveGridParserRuleCall_8; }
 		
 		//PerspectiveWelcome
-		public RuleCall getPerspectiveWelcomeParserRuleCall_10() { return cPerspectiveWelcomeParserRuleCall_10; }
+		public RuleCall getPerspectiveWelcomeParserRuleCall_9() { return cPerspectiveWelcomeParserRuleCall_9; }
 		
 		//PerspectiveSearch
-		public RuleCall getPerspectiveSearchParserRuleCall_11() { return cPerspectiveSearchParserRuleCall_11; }
+		public RuleCall getPerspectiveSearchParserRuleCall_10() { return cPerspectiveSearchParserRuleCall_10; }
 		
 		//PerspectiveDataInterchange
-		public RuleCall getPerspectiveDataInterchangeParserRuleCall_12() { return cPerspectiveDataInterchangeParserRuleCall_12; }
+		public RuleCall getPerspectiveDataInterchangeParserRuleCall_11() { return cPerspectiveDataInterchangeParserRuleCall_11; }
 		
 		//PerspectiveKanban
-		public RuleCall getPerspectiveKanbanParserRuleCall_13() { return cPerspectiveKanbanParserRuleCall_13; }
+		public RuleCall getPerspectiveKanbanParserRuleCall_12() { return cPerspectiveKanbanParserRuleCall_12; }
 	}
 	public class PerspectiveSelectionElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.perspective.PerspectiveDsl.PerspectiveSelection");
@@ -986,25 +982,6 @@
 		//ID
 		public RuleCall getRefDialogIDTerminalRuleCall_2_0_1() { return cRefDialogIDTerminalRuleCall_2_0_1; }
 	}
-	public class PerspectiveBPMNElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.perspective.PerspectiveDsl.PerspectiveBPMN");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Action cPerspectiveBPMNAction_0 = (Action)cGroup.eContents().get(0);
-		private final Keyword cBpmnKeyword_1 = (Keyword)cGroup.eContents().get(1);
-		
-		//PerspectiveBPMN:
-		//	{PerspectiveBPMN} 'bpmn';
-		@Override public ParserRule getRule() { return rule; }
-		
-		//{PerspectiveBPMN} 'bpmn'
-		public Group getGroup() { return cGroup; }
-		
-		//{PerspectiveBPMN}
-		public Action getPerspectiveBPMNAction_0() { return cPerspectiveBPMNAction_0; }
-		
-		//'bpmn'
-		public Keyword getBpmnKeyword_1() { return cBpmnKeyword_1; }
-	}
 	public class PerspectiveKanbanElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.perspective.PerspectiveDsl.PerspectiveKanban");
 		private final Group cGroup = (Group)rule.eContents().get(1);
@@ -1262,7 +1239,6 @@
 	private final PerspectiveOrganizationElements pPerspectiveOrganization;
 	private final PerspectiveTopologyElements pPerspectiveTopology;
 	private final PerspectiveDialogElements pPerspectiveDialog;
-	private final PerspectiveBPMNElements pPerspectiveBPMN;
 	private final PerspectiveKanbanElements pPerspectiveKanban;
 	private final PerspectiveWelcomeElements pPerspectiveWelcome;
 	private final PerspectiveSearchElements pPerspectiveSearch;
@@ -1309,7 +1285,6 @@
 		this.pPerspectiveOrganization = new PerspectiveOrganizationElements();
 		this.pPerspectiveTopology = new PerspectiveTopologyElements();
 		this.pPerspectiveDialog = new PerspectiveDialogElements();
-		this.pPerspectiveBPMN = new PerspectiveBPMNElements();
 		this.pPerspectiveKanban = new PerspectiveKanbanElements();
 		this.pPerspectiveWelcome = new PerspectiveWelcomeElements();
 		this.pPerspectiveSearch = new PerspectiveSearchElements();
@@ -1441,8 +1416,8 @@
 	
 	//PerspectiveView:
 	//	PerspectiveSelection | PerspectiveTable | PerspectiveChart | PerspectiveBean | PerspectiveReport |
-	//	PerspectiveOrganization | PerspectiveTopology | PerspectiveDialog | PerspectiveBPMN | PerspectiveGrid |
-	//	PerspectiveWelcome | PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban;
+	//	PerspectiveOrganization | PerspectiveTopology | PerspectiveDialog | PerspectiveGrid | PerspectiveWelcome |
+	//	PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban;
 	public PerspectiveViewElements getPerspectiveViewAccess() {
 		return pPerspectiveView;
 	}
@@ -1541,16 +1516,6 @@
 		return getPerspectiveDialogAccess().getRule();
 	}
 	
-	//PerspectiveBPMN:
-	//	{PerspectiveBPMN} 'bpmn';
-	public PerspectiveBPMNElements getPerspectiveBPMNAccess() {
-		return pPerspectiveBPMN;
-	}
-	
-	public ParserRule getPerspectiveBPMNRule() {
-		return getPerspectiveBPMNAccess().getRule();
-	}
-	
 	//PerspectiveKanban:
 	//	{PerspectiveKanban} 'kanban' 'of' dtoRef=[dto::LDto] 'card' cardRef=[dialog::Dialog] 'dialog'
 	//	dialogRef=[dialog::Dialog];
diff --git a/org.eclipse.osbp.xtext.perspective/src/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtext b/org.eclipse.osbp.xtext.perspective/src/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtext
index 26ca441..97e41c4 100644
--- a/org.eclipse.osbp.xtext.perspective/src/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtext
+++ b/org.eclipse.osbp.xtext.perspective/src/org/eclipse/osbp/xtext/perspective/PerspectiveDsl.xtext
@@ -73,7 +73,7 @@
 
 PerspectiveView:
 	PerspectiveSelection | PerspectiveTable | PerspectiveChart | PerspectiveBean | PerspectiveReport | PerspectiveOrganization | PerspectiveTopology |
-	PerspectiveDialog | PerspectiveBPMN | PerspectiveGrid | PerspectiveWelcome | PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban;
+	PerspectiveDialog | PerspectiveGrid | PerspectiveWelcome | PerspectiveSearch | PerspectiveDataInterchange | PerspectiveKanban;
 
 PerspectiveSelection:
 	{PerspectiveSelection} 'select' ref=[table::Table];
@@ -102,9 +102,6 @@
 PerspectiveDialog:
 	{PerspectiveDialog} 'dialog' ref=[dialog::Dialog];
 
-PerspectiveBPMN:
-	{PerspectiveBPMN} 'bpmn';
-
 PerspectiveKanban:
 	{PerspectiveKanban} 'kanban' 'of' dtoRef=[dto::LDto] 'card' cardRef=[dialog::Dialog] 'dialog' dialogRef=[dialog::Dialog];
 
diff --git a/org.eclipse.osbp.xtext.perspective/xtend-gen/org/eclipse/osbp/xtext/perspective/scoping/PerspectiveScopeProvider.java b/org.eclipse.osbp.xtext.perspective/xtend-gen/org/eclipse/osbp/xtext/perspective/scoping/PerspectiveScopeProvider.java
deleted file mode 100644
index 177da09..0000000
--- a/org.eclipse.osbp.xtext.perspective/xtend-gen/org/eclipse/osbp/xtext/perspective/scoping/PerspectiveScopeProvider.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/**
- * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- * 
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- * 
- *  This copyright notice shows up in the generated Java code
- */
-package org.eclipse.osbp.xtext.perspective.scoping;
-
-import com.google.common.base.Objects;
-import java.util.ArrayList;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.osbp.dsl.semantic.dto.LDto;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3;
-import org.eclipse.osbp.ecview.semantic.uimodel.UiBeanSlot;
-import org.eclipse.osbp.ecview.semantic.uimodel.UiIDEView;
-import org.eclipse.osbp.ecview.semantic.uimodel.UiView;
-import org.eclipse.osbp.xtext.blip.Blip;
-import org.eclipse.osbp.xtext.blip.BlipItem;
-import org.eclipse.osbp.xtext.blip.BlipUserTask;
-import org.eclipse.osbp.xtext.dialogdsl.Dialog;
-import org.eclipse.osbp.xtext.perspective.Perspective;
-import org.eclipse.osbp.xtext.perspective.PerspectiveDialog;
-import org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage;
-import org.eclipse.osbp.xtext.perspective.PerspectiveElement;
-import org.eclipse.osbp.xtext.perspective.PerspectiveGrid;
-import org.eclipse.osbp.xtext.perspective.PerspectivePartStack;
-import org.eclipse.osbp.xtext.perspective.PerspectiveSashContainer;
-import org.eclipse.osbp.xtext.perspective.PerspectiveSelection;
-import org.eclipse.osbp.xtext.perspective.PerspectiveTable;
-import org.eclipse.osbp.xtext.table.Table;
-import org.eclipse.osbp.xtext.table.TableDtoDatasource;
-import org.eclipse.osbp.xtext.table.TableGrid;
-import org.eclipse.osbp.xtext.table.TableOption;
-import org.eclipse.osbp.xtext.table.TableSelection;
-import org.eclipse.osbp.xtext.table.TableTable;
-import org.eclipse.xtext.common.types.JvmType;
-import org.eclipse.xtext.common.types.JvmTypeReference;
-import org.eclipse.xtext.resource.EObjectDescription;
-import org.eclipse.xtext.resource.IEObjectDescription;
-import org.eclipse.xtext.scoping.IScope;
-import org.eclipse.xtext.scoping.impl.MapBasedScope;
-import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider;
-import org.eclipse.xtext.xbase.lib.CollectionLiterals;
-
-@SuppressWarnings("all")
-public class PerspectiveScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
-  @Override
-  public IScope getScope(final EObject context, final EReference reference) {
-    boolean _equals = Objects.equal(reference, PerspectiveDslPackage.Literals.PERSPECTIVE_SASH_CONTAINER__SELECTED_ELEMENT);
-    if (_equals) {
-      return this.getScope_CCPerspectiveSashContainer_selected_element(context);
-    } else {
-      boolean _equals_1 = Objects.equal(reference, PerspectiveDslPackage.Literals.PERSPECTIVE_PART_STACK__SELECTED_ELEMENT);
-      if (_equals_1) {
-        return this.getScope_CCPerspectivePartStack_selected_element(context);
-      } else {
-        boolean _equals_2 = Objects.equal(reference, PerspectiveDslPackage.Literals.PERSPECTIVE__USER_TASK);
-        if (_equals_2) {
-          return this.getScope_CCPerspectivePartStack_USER_TASK(((Perspective) context));
-        } else {
-          boolean _equals_3 = Objects.equal(reference, PerspectiveDslPackage.Literals.PERSPECTIVE_DIALOG__REF);
-          if (_equals_3) {
-            return this.getScope_CCPerspectivePartStack_PERSPECTIVE_DIALOG__REF(((PerspectiveDialog) context), reference);
-          } else {
-            boolean _equals_4 = Objects.equal(reference, PerspectiveDslPackage.Literals.PERSPECTIVE_SELECTION__REF);
-            if (_equals_4) {
-              return this.getScope_CCPerspectivePartStack_PERSPECTIVE_SELECTION__REF(((PerspectiveSelection) context), reference);
-            } else {
-              boolean _equals_5 = Objects.equal(reference, PerspectiveDslPackage.Literals.PERSPECTIVE_TABLE__REF);
-              if (_equals_5) {
-                return this.getScope_CCPerspectivePartStack_PERSPECTIVE_TABLE__REF(((PerspectiveTable) context), reference);
-              } else {
-                boolean _equals_6 = Objects.equal(reference, PerspectiveDslPackage.Literals.PERSPECTIVE_GRID__REF);
-                if (_equals_6) {
-                  return this.getScope_CCPerspectivePartStack_PERSPECTIVE_GRID__REF(((PerspectiveGrid) context), reference);
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-    return super.getScope(context, reference);
-  }
-  
-  public IScope getScope_CCPerspectivePartStack_PERSPECTIVE_DIALOG__REF(final PerspectiveDialog dialogView, final EReference reference) {
-    final IScope superScope = super.getScope(dialogView, reference);
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
-    EObject perspective = dialogView.eContainer();
-    while (((!Objects.equal(perspective, null)) && (!(perspective instanceof Perspective)))) {
-      EObject _eContainer = perspective.eContainer();
-      perspective = _eContainer;
-    }
-    BlipUserTask _userTask = null;
-    if (((Perspective) perspective)!=null) {
-      _userTask=((Perspective) perspective).getUserTask();
-    }
-    boolean _equals = Objects.equal(_userTask, null);
-    if (_equals) {
-      return superScope;
-    } else {
-      BlipUserTask _userTask_1 = null;
-      if (((Perspective) perspective)!=null) {
-        _userTask_1=((Perspective) perspective).getUserTask();
-      }
-      Resource _eResource = dialogView.eResource();
-      ResourceSet _resourceSet = _eResource.getResourceSet();
-      EObject _resolve = EcoreUtil3.resolve(_userTask_1, _resourceSet);
-      final BlipUserTask humanTask = ((BlipUserTask) _resolve);
-      final LDto operativeDto = humanTask.getOperativeLDto();
-      String _name = null;
-      if (operativeDto!=null) {
-        _name=operativeDto.getName();
-      }
-      boolean _equals_1 = Objects.equal(_name, null);
-      if (_equals_1) {
-        return superScope;
-      } else {
-        Iterable<IEObjectDescription> _allElements = superScope.getAllElements();
-        for (final IEObjectDescription element : _allElements) {
-          EObject _eObjectOrProxy = element.getEObjectOrProxy();
-          if ((_eObjectOrProxy instanceof Dialog)) {
-            EObject _eObjectOrProxy_1 = element.getEObjectOrProxy();
-            Dialog dialog = ((Dialog) _eObjectOrProxy_1);
-            Resource _eResource_1 = dialogView.eResource();
-            ResourceSet _resourceSet_1 = _eResource_1.getResourceSet();
-            EObject _resolve_1 = EcoreUtil3.resolve(dialog, _resourceSet_1);
-            dialog = ((Dialog) _resolve_1);
-            UiView _uiView = dialog.getUiView();
-            boolean _notEquals = (!Objects.equal(_uiView, null));
-            if (_notEquals) {
-              UiView _uiView_1 = dialog.getUiView();
-              Resource _eResource_2 = dialogView.eResource();
-              ResourceSet _resourceSet_2 = _eResource_2.getResourceSet();
-              final EObject uiViewObj = EcoreUtil3.resolve(((EObject) _uiView_1), _resourceSet_2);
-              if ((uiViewObj instanceof UiIDEView)) {
-                final UiIDEView uiView = ((UiIDEView) uiViewObj);
-                EList<UiBeanSlot> _beanSlots = uiView.getBeanSlots();
-                for (final UiBeanSlot beanSlot : _beanSlots) {
-                  String _name_1 = operativeDto.getName();
-                  JvmTypeReference _jvmType = null;
-                  if (beanSlot!=null) {
-                    _jvmType=beanSlot.getJvmType();
-                  }
-                  JvmType _type = null;
-                  if (_jvmType!=null) {
-                    _type=_jvmType.getType();
-                  }
-                  String _simpleName = null;
-                  if (_type!=null) {
-                    _simpleName=_type.getSimpleName();
-                  }
-                  boolean _equals_2 = _name_1.equals(_simpleName);
-                  if (_equals_2) {
-                    result.add(element);
-                  }
-                }
-              }
-            } else {
-              LDto _dto = dialog.getDto();
-              boolean _notEquals_1 = (!Objects.equal(_dto, null));
-              if (_notEquals_1) {
-                String _name_2 = operativeDto.getName();
-                LDto _dto_1 = dialog.getDto();
-                String _name_3 = _dto_1.getName();
-                boolean _equals_3 = _name_2.equals(_name_3);
-                if (_equals_3) {
-                  result.add(element);
-                }
-              }
-            }
-          }
-        }
-      }
-      return MapBasedScope.createScope(IScope.NULLSCOPE, result);
-    }
-  }
-  
-  public IScope getScope_CCPerspectivePartStack_PERSPECTIVE_TABLE__REF(final PerspectiveTable tableView, final EReference reference) {
-    IScope superScope = super.getScope(tableView, reference);
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
-    Iterable<IEObjectDescription> _allElements = superScope.getAllElements();
-    for (final IEObjectDescription element : _allElements) {
-      EObject _eObjectOrProxy = element.getEObjectOrProxy();
-      if ((_eObjectOrProxy instanceof Table)) {
-        EObject _eObjectOrProxy_1 = element.getEObjectOrProxy();
-        Table table = ((Table) _eObjectOrProxy_1);
-        Resource _eResource = tableView.eResource();
-        ResourceSet _resourceSet = _eResource.getResourceSet();
-        EObject _resolve = EcoreUtil3.resolve(table, _resourceSet);
-        table = ((Table) _resolve);
-        TableOption _tabletype = table.getTabletype();
-        if ((_tabletype instanceof TableTable)) {
-          result.add(element);
-        } else {
-          TableOption _tabletype_1 = table.getTabletype();
-          if ((_tabletype_1 instanceof TableGrid)) {
-            result.add(element);
-          }
-        }
-      }
-    }
-    IScope _createScope = MapBasedScope.createScope(IScope.NULLSCOPE, result);
-    superScope = _createScope;
-    ArrayList<IEObjectDescription> _newArrayList = CollectionLiterals.<IEObjectDescription>newArrayList();
-    result = _newArrayList;
-    EObject perspective = tableView.eContainer();
-    while (((!Objects.equal(perspective, null)) && (!(perspective instanceof Perspective)))) {
-      EObject _eContainer = perspective.eContainer();
-      perspective = _eContainer;
-    }
-    BlipUserTask _userTask = null;
-    if (((Perspective) perspective)!=null) {
-      _userTask=((Perspective) perspective).getUserTask();
-    }
-    boolean _equals = Objects.equal(_userTask, null);
-    if (_equals) {
-      return superScope;
-    } else {
-      Blip _process = null;
-      if (((Perspective) perspective)!=null) {
-        _process=((Perspective) perspective).getProcess();
-      }
-      Resource _eResource_1 = tableView.eResource();
-      ResourceSet _resourceSet_1 = _eResource_1.getResourceSet();
-      EcoreUtil3.resolve(_process, _resourceSet_1);
-      BlipUserTask _userTask_1 = null;
-      if (((Perspective) perspective)!=null) {
-        _userTask_1=((Perspective) perspective).getUserTask();
-      }
-      Resource _eResource_2 = tableView.eResource();
-      ResourceSet _resourceSet_2 = _eResource_2.getResourceSet();
-      EObject _resolve_1 = EcoreUtil3.resolve(_userTask_1, _resourceSet_2);
-      final BlipUserTask humanTask = ((BlipUserTask) _resolve_1);
-      final LDto operativeDto = humanTask.getOperativeLDto();
-      String _name = null;
-      if (operativeDto!=null) {
-        _name=operativeDto.getName();
-      }
-      boolean _equals_1 = Objects.equal(_name, null);
-      if (_equals_1) {
-        return superScope;
-      } else {
-        Iterable<IEObjectDescription> _allElements_1 = superScope.getAllElements();
-        for (final IEObjectDescription element_1 : _allElements_1) {
-          EObject _eObjectOrProxy_2 = element_1.getEObjectOrProxy();
-          if ((_eObjectOrProxy_2 instanceof Table)) {
-            EObject _eObjectOrProxy_3 = element_1.getEObjectOrProxy();
-            Table table_1 = ((Table) _eObjectOrProxy_3);
-            Resource _eResource_3 = tableView.eResource();
-            ResourceSet _resourceSet_3 = _eResource_3.getResourceSet();
-            EObject _resolve_2 = EcoreUtil3.resolve(table_1, _resourceSet_3);
-            table_1 = ((Table) _resolve_2);
-            TableOption _tabletype_2 = table_1.getTabletype();
-            if ((_tabletype_2 instanceof TableGrid)) {
-              TableOption _tabletype_3 = table_1.getTabletype();
-              final TableGrid tableGrid = ((TableGrid) _tabletype_3);
-              TableDtoDatasource _source = null;
-              if (tableGrid!=null) {
-                _source=tableGrid.getSource();
-              }
-              final TableDtoDatasource tableDtoDatasource = _source;
-              LDto _dtoSource = null;
-              if (tableDtoDatasource!=null) {
-                _dtoSource=tableDtoDatasource.getDtoSource();
-              }
-              final LDto rootTypeDto = _dtoSource;
-              String _name_1 = operativeDto.getName();
-              String _name_2 = rootTypeDto.getName();
-              boolean _equals_2 = _name_1.equals(_name_2);
-              if (_equals_2) {
-                result.add(element_1);
-              }
-            } else {
-              TableOption _tabletype_4 = table_1.getTabletype();
-              if ((_tabletype_4 instanceof TableTable)) {
-                result.add(element_1);
-              }
-            }
-          }
-        }
-      }
-      return MapBasedScope.createScope(IScope.NULLSCOPE, result);
-    }
-  }
-  
-  public IScope getScope_CCPerspectivePartStack_PERSPECTIVE_SELECTION__REF(final PerspectiveSelection selectionView, final EReference reference) {
-    IScope superScope = super.getScope(selectionView, reference);
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
-    Iterable<IEObjectDescription> _allElements = superScope.getAllElements();
-    for (final IEObjectDescription element : _allElements) {
-      EObject _eObjectOrProxy = element.getEObjectOrProxy();
-      if ((_eObjectOrProxy instanceof Table)) {
-        EObject _eObjectOrProxy_1 = element.getEObjectOrProxy();
-        Table table = ((Table) _eObjectOrProxy_1);
-        Resource _eResource = selectionView.eResource();
-        ResourceSet _resourceSet = _eResource.getResourceSet();
-        EObject _resolve = EcoreUtil3.resolve(table, _resourceSet);
-        table = ((Table) _resolve);
-        TableOption _tabletype = table.getTabletype();
-        if ((_tabletype instanceof TableSelection)) {
-          result.add(element);
-        }
-      }
-    }
-    IScope _createScope = MapBasedScope.createScope(IScope.NULLSCOPE, result);
-    superScope = _createScope;
-    ArrayList<IEObjectDescription> _newArrayList = CollectionLiterals.<IEObjectDescription>newArrayList();
-    result = _newArrayList;
-    EObject perspective = selectionView.eContainer();
-    while (((!Objects.equal(perspective, null)) && (!(perspective instanceof Perspective)))) {
-      EObject _eContainer = perspective.eContainer();
-      perspective = _eContainer;
-    }
-    BlipUserTask _userTask = null;
-    if (((Perspective) perspective)!=null) {
-      _userTask=((Perspective) perspective).getUserTask();
-    }
-    boolean _equals = Objects.equal(_userTask, null);
-    if (_equals) {
-      return superScope;
-    } else {
-      Blip _process = null;
-      if (((Perspective) perspective)!=null) {
-        _process=((Perspective) perspective).getProcess();
-      }
-      Resource _eResource_1 = selectionView.eResource();
-      ResourceSet _resourceSet_1 = _eResource_1.getResourceSet();
-      EcoreUtil3.resolve(_process, _resourceSet_1);
-      BlipUserTask _userTask_1 = null;
-      if (((Perspective) perspective)!=null) {
-        _userTask_1=((Perspective) perspective).getUserTask();
-      }
-      Resource _eResource_2 = selectionView.eResource();
-      ResourceSet _resourceSet_2 = _eResource_2.getResourceSet();
-      EObject _resolve_1 = EcoreUtil3.resolve(_userTask_1, _resourceSet_2);
-      final BlipUserTask humanTask = ((BlipUserTask) _resolve_1);
-      final LDto operativeDto = humanTask.getOperativeLDto();
-      String _name = null;
-      if (operativeDto!=null) {
-        _name=operativeDto.getName();
-      }
-      boolean _equals_1 = Objects.equal(_name, null);
-      if (_equals_1) {
-        return superScope;
-      } else {
-        Iterable<IEObjectDescription> _allElements_1 = superScope.getAllElements();
-        for (final IEObjectDescription element_1 : _allElements_1) {
-          EObject _eObjectOrProxy_2 = element_1.getEObjectOrProxy();
-          if ((_eObjectOrProxy_2 instanceof Table)) {
-            EObject _eObjectOrProxy_3 = element_1.getEObjectOrProxy();
-            Table table_1 = ((Table) _eObjectOrProxy_3);
-            Resource _eResource_3 = selectionView.eResource();
-            ResourceSet _resourceSet_3 = _eResource_3.getResourceSet();
-            EObject _resolve_2 = EcoreUtil3.resolve(table_1, _resourceSet_3);
-            table_1 = ((Table) _resolve_2);
-            TableOption _tabletype_1 = table_1.getTabletype();
-            if ((_tabletype_1 instanceof TableSelection)) {
-              result.add(element_1);
-            }
-          }
-        }
-      }
-      return MapBasedScope.createScope(IScope.NULLSCOPE, result);
-    }
-  }
-  
-  public IScope getScope_CCPerspectivePartStack_PERSPECTIVE_GRID__REF(final PerspectiveGrid gridView, final EReference reference) {
-    final IScope superScope = super.getScope(gridView, reference);
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
-    Iterable<IEObjectDescription> _allElements = superScope.getAllElements();
-    for (final IEObjectDescription element : _allElements) {
-      EObject _eObjectOrProxy = element.getEObjectOrProxy();
-      if ((_eObjectOrProxy instanceof Table)) {
-        EObject _eObjectOrProxy_1 = element.getEObjectOrProxy();
-        Table table = ((Table) _eObjectOrProxy_1);
-        Resource _eResource = gridView.eResource();
-        ResourceSet _resourceSet = _eResource.getResourceSet();
-        EObject _resolve = EcoreUtil3.resolve(table, _resourceSet);
-        table = ((Table) _resolve);
-        TableOption _tabletype = table.getTabletype();
-        if ((_tabletype instanceof TableGrid)) {
-          result.add(element);
-        }
-      }
-    }
-    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
-  }
-  
-  public IScope getScope_CCPerspectivePartStack_USER_TASK(final Perspective perspective) {
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
-    Blip blipProcess = perspective.getProcess();
-    boolean _notEquals = (!Objects.equal(blipProcess, null));
-    if (_notEquals) {
-      EList<BlipItem> _items = blipProcess.getItems();
-      for (final BlipItem item : _items) {
-        if ((item instanceof BlipUserTask)) {
-          String _name = ((BlipUserTask)item).getName();
-          IEObjectDescription _create = EObjectDescription.create(_name, item);
-          result.add(_create);
-        }
-      }
-    }
-    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
-  }
-  
-  public IScope getScope_CCPerspectivePartStack_selected_element(final EObject object) {
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
-    if ((object instanceof PerspectivePartStack)) {
-      PerspectivePartStack stack = ((PerspectivePartStack) object);
-      EList<PerspectiveElement> _elements = stack.getElements();
-      for (final PerspectiveElement part : _elements) {
-        String _elementId = part.getElementId();
-        IEObjectDescription _create = EObjectDescription.create(_elementId, part);
-        result.add(_create);
-      }
-    }
-    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
-  }
-  
-  public IScope getScope_CCPerspectiveSashContainer_selected_element(final EObject object) {
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
-    if ((object instanceof PerspectiveSashContainer)) {
-      PerspectiveSashContainer sash = ((PerspectiveSashContainer) object);
-      EList<PerspectiveElement> _elements = sash.getElements();
-      for (final PerspectiveElement part : _elements) {
-        String _elementId = part.getElementId();
-        IEObjectDescription _create = EObjectDescription.create(_elementId, part);
-        result.add(_create);
-      }
-    }
-    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
-  }
-}