catch up with branch daily

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 7cfb71e..1cbc1c5 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
@@ -111,6 +111,7 @@
 					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.getPerspectivePartStackAccess().getGroup_3_3(), "rule__PerspectivePartStack__Group_3_3__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");
@@ -358,8 +359,9 @@
 					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().getSynchronizeAssignment_3_1_1(), "rule__PerspectivePartStack__SynchronizeAssignment_3_1_1");
+					put(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_2_1(), "rule__PerspectivePartStack__ContainerDataAssignment_3_2_1");
+					put(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_3_1(), "rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1");
 					put(grammarAccess.getPerspectivePartStackAccess().getElementsAssignment_5(), "rule__PerspectivePartStack__ElementsAssignment_5");
 					put(grammarAccess.getPerspectivePartAccess().getElementIdAssignment_2(), "rule__PerspectivePart__ElementIdAssignment_2");
 					put(grammarAccess.getPerspectivePartAccess().getContainerDataAssignment_3_0_1(), "rule__PerspectivePart__ContainerDataAssignment_3_0_1");
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 a62043d..c83a3db 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
@@ -4841,9 +4841,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getPerspectiveAccess().getIconURIKeyword_5_0_0()); }
-	'iconURI'
-	{ after(grammarAccess.getPerspectiveAccess().getIconURIKeyword_5_0_0()); }
+	{ before(grammarAccess.getPerspectiveAccess().getIconKeyword_5_0_0()); }
+	'icon'
+	{ after(grammarAccess.getPerspectiveAccess().getIconKeyword_5_0_0()); }
 )
 ;
 finally {
@@ -5705,9 +5705,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_1_0()); }
-	'spaceVolume'
-	{ after(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_1_0()); }
+	{ before(grammarAccess.getPerspectivePartStackAccess().getSynchronizeKeyword_3_1_0()); }
+	'synchronize'
+	{ after(grammarAccess.getPerspectivePartStackAccess().getSynchronizeKeyword_3_1_0()); }
 )
 ;
 finally {
@@ -5731,9 +5731,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1()); }
-	(rule__PerspectivePartStack__ContainerDataAssignment_3_1_1)
-	{ after(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1()); }
+	{ before(grammarAccess.getPerspectivePartStackAccess().getSynchronizeAssignment_3_1_1()); }
+	(rule__PerspectivePartStack__SynchronizeAssignment_3_1_1)
+	{ after(grammarAccess.getPerspectivePartStackAccess().getSynchronizeAssignment_3_1_1()); }
 )
 ;
 finally {
@@ -5759,9 +5759,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_2_0()); }
-	'accessibility'
-	{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_2_0()); }
+	{ before(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_2_0()); }
+	'spaceVolume'
+	{ after(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_2_0()); }
 )
 ;
 finally {
@@ -5785,9 +5785,63 @@
 	}
 :
 (
-	{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1()); }
-	(rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1)
-	{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1()); }
+	{ before(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_2_1()); }
+	(rule__PerspectivePartStack__ContainerDataAssignment_3_2_1)
+	{ after(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PerspectivePartStack__Group_3_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PerspectivePartStack__Group_3_3__0__Impl
+	rule__PerspectivePartStack__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectivePartStack__Group_3_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_3_0()); }
+	'accessibility'
+	{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectivePartStack__Group_3_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PerspectivePartStack__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectivePartStack__Group_3_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_3_1()); }
+	(rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1)
+	{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_3_1()); }
 )
 ;
 finally {
@@ -21241,6 +21295,21 @@
 					{ after(grammarAccess.getPerspectivePartStackAccess().getGroup_3_2()); }
 				)
 			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getPerspectivePartStackAccess().getUnorderedGroup_3(), 3);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getPerspectivePartStackAccess().getGroup_3_3()); }
+					(rule__PerspectivePartStack__Group_3_3__0)
+					{ after(grammarAccess.getPerspectivePartStackAccess().getGroup_3_3()); }
+				)
+			)
 		)
 		)
 ;
@@ -21280,6 +21349,18 @@
 	}
 :
 	rule__PerspectivePartStack__UnorderedGroup_3__Impl
+	rule__PerspectivePartStack__UnorderedGroup_3__3?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectivePartStack__UnorderedGroup_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PerspectivePartStack__UnorderedGroup_3__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -21887,30 +21968,49 @@
 	restoreStackSize(stackSize);
 }
 
-rule__PerspectivePartStack__ContainerDataAssignment_3_1_1
+rule__PerspectivePartStack__SynchronizeAssignment_3_1_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getPerspectivePartStackAccess().getContainerDataSTRINGTerminalRuleCall_3_1_1_0()); }
-		RULE_STRING
-		{ after(grammarAccess.getPerspectivePartStackAccess().getContainerDataSTRINGTerminalRuleCall_3_1_1_0()); }
+		{ before(grammarAccess.getPerspectivePartStackAccess().getSynchronizePerspectivePartStackCrossReference_3_1_1_0()); }
+		(
+			{ before(grammarAccess.getPerspectivePartStackAccess().getSynchronizePerspectivePartStackIDTerminalRuleCall_3_1_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getPerspectivePartStackAccess().getSynchronizePerspectivePartStackIDTerminalRuleCall_3_1_1_0_1()); }
+		)
+		{ after(grammarAccess.getPerspectivePartStackAccess().getSynchronizePerspectivePartStackCrossReference_3_1_1_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1
+rule__PerspectivePartStack__ContainerDataAssignment_3_2_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_2_1_0()); }
+		{ before(grammarAccess.getPerspectivePartStackAccess().getContainerDataSTRINGTerminalRuleCall_3_2_1_0()); }
 		RULE_STRING
-		{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_2_1_0()); }
+		{ after(grammarAccess.getPerspectivePartStackAccess().getContainerDataSTRINGTerminalRuleCall_3_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_3_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseSTRINGTerminalRuleCall_3_3_1_0()); }
 	)
 ;
 finally {
diff --git a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.tokens b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDsl.tokens
index 26c022a..0edaa93 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
-'#'=100
+'#'=102
 '%'=39
 '%='=20
 '&&'=15
-'&'=123
-'('=96
-')'=97
+'&'=125
+'('=98
+')'=99
 '*'=36
 '**'=37
 '*='=18
 '+'=34
 '++'=41
 '+='=16
-','=98
+','=100
 '-'=35
 '--'=42
 '-='=17
@@ -24,9 +24,9 @@
 '..<'=29
 '/'=38
 '/='=19
-':'=107
-'::'=127
-';'=94
+':'=109
+'::'=129
+';'=96
 '<'=27
 '<>'=32
 '='=13
@@ -35,86 +35,88 @@
 '=>'=31
 '>'=26
 '>='=25
-'?'=122
-'?.'=128
+'?'=124
+'?.'=130
 '?:'=33
-'@'=95
-'['=101
-']'=99
+'@'=97
+'['=103
+']'=101
 'accessibility'=60
-'allowedSources'=71
-'as'=103
-'bpmn'=80
-'browser'=92
-'card'=83
-'case'=109
-'catch'=121
-'chart'=75
-'dataInterchange'=89
-'default'=108
-'depth'=87
-'describedBy'=124
-'dialog'=79
-'do'=112
-'editableTable'=74
-'else'=105
+'allowedSources'=73
+'as'=105
+'bpmn'=82
+'browser'=94
+'card'=85
+'case'=111
+'catch'=123
+'chart'=77
+'dataInterchange'=91
+'default'=110
+'depth'=89
+'describedBy'=126
+'dialog'=81
+'do'=114
+'editableTable'=76
+'else'=107
 'eventManager'=62
 'extends'=45
 'extension'=48
 'false'=50
-'filterColumns'=88
-'finally'=119
-'for'=110
+'filterColumns'=90
+'finally'=121
+'for'=112
 'horizontal'=51
-'iconURI'=59
-'if'=104
+'icon'=59
+'iconURI'=70
+'if'=106
 'import'=47
-'in'=86
-'instanceof'=102
-'isClosable'=125
-'kanban'=81
-'name'=91
-'new'=113
-'ns'=126
-'null'=114
-'of'=82
-'organigram'=77
+'in'=88
+'instanceof'=104
+'isClosable'=127
+'kanban'=83
+'name'=93
+'new'=115
+'ns'=128
+'null'=116
+'of'=84
+'organigram'=79
 'orientation'=64
 'package'=53
-'part'=68
+'part'=69
 'partStack'=67
 'perspective'=56
 'process'=57
-'readOnlyTable'=73
-'report'=76
-'return'=117
+'readOnlyTable'=75
+'report'=78
+'return'=119
 'sashContainer'=63
-'search'=85
-'select'=72
+'search'=87
+'select'=74
 'selectedElement'=65
 'spaceVolume'=66
 'static'=46
 'super'=49
-'switch'=106
-'synchronized'=120
-'targetPart'=70
-'throw'=116
-'title'=90
+'switch'=108
+'synchronize'=68
+'synchronized'=122
+'targetPart'=72
+'throw'=118
+'title'=92
 'toolbar'=61
-'topology'=78
-'true'=131
-'try'=118
-'typeof'=115
-'url'=93
+'topology'=80
+'true'=133
+'try'=120
+'typeof'=117
+'url'=95
 'usertask'=58
 'val'=44
-'var'=130
+'var'=132
 'vertical'=52
-'view'=69
-'welcome'=84
-'while'=111
+'view'=71
+'welcome'=86
+'while'=113
 '{'=54
-'|'=129
+'|'=131
 '||'=14
 '}'=55
 RULE_ANY_OTHER=12
@@ -158,6 +160,8 @@
 T__129=129
 T__130=130
 T__131=131
+T__132=132
+T__133=133
 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 51b2497..8a4a501 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
@@ -23,6 +23,8 @@
     public static final int T__52=52;
     public static final int T__53=53;
     public static final int T__54=54;
+    public static final int T__133=133;
+    public static final int T__132=132;
     public static final int T__60=60;
     public static final int T__61=61;
     public static final int RULE_ID=4;
@@ -1114,10 +1116,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:57:7: ( 'iconURI' )
-            // InternalPerspectiveDsl.g:57:9: 'iconURI'
+            // InternalPerspectiveDsl.g:57:7: ( 'icon' )
+            // InternalPerspectiveDsl.g:57:9: 'icon'
             {
-            match("iconURI"); 
+            match("icon"); 
 
 
             }
@@ -1303,10 +1305,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:66:7: ( 'part' )
-            // InternalPerspectiveDsl.g:66:9: 'part'
+            // InternalPerspectiveDsl.g:66:7: ( 'synchronize' )
+            // InternalPerspectiveDsl.g:66:9: 'synchronize'
             {
-            match("part"); 
+            match("synchronize"); 
 
 
             }
@@ -1324,10 +1326,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:67:7: ( 'view' )
-            // InternalPerspectiveDsl.g:67:9: 'view'
+            // InternalPerspectiveDsl.g:67:7: ( 'part' )
+            // InternalPerspectiveDsl.g:67:9: 'part'
             {
-            match("view"); 
+            match("part"); 
 
 
             }
@@ -1345,10 +1347,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:68:7: ( 'targetPart' )
-            // InternalPerspectiveDsl.g:68:9: 'targetPart'
+            // InternalPerspectiveDsl.g:68:7: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:68:9: 'iconURI'
             {
-            match("targetPart"); 
+            match("iconURI"); 
 
 
             }
@@ -1366,10 +1368,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:69:7: ( 'allowedSources' )
-            // InternalPerspectiveDsl.g:69:9: 'allowedSources'
+            // InternalPerspectiveDsl.g:69:7: ( 'view' )
+            // InternalPerspectiveDsl.g:69:9: 'view'
             {
-            match("allowedSources"); 
+            match("view"); 
 
 
             }
@@ -1387,10 +1389,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:70:7: ( 'select' )
-            // InternalPerspectiveDsl.g:70:9: 'select'
+            // InternalPerspectiveDsl.g:70:7: ( 'targetPart' )
+            // InternalPerspectiveDsl.g:70:9: 'targetPart'
             {
-            match("select"); 
+            match("targetPart"); 
 
 
             }
@@ -1408,10 +1410,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:71:7: ( 'readOnlyTable' )
-            // InternalPerspectiveDsl.g:71:9: 'readOnlyTable'
+            // InternalPerspectiveDsl.g:71:7: ( 'allowedSources' )
+            // InternalPerspectiveDsl.g:71:9: 'allowedSources'
             {
-            match("readOnlyTable"); 
+            match("allowedSources"); 
 
 
             }
@@ -1429,10 +1431,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:72:7: ( 'editableTable' )
-            // InternalPerspectiveDsl.g:72:9: 'editableTable'
+            // InternalPerspectiveDsl.g:72:7: ( 'select' )
+            // InternalPerspectiveDsl.g:72:9: 'select'
             {
-            match("editableTable"); 
+            match("select"); 
 
 
             }
@@ -1450,10 +1452,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:73:7: ( 'chart' )
-            // InternalPerspectiveDsl.g:73:9: 'chart'
+            // InternalPerspectiveDsl.g:73:7: ( 'readOnlyTable' )
+            // InternalPerspectiveDsl.g:73:9: 'readOnlyTable'
             {
-            match("chart"); 
+            match("readOnlyTable"); 
 
 
             }
@@ -1471,10 +1473,10 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:74:7: ( 'report' )
-            // InternalPerspectiveDsl.g:74:9: 'report'
+            // InternalPerspectiveDsl.g:74:7: ( 'editableTable' )
+            // InternalPerspectiveDsl.g:74:9: 'editableTable'
             {
-            match("report"); 
+            match("editableTable"); 
 
 
             }
@@ -1492,10 +1494,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:75:7: ( 'organigram' )
-            // InternalPerspectiveDsl.g:75:9: 'organigram'
+            // InternalPerspectiveDsl.g:75:7: ( 'chart' )
+            // InternalPerspectiveDsl.g:75:9: 'chart'
             {
-            match("organigram"); 
+            match("chart"); 
 
 
             }
@@ -1513,10 +1515,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:76:7: ( 'topology' )
-            // InternalPerspectiveDsl.g:76:9: 'topology'
+            // InternalPerspectiveDsl.g:76:7: ( 'report' )
+            // InternalPerspectiveDsl.g:76:9: 'report'
             {
-            match("topology"); 
+            match("report"); 
 
 
             }
@@ -1534,10 +1536,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:77:7: ( 'dialog' )
-            // InternalPerspectiveDsl.g:77:9: 'dialog'
+            // InternalPerspectiveDsl.g:77:7: ( 'organigram' )
+            // InternalPerspectiveDsl.g:77:9: 'organigram'
             {
-            match("dialog"); 
+            match("organigram"); 
 
 
             }
@@ -1555,10 +1557,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:78:7: ( 'bpmn' )
-            // InternalPerspectiveDsl.g:78:9: 'bpmn'
+            // InternalPerspectiveDsl.g:78:7: ( 'topology' )
+            // InternalPerspectiveDsl.g:78:9: 'topology'
             {
-            match("bpmn"); 
+            match("topology"); 
 
 
             }
@@ -1576,10 +1578,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:79:7: ( 'kanban' )
-            // InternalPerspectiveDsl.g:79:9: 'kanban'
+            // InternalPerspectiveDsl.g:79:7: ( 'dialog' )
+            // InternalPerspectiveDsl.g:79:9: 'dialog'
             {
-            match("kanban"); 
+            match("dialog"); 
 
 
             }
@@ -1597,10 +1599,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:80:7: ( 'of' )
-            // InternalPerspectiveDsl.g:80:9: 'of'
+            // InternalPerspectiveDsl.g:80:7: ( 'bpmn' )
+            // InternalPerspectiveDsl.g:80:9: 'bpmn'
             {
-            match("of"); 
+            match("bpmn"); 
 
 
             }
@@ -1618,10 +1620,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:81:7: ( 'card' )
-            // InternalPerspectiveDsl.g:81:9: 'card'
+            // InternalPerspectiveDsl.g:81:7: ( 'kanban' )
+            // InternalPerspectiveDsl.g:81:9: 'kanban'
             {
-            match("card"); 
+            match("kanban"); 
 
 
             }
@@ -1639,10 +1641,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:82:7: ( 'welcome' )
-            // InternalPerspectiveDsl.g:82:9: 'welcome'
+            // InternalPerspectiveDsl.g:82:7: ( 'of' )
+            // InternalPerspectiveDsl.g:82:9: 'of'
             {
-            match("welcome"); 
+            match("of"); 
 
 
             }
@@ -1660,10 +1662,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:83:7: ( 'search' )
-            // InternalPerspectiveDsl.g:83:9: 'search'
+            // InternalPerspectiveDsl.g:83:7: ( 'card' )
+            // InternalPerspectiveDsl.g:83:9: 'card'
             {
-            match("search"); 
+            match("card"); 
 
 
             }
@@ -1681,10 +1683,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:84:7: ( 'in' )
-            // InternalPerspectiveDsl.g:84:9: 'in'
+            // InternalPerspectiveDsl.g:84:7: ( 'welcome' )
+            // InternalPerspectiveDsl.g:84:9: 'welcome'
             {
-            match("in"); 
+            match("welcome"); 
 
 
             }
@@ -1702,10 +1704,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:85:7: ( 'depth' )
-            // InternalPerspectiveDsl.g:85:9: 'depth'
+            // InternalPerspectiveDsl.g:85:7: ( 'search' )
+            // InternalPerspectiveDsl.g:85:9: 'search'
             {
-            match("depth"); 
+            match("search"); 
 
 
             }
@@ -1723,10 +1725,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:86:7: ( 'filterColumns' )
-            // InternalPerspectiveDsl.g:86:9: 'filterColumns'
+            // InternalPerspectiveDsl.g:86:7: ( 'in' )
+            // InternalPerspectiveDsl.g:86:9: 'in'
             {
-            match("filterColumns"); 
+            match("in"); 
 
 
             }
@@ -1744,10 +1746,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:87:7: ( 'dataInterchange' )
-            // InternalPerspectiveDsl.g:87:9: 'dataInterchange'
+            // InternalPerspectiveDsl.g:87:7: ( 'depth' )
+            // InternalPerspectiveDsl.g:87:9: 'depth'
             {
-            match("dataInterchange"); 
+            match("depth"); 
 
 
             }
@@ -1765,10 +1767,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:88:7: ( 'title' )
-            // InternalPerspectiveDsl.g:88:9: 'title'
+            // InternalPerspectiveDsl.g:88:7: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:88:9: 'filterColumns'
             {
-            match("title"); 
+            match("filterColumns"); 
 
 
             }
@@ -1786,10 +1788,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:89:7: ( 'name' )
-            // InternalPerspectiveDsl.g:89:9: 'name'
+            // InternalPerspectiveDsl.g:89:7: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:89:9: 'dataInterchange'
             {
-            match("name"); 
+            match("dataInterchange"); 
 
 
             }
@@ -1807,10 +1809,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:90:7: ( 'browser' )
-            // InternalPerspectiveDsl.g:90:9: 'browser'
+            // InternalPerspectiveDsl.g:90:7: ( 'title' )
+            // InternalPerspectiveDsl.g:90:9: 'title'
             {
-            match("browser"); 
+            match("title"); 
 
 
             }
@@ -1828,10 +1830,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:91:7: ( 'url' )
-            // InternalPerspectiveDsl.g:91:9: 'url'
+            // InternalPerspectiveDsl.g:91:7: ( 'name' )
+            // InternalPerspectiveDsl.g:91:9: 'name'
             {
-            match("url"); 
+            match("name"); 
 
 
             }
@@ -1849,10 +1851,11 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:92:7: ( ';' )
-            // InternalPerspectiveDsl.g:92:9: ';'
+            // InternalPerspectiveDsl.g:92:7: ( 'browser' )
+            // InternalPerspectiveDsl.g:92:9: 'browser'
             {
-            match(';'); 
+            match("browser"); 
+
 
             }
 
@@ -1869,10 +1872,11 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:93:7: ( '@' )
-            // InternalPerspectiveDsl.g:93:9: '@'
+            // InternalPerspectiveDsl.g:93:7: ( 'url' )
+            // InternalPerspectiveDsl.g:93:9: 'url'
             {
-            match('@'); 
+            match("url"); 
+
 
             }
 
@@ -1889,10 +1893,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(';'); 
 
             }
 
@@ -1909,10 +1913,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:95:7: ( ')' )
-            // InternalPerspectiveDsl.g:95:9: ')'
+            // InternalPerspectiveDsl.g:95:7: ( '@' )
+            // InternalPerspectiveDsl.g:95:9: '@'
             {
-            match(')'); 
+            match('@'); 
 
             }
 
@@ -1929,10 +1933,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:96:7: ( ',' )
-            // InternalPerspectiveDsl.g:96:9: ','
+            // InternalPerspectiveDsl.g:96:7: ( '(' )
+            // InternalPerspectiveDsl.g:96:9: '('
             {
-            match(','); 
+            match('('); 
 
             }
 
@@ -1949,10 +1953,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:97:7: ( ']' )
-            // InternalPerspectiveDsl.g:97:9: ']'
+            // InternalPerspectiveDsl.g:97:7: ( ')' )
+            // InternalPerspectiveDsl.g:97:9: ')'
             {
-            match(']'); 
+            match(')'); 
 
             }
 
@@ -1969,10 +1973,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:98:8: ( '#' )
-            // InternalPerspectiveDsl.g:98:10: '#'
+            // InternalPerspectiveDsl.g:98:8: ( ',' )
+            // InternalPerspectiveDsl.g:98:10: ','
             {
-            match('#'); 
+            match(','); 
 
             }
 
@@ -1989,10 +1993,10 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:99:8: ( '[' )
-            // InternalPerspectiveDsl.g:99:10: '['
+            // InternalPerspectiveDsl.g:99:8: ( ']' )
+            // InternalPerspectiveDsl.g:99:10: ']'
             {
-            match('['); 
+            match(']'); 
 
             }
 
@@ -2009,11 +2013,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:100:8: ( 'instanceof' )
-            // InternalPerspectiveDsl.g:100:10: 'instanceof'
+            // InternalPerspectiveDsl.g:100:8: ( '#' )
+            // InternalPerspectiveDsl.g:100:10: '#'
             {
-            match("instanceof"); 
-
+            match('#'); 
 
             }
 
@@ -2030,11 +2033,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:101:8: ( 'as' )
-            // InternalPerspectiveDsl.g:101:10: 'as'
+            // InternalPerspectiveDsl.g:101:8: ( '[' )
+            // InternalPerspectiveDsl.g:101:10: '['
             {
-            match("as"); 
-
+            match('['); 
 
             }
 
@@ -2051,10 +2053,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:102:8: ( 'if' )
-            // InternalPerspectiveDsl.g:102:10: 'if'
+            // InternalPerspectiveDsl.g:102:8: ( 'instanceof' )
+            // InternalPerspectiveDsl.g:102:10: 'instanceof'
             {
-            match("if"); 
+            match("instanceof"); 
 
 
             }
@@ -2072,10 +2074,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:103:8: ( 'else' )
-            // InternalPerspectiveDsl.g:103:10: 'else'
+            // InternalPerspectiveDsl.g:103:8: ( 'as' )
+            // InternalPerspectiveDsl.g:103:10: 'as'
             {
-            match("else"); 
+            match("as"); 
 
 
             }
@@ -2093,10 +2095,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:104:8: ( 'switch' )
-            // InternalPerspectiveDsl.g:104:10: 'switch'
+            // InternalPerspectiveDsl.g:104:8: ( 'if' )
+            // InternalPerspectiveDsl.g:104:10: 'if'
             {
-            match("switch"); 
+            match("if"); 
 
 
             }
@@ -2114,10 +2116,11 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:105:8: ( ':' )
-            // InternalPerspectiveDsl.g:105:10: ':'
+            // InternalPerspectiveDsl.g:105:8: ( 'else' )
+            // InternalPerspectiveDsl.g:105:10: 'else'
             {
-            match(':'); 
+            match("else"); 
+
 
             }
 
@@ -2134,10 +2137,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:106:8: ( 'default' )
-            // InternalPerspectiveDsl.g:106:10: 'default'
+            // InternalPerspectiveDsl.g:106:8: ( 'switch' )
+            // InternalPerspectiveDsl.g:106:10: 'switch'
             {
-            match("default"); 
+            match("switch"); 
 
 
             }
@@ -2155,11 +2158,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:107:8: ( 'case' )
-            // InternalPerspectiveDsl.g:107:10: 'case'
+            // InternalPerspectiveDsl.g:107:8: ( ':' )
+            // InternalPerspectiveDsl.g:107:10: ':'
             {
-            match("case"); 
-
+            match(':'); 
 
             }
 
@@ -2176,10 +2178,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:108:8: ( 'for' )
-            // InternalPerspectiveDsl.g:108:10: 'for'
+            // InternalPerspectiveDsl.g:108:8: ( 'default' )
+            // InternalPerspectiveDsl.g:108:10: 'default'
             {
-            match("for"); 
+            match("default"); 
 
 
             }
@@ -2197,10 +2199,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:109:8: ( 'while' )
-            // InternalPerspectiveDsl.g:109:10: 'while'
+            // InternalPerspectiveDsl.g:109:8: ( 'case' )
+            // InternalPerspectiveDsl.g:109:10: 'case'
             {
-            match("while"); 
+            match("case"); 
 
 
             }
@@ -2218,10 +2220,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:110:8: ( 'do' )
-            // InternalPerspectiveDsl.g:110:10: 'do'
+            // InternalPerspectiveDsl.g:110:8: ( 'for' )
+            // InternalPerspectiveDsl.g:110:10: 'for'
             {
-            match("do"); 
+            match("for"); 
 
 
             }
@@ -2239,10 +2241,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:111:8: ( 'new' )
-            // InternalPerspectiveDsl.g:111:10: 'new'
+            // InternalPerspectiveDsl.g:111:8: ( 'while' )
+            // InternalPerspectiveDsl.g:111:10: 'while'
             {
-            match("new"); 
+            match("while"); 
 
 
             }
@@ -2260,10 +2262,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: ( 'do' )
+            // InternalPerspectiveDsl.g:112:10: 'do'
             {
-            match("null"); 
+            match("do"); 
 
 
             }
@@ -2281,10 +2283,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: ( 'new' )
+            // InternalPerspectiveDsl.g:113:10: 'new'
             {
-            match("typeof"); 
+            match("new"); 
 
 
             }
@@ -2302,10 +2304,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: ( 'null' )
+            // InternalPerspectiveDsl.g:114:10: 'null'
             {
-            match("throw"); 
+            match("null"); 
 
 
             }
@@ -2323,10 +2325,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: ( 'typeof' )
+            // InternalPerspectiveDsl.g:115:10: 'typeof'
             {
-            match("return"); 
+            match("typeof"); 
 
 
             }
@@ -2344,10 +2346,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: ( 'throw' )
+            // InternalPerspectiveDsl.g:116:10: 'throw'
             {
-            match("try"); 
+            match("throw"); 
 
 
             }
@@ -2365,10 +2367,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: ( 'return' )
+            // InternalPerspectiveDsl.g:117:10: 'return'
             {
-            match("finally"); 
+            match("return"); 
 
 
             }
@@ -2386,10 +2388,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: ( 'try' )
+            // InternalPerspectiveDsl.g:118:10: 'try'
             {
-            match("synchronized"); 
+            match("try"); 
 
 
             }
@@ -2407,10 +2409,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: ( 'finally' )
+            // InternalPerspectiveDsl.g:119:10: 'finally'
             {
-            match("catch"); 
+            match("finally"); 
 
 
             }
@@ -2428,10 +2430,11 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:120:8: ( '?' )
-            // InternalPerspectiveDsl.g:120:10: '?'
+            // InternalPerspectiveDsl.g:120:8: ( 'synchronized' )
+            // InternalPerspectiveDsl.g:120:10: 'synchronized'
             {
-            match('?'); 
+            match("synchronized"); 
+
 
             }
 
@@ -2448,10 +2451,11 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:121:8: ( '&' )
-            // InternalPerspectiveDsl.g:121:10: '&'
+            // InternalPerspectiveDsl.g:121:8: ( 'catch' )
+            // InternalPerspectiveDsl.g:121:10: 'catch'
             {
-            match('&'); 
+            match("catch"); 
+
 
             }
 
@@ -2468,11 +2472,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:122:8: ( 'describedBy' )
-            // InternalPerspectiveDsl.g:122:10: 'describedBy'
+            // InternalPerspectiveDsl.g:122:8: ( '?' )
+            // InternalPerspectiveDsl.g:122:10: '?'
             {
-            match("describedBy"); 
-
+            match('?'); 
 
             }
 
@@ -2489,11 +2492,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:123:8: ( 'isClosable' )
-            // InternalPerspectiveDsl.g:123:10: 'isClosable'
+            // InternalPerspectiveDsl.g:123:8: ( '&' )
+            // InternalPerspectiveDsl.g:123:10: '&'
             {
-            match("isClosable"); 
-
+            match('&'); 
 
             }
 
@@ -2510,10 +2512,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:124:8: ( 'ns' )
-            // InternalPerspectiveDsl.g:124:10: 'ns'
+            // InternalPerspectiveDsl.g:124:8: ( 'describedBy' )
+            // InternalPerspectiveDsl.g:124:10: 'describedBy'
             {
-            match("ns"); 
+            match("describedBy"); 
 
 
             }
@@ -2531,10 +2533,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:125:8: ( '::' )
-            // InternalPerspectiveDsl.g:125:10: '::'
+            // InternalPerspectiveDsl.g:125:8: ( 'isClosable' )
+            // InternalPerspectiveDsl.g:125:10: 'isClosable'
             {
-            match("::"); 
+            match("isClosable"); 
 
 
             }
@@ -2552,10 +2554,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:126:8: ( '?.' )
-            // InternalPerspectiveDsl.g:126:10: '?.'
+            // InternalPerspectiveDsl.g:126:8: ( 'ns' )
+            // InternalPerspectiveDsl.g:126:10: 'ns'
             {
-            match("?."); 
+            match("ns"); 
 
 
             }
@@ -2573,10 +2575,11 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:127:8: ( '|' )
-            // InternalPerspectiveDsl.g:127:10: '|'
+            // InternalPerspectiveDsl.g:127:8: ( '::' )
+            // InternalPerspectiveDsl.g:127:10: '::'
             {
-            match('|'); 
+            match("::"); 
+
 
             }
 
@@ -2593,10 +2596,10 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:128:8: ( 'var' )
-            // InternalPerspectiveDsl.g:128:10: 'var'
+            // InternalPerspectiveDsl.g:128:8: ( '?.' )
+            // InternalPerspectiveDsl.g:128:10: '?.'
             {
-            match("var"); 
+            match("?."); 
 
 
             }
@@ -2614,8 +2617,49 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:129:8: ( 'true' )
-            // InternalPerspectiveDsl.g:129:10: 'true'
+            // InternalPerspectiveDsl.g:129:8: ( '|' )
+            // InternalPerspectiveDsl.g:129:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__131"
+
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalPerspectiveDsl.g:130:8: ( 'var' )
+            // InternalPerspectiveDsl.g:130:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__132"
+
+    // $ANTLR start "T__133"
+    public final void mT__133() throws RecognitionException {
+        try {
+            int _type = T__133;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalPerspectiveDsl.g:131:8: ( 'true' )
+            // InternalPerspectiveDsl.g:131:10: 'true'
             {
             match("true"); 
 
@@ -2628,17 +2672,17 @@
         finally {
         }
     }
-    // $ANTLR end "T__131"
+    // $ANTLR end "T__133"
 
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24877:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalPerspectiveDsl.g:24877:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:24977:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalPerspectiveDsl.g:24977:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalPerspectiveDsl.g:24877:12: ( '0x' | '0X' )
+            // InternalPerspectiveDsl.g:24977:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2666,7 +2710,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24877:13: '0x'
+                    // InternalPerspectiveDsl.g:24977:13: '0x'
                     {
                     match("0x"); 
 
@@ -2674,7 +2718,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24877:18: '0X'
+                    // InternalPerspectiveDsl.g:24977:18: '0X'
                     {
                     match("0X"); 
 
@@ -2684,7 +2728,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:24877:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalPerspectiveDsl.g:24977:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2722,7 +2766,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalPerspectiveDsl.g:24877:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalPerspectiveDsl.g:24977:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2731,10 +2775,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24877:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:24977:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalPerspectiveDsl.g:24877:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalPerspectiveDsl.g:24977:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2752,7 +2796,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24877:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalPerspectiveDsl.g:24977:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2776,7 +2820,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalPerspectiveDsl.g:24877:84: ( 'l' | 'L' )
+                            // InternalPerspectiveDsl.g:24977:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2815,11 +2859,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24879:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalPerspectiveDsl.g:24879:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:24979:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalPerspectiveDsl.g:24979:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalPerspectiveDsl.g:24879:21: ( '0' .. '9' | '_' )*
+            // InternalPerspectiveDsl.g:24979:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2868,11 +2912,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24881:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalPerspectiveDsl.g:24881:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:24981:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalPerspectiveDsl.g:24981:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalPerspectiveDsl.g:24881:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalPerspectiveDsl.g:24981:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2881,7 +2925,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24881:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalPerspectiveDsl.g:24981:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2892,7 +2936,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalPerspectiveDsl.g:24881:36: ( '+' | '-' )?
+                    // InternalPerspectiveDsl.g:24981:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2925,7 +2969,7 @@
 
             }
 
-            // InternalPerspectiveDsl.g:24881:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalPerspectiveDsl.g:24981:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2937,7 +2981,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24881:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalPerspectiveDsl.g:24981:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2961,7 +3005,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24881:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalPerspectiveDsl.g:24981: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();
@@ -2994,10 +3038,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24883:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalPerspectiveDsl.g:24883:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:24983:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalPerspectiveDsl.g:24983:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalPerspectiveDsl.g:24883:11: ( '^' )?
+            // InternalPerspectiveDsl.g:24983:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3006,7 +3050,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24883:11: '^'
+                    // InternalPerspectiveDsl.g:24983:11: '^'
                     {
                     match('^'); 
 
@@ -3024,7 +3068,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalPerspectiveDsl.g:24883:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalPerspectiveDsl.g:24983:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -3073,10 +3117,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24885:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalPerspectiveDsl.g:24885:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:24985:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalPerspectiveDsl.g:24985:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalPerspectiveDsl.g:24885:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalPerspectiveDsl.g:24985:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -3094,10 +3138,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24885:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalPerspectiveDsl.g:24985:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalPerspectiveDsl.g:24885:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalPerspectiveDsl.g:24985:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -3113,7 +3157,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:24885:21: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:24985:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3121,7 +3165,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:24885:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalPerspectiveDsl.g:24985:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3141,7 +3185,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:24885:44: ( '\"' )?
+                    // InternalPerspectiveDsl.g:24985:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3150,7 +3194,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24885:44: '\"'
+                            // InternalPerspectiveDsl.g:24985:44: '\"'
                             {
                             match('\"'); 
 
@@ -3163,10 +3207,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalPerspectiveDsl.g:24885:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalPerspectiveDsl.g:24985:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalPerspectiveDsl.g:24885:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalPerspectiveDsl.g:24985:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3182,7 +3226,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalPerspectiveDsl.g:24885:55: '\\\\' .
+                    	    // InternalPerspectiveDsl.g:24985:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3190,7 +3234,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalPerspectiveDsl.g:24885:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalPerspectiveDsl.g:24985:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3210,7 +3254,7 @@
                         }
                     } while (true);
 
-                    // InternalPerspectiveDsl.g:24885:79: ( '\\'' )?
+                    // InternalPerspectiveDsl.g:24985:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3219,7 +3263,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24885:79: '\\''
+                            // InternalPerspectiveDsl.g:24985:79: '\\''
                             {
                             match('\''); 
 
@@ -3250,12 +3294,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24887:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalPerspectiveDsl.g:24887:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalPerspectiveDsl.g:24987:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalPerspectiveDsl.g:24987:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalPerspectiveDsl.g:24887:24: ( options {greedy=false; } : . )*
+            // InternalPerspectiveDsl.g:24987:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3280,7 +3324,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:24887:52: .
+            	    // InternalPerspectiveDsl.g:24987:52: .
             	    {
             	    matchAny(); 
 
@@ -3310,12 +3354,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24889:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalPerspectiveDsl.g:24889:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:24989:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalPerspectiveDsl.g:24989:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalPerspectiveDsl.g:24889:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalPerspectiveDsl.g:24989:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3328,7 +3372,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:24889:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalPerspectiveDsl.g:24989: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();
@@ -3348,7 +3392,7 @@
                 }
             } while (true);
 
-            // InternalPerspectiveDsl.g:24889:40: ( ( '\\r' )? '\\n' )?
+            // InternalPerspectiveDsl.g:24989:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3357,9 +3401,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:24889:41: ( '\\r' )? '\\n'
+                    // InternalPerspectiveDsl.g:24989:41: ( '\\r' )? '\\n'
                     {
-                    // InternalPerspectiveDsl.g:24889:41: ( '\\r' )?
+                    // InternalPerspectiveDsl.g:24989:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3368,7 +3412,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalPerspectiveDsl.g:24889:41: '\\r'
+                            // InternalPerspectiveDsl.g:24989:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3400,10 +3444,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24891:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalPerspectiveDsl.g:24891:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:24991:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalPerspectiveDsl.g:24991:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalPerspectiveDsl.g:24891:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalPerspectiveDsl.g:24991:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3457,8 +3501,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalPerspectiveDsl.g:24893:16: ( . )
-            // InternalPerspectiveDsl.g:24893:18: .
+            // InternalPerspectiveDsl.g:24993:16: ( . )
+            // InternalPerspectiveDsl.g:24993:18: .
             {
             matchAny(); 
 
@@ -3473,8 +3517,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalPerspectiveDsl.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=128;
+        // InternalPerspectiveDsl.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=130;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -4311,63 +4355,77 @@
                 }
                 break;
             case 120 :
-                // InternalPerspectiveDsl.g:1:756: RULE_HEX
+                // InternalPerspectiveDsl.g:1:756: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 121 :
+                // InternalPerspectiveDsl.g:1:763: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 122 :
+                // InternalPerspectiveDsl.g:1:770: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 121 :
-                // InternalPerspectiveDsl.g:1:765: RULE_INT
+            case 123 :
+                // InternalPerspectiveDsl.g:1:779: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 122 :
-                // InternalPerspectiveDsl.g:1:774: RULE_DECIMAL
+            case 124 :
+                // InternalPerspectiveDsl.g:1:788: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 123 :
-                // InternalPerspectiveDsl.g:1:787: RULE_ID
+            case 125 :
+                // InternalPerspectiveDsl.g:1:801: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 124 :
-                // InternalPerspectiveDsl.g:1:795: RULE_STRING
+            case 126 :
+                // InternalPerspectiveDsl.g:1:809: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 125 :
-                // InternalPerspectiveDsl.g:1:807: RULE_ML_COMMENT
+            case 127 :
+                // InternalPerspectiveDsl.g:1:821: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 126 :
-                // InternalPerspectiveDsl.g:1:823: RULE_SL_COMMENT
+            case 128 :
+                // InternalPerspectiveDsl.g:1:837: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 127 :
-                // InternalPerspectiveDsl.g:1:839: RULE_WS
+            case 129 :
+                // InternalPerspectiveDsl.g:1:853: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 128 :
-                // InternalPerspectiveDsl.g:1:847: RULE_ANY_OTHER
+            case 130 :
+                // InternalPerspectiveDsl.g:1:861: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -4381,17 +4439,17 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\65\1\67\1\71\1\74\1\100\1\103\1\107\1\111\1\113\1\115\1\117\1\121\1\124\7\130\2\uffff\13\130\10\uffff\1\u0098\2\u009b\1\62\5\uffff\1\u00a0\26\uffff\1\u00a2\5\uffff\1\u00a4\4\uffff\3\130\1\uffff\15\130\1\u00b8\1\u00b9\10\130\2\uffff\4\130\1\u00c8\7\130\1\u00d3\6\130\1\u00e0\10\130\1\u00e9\13\uffff\1\u009b\12\uffff\1\u00ea\1\u00eb\21\130\2\uffff\4\130\1\u0101\6\130\1\u0108\2\130\1\uffff\6\130\1\u0111\3\130\1\uffff\14\130\1\uffff\6\130\1\u0127\1\130\3\uffff\1\130\1\u012a\3\130\1\u012e\17\130\1\uffff\2\130\1\u0141\3\130\1\uffff\10\130\1\uffff\1\u014d\6\130\1\u0154\1\u0155\6\130\1\u015c\4\130\1\u0161\1\uffff\1\u0162\1\130\1\uffff\3\130\1\uffff\1\130\1\u0169\12\130\1\u0174\5\130\1\uffff\10\130\1\u0182\1\130\1\u0184\1\uffff\5\130\1\u018a\2\uffff\1\u018b\1\130\1\u018d\3\130\1\uffff\3\130\1\u0194\2\uffff\5\130\1\u019a\1\uffff\1\130\1\u019d\1\u019e\1\130\1\u01a0\1\130\1\u01a2\3\130\1\uffff\15\130\1\uffff\1\u01b3\1\uffff\3\130\1\u01b7\1\u01b8\2\uffff\1\u01b9\1\uffff\4\130\1\u01be\1\130\1\uffff\1\130\1\u01c1\3\130\1\uffff\2\130\2\uffff\1\130\1\uffff\1\130\1\uffff\1\u01c9\3\130\1\u01cd\1\130\1\u01cf\2\130\1\u01d2\3\130\1\u01d6\2\130\1\uffff\3\130\3\uffff\1\u01dc\2\130\1\u01df\1\uffff\1\u01e0\1\u01e1\1\uffff\7\130\1\uffff\3\130\1\uffff\1\130\1\uffff\2\130\1\uffff\1\u01ef\2\130\1\uffff\1\u01f2\4\130\1\uffff\2\130\3\uffff\1\u01f9\12\130\1\u0204\1\130\1\uffff\2\130\1\uffff\6\130\1\uffff\6\130\1\u0214\1\u0215\1\130\1\u0217\1\uffff\3\130\1\u021b\1\130\1\u021d\7\130\1\u0225\1\130\2\uffff\1\130\1\uffff\1\u0228\2\130\1\uffff\1\u022b\1\uffff\1\130\1\u022d\1\130\1\u022f\3\130\1\uffff\1\u0233\1\130\1\uffff\2\130\1\uffff\1\130\1\uffff\1\130\1\uffff\1\u0239\1\u023a\1\130\1\uffff\1\u023c\1\u023d\1\130\1\u023f\1\130\2\uffff\1\130\2\uffff\1\u0242\1\uffff\1\130\1\u0244\1\uffff\1\u0245\2\uffff";
+        "\1\uffff\1\65\1\67\1\71\1\74\1\100\1\103\1\107\1\111\1\113\1\115\1\117\1\121\1\124\7\130\2\uffff\13\130\10\uffff\1\u0098\2\u009a\1\62\5\uffff\1\u00a0\26\uffff\1\u00a2\5\uffff\1\u00a4\4\uffff\3\130\1\uffff\15\130\1\u00b8\1\u00b9\10\130\2\uffff\4\130\1\u00c8\7\130\1\u00d3\6\130\1\u00e0\10\130\1\u00e9\14\uffff\1\u009a\11\uffff\1\u00ea\1\u00eb\21\130\2\uffff\4\130\1\u0101\6\130\1\u0108\2\130\1\uffff\6\130\1\u0111\3\130\1\uffff\14\130\1\uffff\6\130\1\u0127\1\130\3\uffff\1\130\1\u012a\3\130\1\u012e\11\130\1\u0139\5\130\1\uffff\2\130\1\u0142\3\130\1\uffff\10\130\1\uffff\1\u014e\6\130\1\u0155\1\u0156\6\130\1\u015d\4\130\1\u0162\1\uffff\1\u0163\1\130\1\uffff\3\130\1\uffff\1\130\1\u016a\10\130\1\uffff\2\130\1\u0175\5\130\1\uffff\10\130\1\u0183\1\130\1\u0185\1\uffff\5\130\1\u018b\2\uffff\1\u018c\1\130\1\u018e\3\130\1\uffff\3\130\1\u0195\2\uffff\5\130\1\u019b\1\uffff\1\130\1\u019e\1\u019f\2\130\1\u01a2\1\u01a3\3\130\1\uffff\15\130\1\uffff\1\u01b4\1\uffff\3\130\1\u01b8\1\u01b9\2\uffff\1\u01ba\1\uffff\4\130\1\u01bf\1\130\1\uffff\1\130\1\u01c2\3\130\1\uffff\2\130\2\uffff\2\130\2\uffff\1\u01ca\3\130\1\u01ce\1\130\1\u01d0\2\130\1\u01d3\3\130\1\u01d7\2\130\1\uffff\3\130\3\uffff\1\u01dd\2\130\1\u01e0\1\uffff\1\u01e1\1\u01e2\1\uffff\7\130\1\uffff\3\130\1\uffff\1\130\1\uffff\2\130\1\uffff\1\u01f0\2\130\1\uffff\1\u01f3\4\130\1\uffff\2\130\3\uffff\1\u01fa\12\130\1\u0205\1\130\1\uffff\2\130\1\uffff\6\130\1\uffff\6\130\1\u0215\1\u0216\1\130\1\u0218\1\uffff\3\130\1\u021c\1\130\1\u021e\7\130\1\u0226\1\u0228\2\uffff\1\130\1\uffff\1\u022a\2\130\1\uffff\1\u022d\1\uffff\1\130\1\u022f\1\130\1\u0231\3\130\1\uffff\1\u0235\1\uffff\1\130\1\uffff\2\130\1\uffff\1\130\1\uffff\1\130\1\uffff\1\u023b\1\u023c\1\130\1\uffff\1\u023e\1\u023f\1\130\1\u0241\1\130\2\uffff\1\130\2\uffff\1\u0244\1\uffff\1\130\1\u0246\1\uffff\1\u0247\2\uffff";
     static final String DFA21_eofS =
-        "\u0246\uffff";
+        "\u0248\uffff";
     static final String DFA21_minS =
-        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\144\1\141\1\143\1\141\1\157\1\141\2\uffff\1\162\1\143\1\141\1\146\1\145\2\141\1\160\1\141\1\145\1\141\10\uffff\1\72\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\2\141\1\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\154\1\143\1\154\1\44\1\157\1\162\1\164\1\160\1\162\1\165\1\147\1\44\2\141\1\162\1\141\1\146\1\164\1\44\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\44\13\uffff\1\60\12\uffff\2\44\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\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\44\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\44\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\44\1\154\3\uffff\1\151\1\44\1\156\1\164\1\141\1\44\1\151\1\162\1\103\2\143\1\145\1\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\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\44\2\156\1\117\2\162\1\164\2\44\1\150\1\157\1\150\1\165\1\162\1\111\1\44\1\163\1\141\1\157\1\145\1\44\1\uffff\1\44\1\143\1\uffff\1\144\1\115\1\142\1\uffff\1\143\1\44\1\157\1\164\1\150\1\126\1\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\145\1\141\1\157\1\164\1\44\1\146\1\44\1\uffff\1\164\1\151\1\156\1\164\1\156\1\44\2\uffff\1\44\1\147\1\44\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\44\2\uffff\1\141\1\163\1\151\1\141\1\154\1\44\1\uffff\1\156\2\44\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\144\1\162\1\147\1\120\1\uffff\1\44\1\uffff\1\141\1\147\1\154\2\44\2\uffff\1\44\1\uffff\1\164\1\142\1\164\1\162\1\44\1\145\1\uffff\1\154\1\44\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\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\123\1\44\1\171\1\141\1\uffff\1\164\1\162\1\171\3\uffff\1\44\2\145\1\44\1\uffff\2\44\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\44\1\151\1\157\1\uffff\1\44\1\162\1\151\1\141\1\124\1\uffff\1\144\1\162\3\uffff\1\44\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\44\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\44\1\155\1\44\1\uffff\1\145\1\151\1\162\1\44\1\156\1\44\1\142\1\171\1\150\1\162\1\154\1\145\1\155\1\44\1\144\2\uffff\1\156\1\uffff\1\44\1\164\1\143\1\uffff\1\44\1\uffff\1\154\1\44\1\141\1\44\1\145\1\162\1\145\1\uffff\1\44\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\44\1\156\1\uffff\2\44\1\163\1\44\1\147\2\uffff\1\164\2\uffff\1\44\1\uffff\1\145\1\44\1\uffff\1\44\2\uffff";
+        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\144\1\141\1\143\1\141\1\157\1\141\2\uffff\1\162\1\143\1\141\1\146\1\145\2\141\1\160\1\141\1\145\1\141\10\uffff\1\72\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\2\141\1\156\1\151\1\160\1\157\2\44\1\103\2\154\2\162\1\143\1\162\1\157\2\uffff\1\145\1\154\1\143\1\154\1\44\1\157\1\162\1\164\1\160\1\162\1\165\1\147\1\44\2\141\1\162\1\141\1\146\1\164\1\44\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\44\14\uffff\1\60\11\uffff\2\44\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\2\143\1\164\1\157\1\156\1\164\2\uffff\1\154\1\163\1\164\1\141\1\44\1\151\1\153\1\164\1\163\1\143\1\162\1\44\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\44\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\44\1\154\3\uffff\1\151\1\44\1\156\1\164\1\141\1\44\1\151\1\162\1\103\2\143\1\145\1\150\1\143\1\162\1\44\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\44\1\160\1\145\1\164\1\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\44\2\156\1\117\2\162\1\164\2\44\1\150\1\157\1\150\1\165\1\162\1\111\1\44\1\163\1\141\1\157\1\145\1\44\1\uffff\1\44\1\143\1\uffff\1\144\1\115\1\142\1\uffff\1\143\1\44\1\157\1\164\1\150\1\126\1\162\1\150\1\164\1\122\1\uffff\1\156\1\163\1\44\1\162\1\154\1\157\1\147\1\164\1\uffff\1\145\1\163\1\141\1\163\1\145\1\141\1\157\1\164\1\44\1\146\1\44\1\uffff\1\164\1\151\1\156\1\164\1\156\1\44\2\uffff\1\44\1\147\1\44\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\44\2\uffff\1\141\1\163\1\151\1\141\1\154\1\44\1\uffff\1\156\2\44\2\157\2\44\1\111\1\143\1\141\1\uffff\1\103\1\171\1\156\1\145\1\141\1\143\2\163\1\151\1\144\1\162\1\147\1\120\1\uffff\1\44\1\uffff\1\141\1\147\1\154\2\44\2\uffff\1\44\1\uffff\1\164\1\142\1\164\1\162\1\44\1\145\1\uffff\1\154\1\44\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\44\1\145\1\142\1\157\1\44\1\164\1\44\1\143\1\164\1\44\1\153\1\142\1\123\1\44\1\171\1\141\1\uffff\1\164\1\162\1\171\3\uffff\1\44\2\145\1\44\1\uffff\2\44\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\44\1\151\1\157\1\uffff\1\44\1\162\1\151\1\141\1\124\1\uffff\1\144\1\162\3\uffff\1\44\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\44\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\44\1\155\1\44\1\uffff\1\145\1\151\1\162\1\44\1\156\1\44\1\142\1\171\1\150\1\162\1\154\1\145\1\155\2\44\2\uffff\1\156\1\uffff\1\44\1\164\1\143\1\uffff\1\44\1\uffff\1\154\1\44\1\141\1\44\1\145\1\162\1\145\1\uffff\1\44\1\uffff\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\44\1\156\1\uffff\2\44\1\163\1\44\1\147\2\uffff\1\164\2\uffff\1\44\1\uffff\1\145\1\44\1\uffff\1\44\2\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\151\1\170\1\171\1\163\2\157\1\162\2\uffff\2\163\1\171\1\162\1\145\1\150\1\157\1\162\1\141\1\150\1\165\10\uffff\1\72\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\2\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\1\154\1\141\1\151\1\156\1\160\1\157\2\172\1\103\1\154\1\156\4\162\1\157\2\uffff\1\145\1\154\1\143\1\154\1\172\1\160\1\162\1\164\1\160\1\162\1\171\1\151\1\172\1\164\1\141\1\164\1\141\1\163\1\164\1\172\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\172\13\uffff\1\154\12\uffff\2\172\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\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\172\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\172\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\172\1\154\3\uffff\1\151\1\172\1\156\1\164\1\141\1\172\1\151\1\162\1\103\2\143\1\145\1\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\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\172\2\156\1\117\2\162\1\164\2\172\1\150\1\157\1\150\1\165\1\162\1\111\1\172\1\163\1\141\1\157\1\145\1\172\1\uffff\1\172\1\143\1\uffff\1\163\1\115\1\142\1\uffff\1\143\1\172\1\157\1\164\1\150\1\126\1\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\145\1\141\1\157\1\164\1\172\1\146\1\172\1\uffff\1\164\1\151\1\156\1\164\1\156\1\172\2\uffff\1\172\1\147\1\172\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\172\2\uffff\1\141\1\163\1\151\1\141\1\154\1\172\1\uffff\1\156\2\172\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\144\1\162\1\147\1\120\1\uffff\1\172\1\uffff\1\141\1\147\1\154\2\172\2\uffff\1\172\1\uffff\1\164\1\142\1\164\1\162\1\172\1\145\1\uffff\1\154\1\172\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\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\123\1\172\1\171\1\141\1\uffff\1\164\1\162\1\171\3\uffff\1\172\2\145\1\172\1\uffff\2\172\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\172\1\151\1\157\1\uffff\1\172\1\162\1\151\1\141\1\124\1\uffff\1\144\1\162\3\uffff\1\172\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\172\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\172\1\155\1\172\1\uffff\1\145\1\151\1\162\1\172\1\156\1\172\1\142\1\171\1\150\1\162\1\154\1\145\1\155\1\172\1\144\2\uffff\1\156\1\uffff\1\172\1\164\1\143\1\uffff\1\172\1\uffff\1\154\1\172\1\141\1\172\1\145\1\162\1\145\1\uffff\1\172\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\172\1\156\1\uffff\2\172\1\163\1\172\1\147\2\uffff\1\164\2\uffff\1\172\1\uffff\1\145\1\172\1\uffff\1\172\2\uffff";
+        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\151\1\170\1\171\1\163\2\157\1\162\2\uffff\2\163\1\171\1\162\1\145\1\150\1\157\1\162\1\141\1\150\1\165\10\uffff\1\72\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\2\162\1\145\1\uffff\1\164\1\145\1\151\1\163\1\141\1\160\1\163\1\154\1\141\1\156\1\151\1\160\1\157\2\172\1\103\1\154\1\156\4\162\1\157\2\uffff\1\145\1\154\1\143\1\154\1\172\1\160\1\162\1\164\1\160\1\162\1\171\1\151\1\172\1\164\1\141\1\164\1\141\1\163\1\164\1\172\1\155\1\157\1\156\1\154\1\151\1\155\1\167\1\154\1\172\14\uffff\1\154\11\uffff\2\172\1\164\1\167\1\145\1\156\1\164\1\145\1\164\1\145\1\150\1\145\1\162\2\143\1\164\1\157\1\156\1\164\2\uffff\1\154\1\163\1\164\1\141\1\172\1\151\1\153\1\164\1\163\1\143\1\162\1\172\1\145\1\157\1\uffff\1\154\1\157\1\147\1\154\1\145\1\157\1\172\2\145\1\141\1\uffff\1\144\1\157\1\165\1\162\1\144\1\145\1\143\1\154\1\164\1\141\1\143\1\141\1\uffff\1\156\1\167\1\142\1\143\1\154\1\145\1\172\1\154\3\uffff\1\151\1\172\1\156\1\164\1\141\1\172\1\151\1\162\1\103\2\143\1\145\1\150\1\143\1\162\1\172\1\141\1\157\2\145\1\154\1\uffff\1\172\1\141\1\172\1\160\1\145\1\164\1\uffff\1\163\1\167\1\142\1\154\2\145\1\157\1\167\1\uffff\1\172\2\156\1\117\2\162\1\164\2\172\1\150\1\157\1\150\1\165\1\162\1\111\1\172\1\163\1\141\1\157\1\145\1\172\1\uffff\1\172\1\143\1\uffff\1\163\1\115\1\142\1\uffff\1\143\1\172\1\157\1\164\1\150\1\126\1\162\1\150\1\164\1\122\1\uffff\1\156\1\163\1\172\1\162\1\154\1\157\1\147\1\164\1\uffff\1\145\1\163\1\141\1\163\1\145\1\141\1\157\1\164\1\172\1\146\1\172\1\uffff\1\164\1\151\1\156\1\164\1\156\1\172\2\uffff\1\172\1\147\1\172\1\154\1\151\1\156\1\uffff\1\145\1\156\1\155\1\172\2\uffff\1\141\1\163\1\151\1\141\1\154\1\172\1\uffff\1\156\2\172\2\157\2\172\1\111\1\143\1\141\1\uffff\1\103\1\171\1\156\1\145\1\141\1\143\2\163\1\151\1\144\1\162\1\147\1\120\1\uffff\1\172\1\uffff\1\141\1\147\1\154\2\172\2\uffff\1\172\1\uffff\1\164\1\142\1\164\1\162\1\172\1\145\1\uffff\1\154\1\172\1\157\1\156\1\145\1\uffff\1\164\1\144\2\uffff\1\154\1\156\2\uffff\1\172\1\145\1\142\1\157\1\172\1\164\1\172\1\143\1\164\1\172\1\153\1\142\1\123\1\172\1\171\1\141\1\uffff\1\164\1\162\1\171\3\uffff\1\172\2\145\1\172\1\uffff\2\172\1\uffff\1\156\1\141\1\124\1\141\1\105\1\165\1\151\1\uffff\1\157\2\154\1\uffff\1\141\1\uffff\1\153\1\151\1\uffff\1\172\1\151\1\157\1\uffff\1\172\1\162\1\151\1\141\1\124\1\uffff\1\144\1\162\3\uffff\1\172\1\147\1\141\1\151\1\154\1\155\1\172\1\146\1\145\1\165\1\154\1\172\1\166\1\uffff\1\154\1\165\1\uffff\1\164\1\157\1\155\1\141\1\102\1\143\1\uffff\1\145\1\142\1\156\3\145\2\172\1\155\1\172\1\uffff\1\145\1\151\1\162\1\172\1\156\1\172\1\142\1\171\1\150\1\162\1\154\1\145\1\155\2\172\2\uffff\1\156\1\uffff\1\172\1\164\1\143\1\uffff\1\172\1\uffff\1\154\1\172\1\141\1\172\1\145\1\162\1\145\1\uffff\1\172\1\uffff\1\163\1\uffff\1\171\1\145\1\uffff\1\145\1\uffff\1\156\1\uffff\2\172\1\156\1\uffff\2\172\1\163\1\172\1\147\2\uffff\1\164\2\uffff\1\172\1\uffff\1\145\1\172\1\uffff\1\172\2\uffff";
     static final String DFA21_acceptS =
-        "\25\uffff\1\52\1\53\13\uffff\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\131\4\uffff\1\173\2\174\1\177\1\u0080\1\uffff\1\23\1\1\1\2\1\165\1\3\1\157\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\175\1\176\1\32\1\10\1\33\1\uffff\1\34\1\15\1\16\1\24\1\17\1\uffff\1\37\1\25\1\164\1\156\3\uffff\1\173\27\uffff\1\52\1\53\35\uffff\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\131\1\163\1\137\1\170\1\uffff\1\171\1\172\1\174\1\177\1\13\1\11\1\14\1\12\1\21\1\22\23\uffff\1\112\1\134\16\uffff\1\133\12\uffff\1\106\14\uffff\1\144\10\uffff\1\162\1\40\1\166\25\uffff\1\142\6\uffff\1\121\10\uffff\1\152\25\uffff\1\145\2\uffff\1\71\3\uffff\1\135\22\uffff\1\70\13\uffff\1\167\6\uffff\1\107\1\141\6\uffff\1\104\4\uffff\1\117\1\146\6\uffff\1\45\12\uffff\1\46\15\uffff\1\116\1\uffff\1\150\5\uffff\1\77\1\155\1\uffff\1\113\6\uffff\1\143\5\uffff\1\42\2\uffff\1\74\1\111\1\uffff\1\136\1\uffff\1\43\20\uffff\1\147\3\uffff\1\100\1\151\1\103\4\uffff\1\105\2\uffff\1\41\7\uffff\1\57\3\uffff\1\153\1\uffff\1\51\2\uffff\1\55\3\uffff\1\61\5\uffff\1\140\2\uffff\1\120\1\110\1\50\15\uffff\1\56\2\uffff\1\102\6\uffff\1\44\12\uffff\1\67\17\uffff\1\132\1\161\1\uffff\1\47\3\uffff\1\72\1\uffff\1\101\7\uffff\1\66\2\uffff\1\54\2\uffff\1\64\1\uffff\1\160\1\uffff\1\62\3\uffff\1\154\5\uffff\1\76\1\63\1\uffff\1\114\1\60\1\uffff\1\75\2\uffff\1\73\1\uffff\1\65\1\115";
+        "\25\uffff\1\52\1\53\13\uffff\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\133\4\uffff\1\175\2\176\1\u0081\1\u0082\1\uffff\1\23\1\1\1\2\1\167\1\3\1\161\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\177\1\u0080\1\32\1\10\1\33\1\uffff\1\34\1\15\1\16\1\24\1\17\1\uffff\1\37\1\25\1\166\1\160\3\uffff\1\175\27\uffff\1\52\1\53\35\uffff\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\133\1\165\1\141\1\172\1\173\1\uffff\1\174\1\176\1\u0081\1\13\1\11\1\14\1\12\1\21\1\22\23\uffff\1\114\1\136\16\uffff\1\135\12\uffff\1\110\14\uffff\1\146\10\uffff\1\164\1\40\1\170\25\uffff\1\144\6\uffff\1\123\10\uffff\1\154\25\uffff\1\147\2\uffff\1\73\3\uffff\1\137\12\uffff\1\57\10\uffff\1\71\13\uffff\1\171\6\uffff\1\111\1\143\6\uffff\1\106\4\uffff\1\121\1\150\6\uffff\1\45\12\uffff\1\46\15\uffff\1\120\1\uffff\1\152\5\uffff\1\101\1\157\1\uffff\1\115\6\uffff\1\145\5\uffff\1\42\2\uffff\1\76\1\113\2\uffff\1\140\1\43\20\uffff\1\151\3\uffff\1\102\1\153\1\105\4\uffff\1\107\2\uffff\1\41\7\uffff\1\72\3\uffff\1\155\1\uffff\1\51\2\uffff\1\55\3\uffff\1\61\5\uffff\1\142\2\uffff\1\122\1\112\1\50\15\uffff\1\56\2\uffff\1\104\6\uffff\1\44\12\uffff\1\67\17\uffff\1\134\1\163\1\uffff\1\47\3\uffff\1\74\1\uffff\1\103\7\uffff\1\66\1\uffff\1\70\1\uffff\1\54\2\uffff\1\64\1\uffff\1\162\1\uffff\1\62\3\uffff\1\156\5\uffff\1\100\1\63\1\uffff\1\116\1\60\1\uffff\1\77\2\uffff\1\75\1\uffff\1\65\1\117";
     static final String DFA21_specialS =
-        "\1\0\u0245\uffff}>";
+        "\1\0\u0247\uffff}>";
     static final String[] DFA21_transitionS = {
             "\11\62\2\61\2\62\1\61\22\62\1\61\1\11\1\57\1\50\1\56\1\10\1\3\1\60\1\44\1\45\1\6\1\4\1\46\1\5\1\14\1\7\1\53\11\54\1\52\1\42\1\13\1\1\1\12\1\15\1\43\32\56\1\51\1\62\1\47\1\55\1\56\1\62\1\30\1\36\1\34\1\35\1\17\1\22\1\56\1\23\1\21\1\56\1\37\2\56\1\41\1\32\1\24\1\56\1\33\1\20\1\31\1\27\1\16\1\40\3\56\1\25\1\2\1\26\uff82\62",
             "\1\63\1\64",
@@ -4409,7 +4467,7 @@
             "\1\123\13\uffff\1\122",
             "\1\125\3\uffff\1\126\3\uffff\1\127",
             "\1\133\7\uffff\1\134\11\uffff\1\132\1\uffff\1\131",
-            "\1\137\3\uffff\1\140\12\uffff\1\141\3\uffff\1\135\1\136\1\uffff\1\142\1\uffff\1\143",
+            "\1\137\3\uffff\1\140\12\uffff\1\141\3\uffff\1\135\1\136\1\uffff\1\143\1\uffff\1\142",
             "\1\145\2\uffff\1\147\6\uffff\1\144\1\146\4\uffff\1\150",
             "\1\151\7\uffff\1\152\5\uffff\1\153",
             "\1\154",
@@ -4436,8 +4494,8 @@
             "",
             "",
             "\1\u0097",
-            "\12\u009a\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099\6\uffff\1\u009a\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099",
-            "\12\u009a\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009a\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
+            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099\6\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\13\uffff\1\u0099",
+            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
             "\1\130\34\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "",
@@ -4547,8 +4605,8 @@
             "",
             "",
             "",
-            "\12\u009a\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009a\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
             "",
+            "\12\u009b\10\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c\22\uffff\1\u009b\2\uffff\1\u009c\1\uffff\3\u009c\5\uffff\1\u009c",
             "",
             "",
             "",
@@ -4644,21 +4702,20 @@
             "\1\u0135",
             "\1\u0136",
             "\1\u0137",
-            "\1\u0138",
-            "\1\u0139",
+            "\1\130\13\uffff\12\130\7\uffff\24\130\1\u0138\5\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u013a",
             "\1\u013b",
             "\1\u013c",
             "\1\u013d",
-            "",
             "\1\u013e",
+            "",
             "\1\u013f",
-            "\1\130\13\uffff\12\130\7\uffff\22\130\1\u0140\7\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0142",
+            "\1\u0140",
+            "\1\130\13\uffff\12\130\7\uffff\22\130\1\u0141\7\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0143",
             "\1\u0144",
-            "",
             "\1\u0145",
+            "",
             "\1\u0146",
             "\1\u0147",
             "\1\u0148",
@@ -4666,39 +4723,39 @@
             "\1\u014a",
             "\1\u014b",
             "\1\u014c",
+            "\1\u014d",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u014e",
             "\1\u014f",
             "\1\u0150",
             "\1\u0151",
             "\1\u0152",
             "\1\u0153",
+            "\1\u0154",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0156",
             "\1\u0157",
             "\1\u0158",
             "\1\u0159",
             "\1\u015a",
             "\1\u015b",
+            "\1\u015c",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u015d",
             "\1\u015e",
             "\1\u015f",
             "\1\u0160",
+            "\1\u0161",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0163",
+            "\1\u0164",
             "",
-            "\1\u0164\16\uffff\1\u0165",
-            "\1\u0166",
+            "\1\u0165\16\uffff\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\u016a",
             "\1\u016b",
             "\1\u016c",
             "\1\u016d",
@@ -4707,15 +4764,16 @@
             "\1\u0170",
             "\1\u0171",
             "\1\u0172",
+            "",
             "\1\u0173",
+            "\1\u0174",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0175",
             "\1\u0176",
             "\1\u0177",
             "\1\u0178",
             "\1\u0179",
-            "",
             "\1\u017a",
+            "",
             "\1\u017b",
             "\1\u017c",
             "\1\u017d",
@@ -4723,50 +4781,50 @@
             "\1\u017f",
             "\1\u0180",
             "\1\u0181",
+            "\1\u0182",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0183",
+            "\1\u0184",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u0185",
             "\1\u0186",
             "\1\u0187",
             "\1\u0188",
             "\1\u0189",
+            "\1\u018a",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u018c",
+            "\1\u018d",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\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\u0195",
             "\1\u0196",
             "\1\u0197",
             "\1\u0198",
             "\1\u0199",
+            "\1\u019a",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u019b",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\4\130\1\u019c\25\130",
+            "\1\u019c",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\4\130\1\u019d\25\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u019f",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u01a0",
             "\1\u01a1",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01a3",
+            "\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",
@@ -4779,104 +4837,104 @@
             "\1\u01b0",
             "\1\u01b1",
             "\1\u01b2",
+            "\1\u01b3",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u01b4",
             "\1\u01b5",
             "\1\u01b6",
+            "\1\u01b7",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u01ba",
             "\1\u01bb",
             "\1\u01bc",
             "\1\u01bd",
+            "\1\u01be",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01bf",
-            "",
             "\1\u01c0",
+            "",
+            "\1\u01c1",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01c2",
             "\1\u01c3",
             "\1\u01c4",
-            "",
             "\1\u01c5",
+            "",
             "\1\u01c6",
-            "",
-            "",
             "\1\u01c7",
             "",
+            "",
             "\1\u01c8",
+            "\1\u01c9",
+            "",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01ca",
             "\1\u01cb",
             "\1\u01cc",
+            "\1\u01cd",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01ce",
+            "\1\u01cf",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01d0",
             "\1\u01d1",
+            "\1\u01d2",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01d3",
             "\1\u01d4",
             "\1\u01d5",
+            "\1\u01d6",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01d7",
             "\1\u01d8",
-            "",
             "\1\u01d9",
+            "",
             "\1\u01da",
             "\1\u01db",
+            "\1\u01dc",
             "",
             "",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01dd",
             "\1\u01de",
+            "\1\u01df",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u01e2",
             "\1\u01e3",
             "\1\u01e4",
             "\1\u01e5",
             "\1\u01e6",
             "\1\u01e7",
             "\1\u01e8",
-            "",
             "\1\u01e9",
+            "",
             "\1\u01ea",
             "\1\u01eb",
-            "",
             "\1\u01ec",
             "",
             "\1\u01ed",
+            "",
             "\1\u01ee",
+            "\1\u01ef",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01f0",
             "\1\u01f1",
+            "\1\u01f2",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01f3",
             "\1\u01f4",
             "\1\u01f5",
             "\1\u01f6",
-            "",
             "\1\u01f7",
+            "",
             "\1\u01f8",
+            "\1\u01f9",
             "",
             "",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u01fa",
             "\1\u01fb",
             "\1\u01fc",
             "\1\u01fd",
@@ -4886,90 +4944,92 @@
             "\1\u0201",
             "\1\u0202",
             "\1\u0203",
+            "\1\u0204",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0205",
-            "",
             "\1\u0206",
-            "\1\u0207",
             "",
+            "\1\u0207",
             "\1\u0208",
+            "",
             "\1\u0209",
             "\1\u020a",
             "\1\u020b",
             "\1\u020c",
             "\1\u020d",
-            "",
             "\1\u020e",
+            "",
             "\1\u020f",
             "\1\u0210",
             "\1\u0211",
             "\1\u0212",
             "\1\u0213",
+            "\1\u0214",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0216",
+            "\1\u0217",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u0218",
             "\1\u0219",
             "\1\u021a",
+            "\1\u021b",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u021c",
+            "\1\u021d",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u021e",
             "\1\u021f",
             "\1\u0220",
             "\1\u0221",
             "\1\u0222",
             "\1\u0223",
             "\1\u0224",
+            "\1\u0225",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u0226",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\3\130\1\u0227\26\130",
             "",
             "",
-            "\1\u0227",
-            "",
-            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0229",
-            "\1\u022a",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "",
+            "\1\u022b",
             "\1\u022c",
+            "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
             "\1\u022e",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0230",
-            "\1\u0231",
-            "\1\u0232",
-            "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0232",
+            "\1\u0233",
             "\1\u0234",
             "",
-            "\1\u0235",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "",
             "\1\u0236",
             "",
             "\1\u0237",
-            "",
             "\1\u0238",
             "",
-            "\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\u023b",
+            "\1\u0239",
+            "",
+            "\1\u023a",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
-            "\1\u023e",
+            "\1\u023d",
+            "",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "\1\u0240",
+            "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
+            "\1\u0242",
             "",
             "",
-            "\1\u0241",
+            "\1\u0243",
             "",
             "",
             "\1\130\13\uffff\12\130\7\uffff\32\130\4\uffff\1\130\1\uffff\32\130",
             "",
-            "\1\u0243",
+            "\1\u0245",
             "\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",
@@ -5007,7 +5067,7 @@
             this.transition = DFA21_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | 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 d93db7c..912ae5e 100644
--- a/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslParser.java
+++ b/org.eclipse.osbp.xtext.perspective.ide/src-gen/org/eclipse/osbp/xtext/perspective/ide/contentassist/antlr/internal/InternalPerspectiveDslParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalPerspectiveDslParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'horizontal'", "'vertical'", "'package'", "'{'", "'}'", "'perspective'", "'process'", "'usertask'", "'iconURI'", "'accessibility'", "'toolbar'", "'eventManager'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'part'", "'view'", "'targetPart'", "'allowedSources'", "'select'", "'readOnlyTable'", "'editableTable'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'title'", "'name'", "'browser'", "'url'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'describedBy'", "'isClosable'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'horizontal'", "'vertical'", "'package'", "'{'", "'}'", "'perspective'", "'process'", "'usertask'", "'icon'", "'accessibility'", "'toolbar'", "'eventManager'", "'sashContainer'", "'orientation'", "'selectedElement'", "'spaceVolume'", "'partStack'", "'synchronize'", "'part'", "'iconURI'", "'view'", "'targetPart'", "'allowedSources'", "'select'", "'readOnlyTable'", "'editableTable'", "'chart'", "'report'", "'organigram'", "'topology'", "'dialog'", "'bpmn'", "'kanban'", "'of'", "'card'", "'welcome'", "'search'", "'in'", "'depth'", "'filterColumns'", "'dataInterchange'", "'title'", "'name'", "'browser'", "'url'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'describedBy'", "'isClosable'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
     };
     public static final int RULE_HEX=6;
     public static final int T__50=50;
@@ -53,6 +53,8 @@
     public static final int T__52=52;
     public static final int T__53=53;
     public static final int T__54=54;
+    public static final int T__133=133;
+    public static final int T__132=132;
     public static final int T__60=60;
     public static final int T__61=61;
     public static final int RULE_ID=4;
@@ -9585,7 +9587,7 @@
                 alt3=2;
                 }
                 break;
-            case 68:
+            case 69:
                 {
                 alt3=3;
                 }
@@ -9695,82 +9697,82 @@
             // InternalPerspectiveDsl.g:2862:1: ( ( rulePerspectiveSelection ) | ( rulePerspectiveTable ) | ( rulePerspectiveChart ) | ( rulePerspectiveReport ) | ( rulePerspectiveOrganization ) | ( rulePerspectiveTopology ) | ( rulePerspectiveDialog ) | ( rulePerspectiveGrid ) | ( rulePerspectiveWelcome ) | ( rulePerspectiveSearch ) | ( rulePerspectiveDataInterchange ) | ( rulePerspectiveBPMN ) | ( rulePerspectiveKanban ) | ( rulePerspectiveTitle ) | ( rulePerspectiveDashboard ) | ( rulePerspectiveBrowser ) )
             int alt4=16;
             switch ( input.LA(1) ) {
-            case 72:
+            case 74:
                 {
                 alt4=1;
                 }
                 break;
-            case 73:
+            case 75:
                 {
                 alt4=2;
                 }
                 break;
-            case 75:
+            case 77:
                 {
                 alt4=3;
                 }
                 break;
-            case 76:
+            case 78:
                 {
                 alt4=4;
                 }
                 break;
-            case 77:
+            case 79:
                 {
                 alt4=5;
                 }
                 break;
-            case 78:
+            case 80:
                 {
                 alt4=6;
                 }
                 break;
-            case 79:
+            case 81:
                 {
                 alt4=7;
                 }
                 break;
-            case 74:
+            case 76:
                 {
                 alt4=8;
                 }
                 break;
-            case 84:
+            case 86:
                 {
                 alt4=9;
                 }
                 break;
-            case 85:
+            case 87:
                 {
                 alt4=10;
                 }
                 break;
-            case 89:
+            case 91:
                 {
                 alt4=11;
                 }
                 break;
-            case 80:
+            case 82:
                 {
                 alt4=12;
                 }
                 break;
-            case 81:
+            case 83:
                 {
                 alt4=13;
                 }
                 break;
-            case 90:
+            case 92:
                 {
                 alt4=14;
                 }
                 break;
-            case 91:
+            case 93:
                 {
                 alt4=15;
                 }
                 break;
-            case 92:
+            case 94:
                 {
                 alt4=16;
                 }
@@ -10676,10 +10678,10 @@
             int alt10=2;
             int LA10_0 = input.LA(1);
 
-            if ( (LA10_0==95) ) {
+            if ( (LA10_0==97) ) {
                 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==96||(LA10_0>=100 && LA10_0<=101)||LA10_0==104||LA10_0==106||(LA10_0>=110 && LA10_0<=118)||LA10_0==120||LA10_0==131) ) {
+            else if ( ((LA10_0>=RULE_ID && LA10_0<=RULE_DECIMAL)||LA10_0==27||(LA10_0>=34 && LA10_0<=35)||LA10_0==40||(LA10_0>=45 && LA10_0<=50)||LA10_0==54||LA10_0==98||(LA10_0>=102 && LA10_0<=103)||LA10_0==106||LA10_0==108||(LA10_0>=112 && LA10_0<=120)||LA10_0==122||LA10_0==133) ) {
                 alt10=2;
             }
             else {
@@ -10770,7 +10772,7 @@
                 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==94||(LA11_1>=96 && LA11_1<=121)||(LA11_1>=127 && LA11_1<=128)||(LA11_1>=130 && LA11_1<=131)) ) {
+                else if ( (LA11_1==EOF||(LA11_1>=RULE_ID && LA11_1<=RULE_DECIMAL)||(LA11_1>=14 && LA11_1<=50)||(LA11_1>=54 && LA11_1<=55)||LA11_1==96||(LA11_1>=98 && LA11_1<=123)||(LA11_1>=129 && LA11_1<=130)||(LA11_1>=132 && LA11_1<=133)) ) {
                     alt11=2;
                 }
                 else {
@@ -10786,7 +10788,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==94||(LA11_2>=96 && LA11_2<=121)||(LA11_2>=127 && LA11_2<=128)||(LA11_2>=130 && LA11_2<=131)) ) {
+                if ( (LA11_2==EOF||(LA11_2>=RULE_ID && LA11_2<=RULE_DECIMAL)||(LA11_2>=14 && LA11_2<=50)||(LA11_2>=54 && LA11_2<=55)||LA11_2==96||(LA11_2>=98 && LA11_2<=123)||(LA11_2>=129 && LA11_2<=130)||(LA11_2>=132 && LA11_2<=133)) ) {
                     alt11=2;
                 }
                 else if ( (LA11_2==13) ) {
@@ -10808,7 +10810,7 @@
                 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==94||(LA11_3>=96 && LA11_3<=121)||(LA11_3>=127 && LA11_3<=128)||(LA11_3>=130 && LA11_3<=131)) ) {
+                else if ( (LA11_3==EOF||(LA11_3>=RULE_ID && LA11_3<=RULE_DECIMAL)||(LA11_3>=14 && LA11_3<=50)||(LA11_3>=54 && LA11_3<=55)||LA11_3==96||(LA11_3>=98 && LA11_3<=123)||(LA11_3>=129 && LA11_3<=130)||(LA11_3>=132 && LA11_3<=133)) ) {
                     alt11=2;
                 }
                 else {
@@ -10824,12 +10826,12 @@
                 {
                 int LA11_4 = input.LA(2);
 
-                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==94||(LA11_4>=96 && LA11_4<=121)||(LA11_4>=127 && LA11_4<=128)||(LA11_4>=130 && LA11_4<=131)) ) {
+                if ( (LA11_4==EOF||(LA11_4>=RULE_ID && LA11_4<=RULE_DECIMAL)||(LA11_4>=14 && LA11_4<=50)||(LA11_4>=54 && LA11_4<=55)||LA11_4==96||(LA11_4>=98 && LA11_4<=123)||(LA11_4>=129 && LA11_4<=130)||(LA11_4>=132 && LA11_4<=133)) ) {
                     alt11=2;
                 }
+                else if ( (LA11_4==13) ) {
+                    alt11=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10846,7 +10848,7 @@
                 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==94||(LA11_5>=96 && LA11_5<=121)||(LA11_5>=127 && LA11_5<=128)||(LA11_5>=130 && LA11_5<=131)) ) {
+                else if ( (LA11_5==EOF||(LA11_5>=RULE_ID && LA11_5<=RULE_DECIMAL)||(LA11_5>=14 && LA11_5<=50)||(LA11_5>=54 && LA11_5<=55)||LA11_5==96||(LA11_5>=98 && LA11_5<=123)||(LA11_5>=129 && LA11_5<=130)||(LA11_5>=132 && LA11_5<=133)) ) {
                     alt11=2;
                 }
                 else {
@@ -10869,13 +10871,11 @@
             case 49:
             case 50:
             case 54:
-            case 96:
-            case 100:
-            case 101:
-            case 104:
+            case 98:
+            case 102:
+            case 103:
             case 106:
-            case 110:
-            case 111:
+            case 108:
             case 112:
             case 113:
             case 114:
@@ -10883,8 +10883,10 @@
             case 116:
             case 117:
             case 118:
+            case 119:
             case 120:
-            case 131:
+            case 122:
+            case 133:
                 {
                 alt11=2;
                 }
@@ -11340,7 +11342,7 @@
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( (LA14_0==102) ) {
+            if ( (LA14_0==104) ) {
                 alt14=1;
             }
             else if ( ((LA14_0>=25 && LA14_0<=27)) ) {
@@ -11448,7 +11450,7 @@
                 {
                 int LA15_2 = input.LA(2);
 
-                if ( (LA15_2==EOF||(LA15_2>=RULE_ID && LA15_2<=RULE_DECIMAL)||LA15_2==27||(LA15_2>=34 && LA15_2<=35)||LA15_2==40||(LA15_2>=45 && LA15_2<=50)||LA15_2==54||LA15_2==96||(LA15_2>=100 && LA15_2<=101)||LA15_2==104||LA15_2==106||(LA15_2>=110 && LA15_2<=118)||LA15_2==120||LA15_2==131) ) {
+                if ( (LA15_2==EOF||(LA15_2>=RULE_ID && LA15_2<=RULE_DECIMAL)||LA15_2==27||(LA15_2>=34 && LA15_2<=35)||LA15_2==40||(LA15_2>=45 && LA15_2<=50)||LA15_2==54||LA15_2==98||(LA15_2>=102 && LA15_2<=103)||LA15_2==106||LA15_2==108||(LA15_2>=112 && LA15_2<=120)||LA15_2==122||LA15_2==133) ) {
                     alt15=4;
                 }
                 else if ( (LA15_2==13) ) {
@@ -11823,12 +11825,12 @@
             if ( (LA17_0==26) ) {
                 int LA17_1 = input.LA(2);
 
-                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==96||(LA17_1>=100 && LA17_1<=101)||LA17_1==104||LA17_1==106||(LA17_1>=110 && LA17_1<=118)||LA17_1==120||LA17_1==131) ) {
+                if ( (LA17_1==EOF||(LA17_1>=RULE_ID && LA17_1<=RULE_DECIMAL)||LA17_1==27||(LA17_1>=34 && LA17_1<=35)||LA17_1==40||(LA17_1>=45 && LA17_1<=50)||LA17_1==54||LA17_1==98||(LA17_1>=102 && LA17_1<=103)||LA17_1==106||LA17_1==108||(LA17_1>=112 && LA17_1<=120)||LA17_1==122||LA17_1==133) ) {
                     alt17=2;
                 }
+                else if ( (LA17_1==26) ) {
+                    alt17=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -12259,7 +12261,7 @@
             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==96||(LA21_0>=100 && LA21_0<=101)||LA21_0==104||LA21_0==106||(LA21_0>=110 && LA21_0<=118)||LA21_0==120||LA21_0==131) ) {
+            else if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_DECIMAL)||LA21_0==27||(LA21_0>=45 && LA21_0<=50)||LA21_0==54||LA21_0==98||(LA21_0>=102 && LA21_0<=103)||LA21_0==106||LA21_0==108||(LA21_0>=112 && LA21_0<=120)||LA21_0==122||LA21_0==133) ) {
                 alt21=2;
             }
             else {
@@ -12627,7 +12629,7 @@
             if ( (LA25_0==43) ) {
                 alt25=1;
             }
-            else if ( (LA25_0==127) ) {
+            else if ( (LA25_0==129) ) {
                 alt25=2;
             }
             else {
@@ -12718,12 +12720,12 @@
                 alt26=1;
                 }
                 break;
-            case 128:
+            case 130:
                 {
                 alt26=2;
                 }
                 break;
-            case 127:
+            case 129:
                 {
                 alt26=3;
                 }
@@ -13312,18 +13314,18 @@
             // InternalPerspectiveDsl.g:3687:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
             int alt29=7;
             switch ( input.LA(1) ) {
-            case 100:
+            case 102:
                 {
                 alt29=1;
                 }
                 break;
-            case 101:
+            case 103:
                 {
                 alt29=2;
                 }
                 break;
             case 50:
-            case 131:
+            case 133:
                 {
                 alt29=3;
                 }
@@ -13335,7 +13337,7 @@
                 alt29=4;
                 }
                 break;
-            case 114:
+            case 116:
                 {
                 alt29=5;
                 }
@@ -13345,7 +13347,7 @@
                 alt29=6;
                 }
                 break;
-            case 115:
+            case 117:
                 {
                 alt29=7;
                 }
@@ -13554,15 +13556,15 @@
             int alt30=2;
             int LA30_0 = input.LA(1);
 
-            if ( (LA30_0==100) ) {
+            if ( (LA30_0==102) ) {
                 int LA30_1 = input.LA(2);
 
-                if ( (LA30_1==54) ) {
-                    alt30=1;
-                }
-                else if ( (LA30_1==101) ) {
+                if ( (LA30_1==103) ) {
                     alt30=2;
                 }
+                else if ( (LA30_1==54) ) {
+                    alt30=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -13739,10 +13741,10 @@
             int alt32=2;
             int LA32_0 = input.LA(1);
 
-            if ( (LA32_0==107) ) {
+            if ( (LA32_0==109) ) {
                 alt32=1;
             }
-            else if ( (LA32_0==98) ) {
+            else if ( (LA32_0==100) ) {
                 alt32=2;
             }
             else {
@@ -13839,10 +13841,10 @@
             int alt33=2;
             int LA33_0 = input.LA(1);
 
-            if ( (LA33_0==44||LA33_0==130) ) {
+            if ( (LA33_0==44||LA33_0==132) ) {
                 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==96||(LA33_0>=100 && LA33_0<=101)||LA33_0==104||LA33_0==106||(LA33_0>=110 && LA33_0<=118)||LA33_0==120||LA33_0==131) ) {
+            else if ( ((LA33_0>=RULE_ID && LA33_0<=RULE_DECIMAL)||LA33_0==27||(LA33_0>=34 && LA33_0<=35)||LA33_0==40||(LA33_0>=45 && LA33_0<=50)||LA33_0==54||LA33_0==98||(LA33_0>=102 && LA33_0<=103)||LA33_0==106||LA33_0==108||(LA33_0>=112 && LA33_0<=120)||LA33_0==122||LA33_0==133) ) {
                 alt33=2;
             }
             else {
@@ -13927,7 +13929,7 @@
             int alt34=2;
             int LA34_0 = input.LA(1);
 
-            if ( (LA34_0==130) ) {
+            if ( (LA34_0==132) ) {
                 alt34=1;
             }
             else if ( (LA34_0==44) ) {
@@ -14034,7 +14036,7 @@
                     throw nvae;
                 }
             }
-            else if ( (LA35_0==31||LA35_0==96) ) {
+            else if ( (LA35_0==31||LA35_0==98) ) {
                 alt35=1;
             }
             else {
@@ -14550,7 +14552,7 @@
             if ( (LA40_0==50) ) {
                 alt40=1;
             }
-            else if ( (LA40_0==131) ) {
+            else if ( (LA40_0==133) ) {
                 alt40=2;
             }
             else {
@@ -14637,10 +14639,10 @@
             int alt41=2;
             int LA41_0 = input.LA(1);
 
-            if ( (LA41_0==121) ) {
+            if ( (LA41_0==123) ) {
                 alt41=1;
             }
-            else if ( (LA41_0==119) ) {
+            else if ( (LA41_0==121) ) {
                 alt41=2;
             }
             else {
@@ -14990,7 +14992,7 @@
             if ( (LA45_0==RULE_ID) ) {
                 alt45=1;
             }
-            else if ( (LA45_0==31||LA45_0==96) ) {
+            else if ( (LA45_0==31||LA45_0==98) ) {
                 alt45=2;
             }
             else {
@@ -15081,10 +15083,10 @@
             int alt46=2;
             int LA46_0 = input.LA(1);
 
-            if ( (LA46_0==RULE_ID||LA46_0==31||LA46_0==96) ) {
+            if ( (LA46_0==RULE_ID||LA46_0==31||LA46_0==98) ) {
                 alt46=1;
             }
-            else if ( (LA46_0==122) ) {
+            else if ( (LA46_0==124) ) {
                 alt46=2;
             }
             else {
@@ -16459,7 +16461,7 @@
             int alt53=2;
             int LA53_0 = input.LA(1);
 
-            if ( (LA53_0==124) ) {
+            if ( (LA53_0==126) ) {
                 alt53=1;
             }
             switch (alt53) {
@@ -16829,7 +16831,7 @@
                 int alt55=2;
                 int LA55_0 = input.LA(1);
 
-                if ( (LA55_0==63||(LA55_0>=67 && LA55_0<=68)) ) {
+                if ( (LA55_0==63||LA55_0==67||LA55_0==69) ) {
                     alt55=1;
                 }
 
@@ -17593,24 +17595,24 @@
 
 
     // $ANTLR start "rule__Perspective__Group_5_0__0__Impl"
-    // InternalPerspectiveDsl.g:4838:1: rule__Perspective__Group_5_0__0__Impl : ( 'iconURI' ) ;
+    // InternalPerspectiveDsl.g:4838:1: rule__Perspective__Group_5_0__0__Impl : ( 'icon' ) ;
     public final void rule__Perspective__Group_5_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:4842:1: ( ( 'iconURI' ) )
-            // InternalPerspectiveDsl.g:4843:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:4842:1: ( ( 'icon' ) )
+            // InternalPerspectiveDsl.g:4843:1: ( 'icon' )
             {
-            // InternalPerspectiveDsl.g:4843:1: ( 'iconURI' )
-            // InternalPerspectiveDsl.g:4844:2: 'iconURI'
+            // InternalPerspectiveDsl.g:4843:1: ( 'icon' )
+            // InternalPerspectiveDsl.g:4844:2: 'icon'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectiveAccess().getIconURIKeyword_5_0_0()); 
+               before(grammarAccess.getPerspectiveAccess().getIconKeyword_5_0_0()); 
             }
             match(input,59,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectiveAccess().getIconURIKeyword_5_0_0()); 
+               after(grammarAccess.getPerspectiveAccess().getIconKeyword_5_0_0()); 
             }
 
             }
@@ -18681,7 +18683,7 @@
                 int alt57=2;
                 int LA57_0 = input.LA(1);
 
-                if ( (LA57_0==63||(LA57_0>=67 && LA57_0<=68)) ) {
+                if ( (LA57_0==63||LA57_0==67||LA57_0==69) ) {
                     alt57=1;
                 }
 
@@ -19929,7 +19931,7 @@
                 int alt58=2;
                 int LA58_0 = input.LA(1);
 
-                if ( (LA58_0==63||(LA58_0>=67 && LA58_0<=68)) ) {
+                if ( (LA58_0==63||LA58_0==67||LA58_0==69) ) {
                     alt58=1;
                 }
 
@@ -20223,7 +20225,7 @@
             // InternalPerspectiveDsl.g:5694:1: ( rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1 )
             // InternalPerspectiveDsl.g:5695:2: rule__PerspectivePartStack__Group_3_1__0__Impl rule__PerspectivePartStack__Group_3_1__1
             {
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_7);
             rule__PerspectivePartStack__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -20252,24 +20254,24 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:5702:1: rule__PerspectivePartStack__Group_3_1__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5702:1: rule__PerspectivePartStack__Group_3_1__0__Impl : ( 'synchronize' ) ;
     public final void rule__PerspectivePartStack__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5706:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5707:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5706:1: ( ( 'synchronize' ) )
+            // InternalPerspectiveDsl.g:5707:1: ( 'synchronize' )
             {
-            // InternalPerspectiveDsl.g:5707:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5708:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5707:1: ( 'synchronize' )
+            // InternalPerspectiveDsl.g:5708:2: 'synchronize'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_1_0()); 
+               before(grammarAccess.getPerspectivePartStackAccess().getSynchronizeKeyword_3_1_0()); 
             }
-            match(input,66,FOLLOW_2); if (state.failed) return ;
+            match(input,68,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_1_0()); 
+               after(grammarAccess.getPerspectivePartStackAccess().getSynchronizeKeyword_3_1_0()); 
             }
 
             }
@@ -20326,26 +20328,26 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:5728:1: rule__PerspectivePartStack__Group_3_1__1__Impl : ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:5728:1: rule__PerspectivePartStack__Group_3_1__1__Impl : ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5732:1: ( ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:5733:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5732:1: ( ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:5733:1: ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:5733:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:5734:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5733:1: ( ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:5734:2: ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1()); 
+               before(grammarAccess.getPerspectivePartStackAccess().getSynchronizeAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:5735:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:5735:3: rule__PerspectivePartStack__ContainerDataAssignment_3_1_1
+            // InternalPerspectiveDsl.g:5735:2: ( rule__PerspectivePartStack__SynchronizeAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:5735:3: rule__PerspectivePartStack__SynchronizeAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__PerspectivePartStack__ContainerDataAssignment_3_1_1();
+            rule__PerspectivePartStack__SynchronizeAssignment_3_1_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20353,7 +20355,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_1_1()); 
+               after(grammarAccess.getPerspectivePartStackAccess().getSynchronizeAssignment_3_1_1()); 
             }
 
             }
@@ -20415,24 +20417,24 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:5756:1: rule__PerspectivePartStack__Group_3_2__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:5756:1: rule__PerspectivePartStack__Group_3_2__0__Impl : ( 'spaceVolume' ) ;
     public final void rule__PerspectivePartStack__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5760:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:5761:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5760:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5761:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5761:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:5762:2: 'accessibility'
+            // InternalPerspectiveDsl.g:5761:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5762:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_2_0()); 
+               before(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_2_0()); 
             }
-            match(input,60,FOLLOW_2); if (state.failed) return ;
+            match(input,66,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_2_0()); 
+               after(grammarAccess.getPerspectivePartStackAccess().getSpaceVolumeKeyword_3_2_0()); 
             }
 
             }
@@ -20489,26 +20491,26 @@
 
 
     // $ANTLR start "rule__PerspectivePartStack__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:5782:1: rule__PerspectivePartStack__Group_3_2__1__Impl : ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:5782:1: rule__PerspectivePartStack__Group_3_2__1__Impl : ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) ) ;
     public final void rule__PerspectivePartStack__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5786:1: ( ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:5787:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5786:1: ( ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:5787:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:5787:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:5788:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5787:1: ( ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:5788:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1()); 
+               before(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:5789:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:5789:3: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1
+            // InternalPerspectiveDsl.g:5789:2: ( rule__PerspectivePartStack__ContainerDataAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:5789:3: rule__PerspectivePartStack__ContainerDataAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
-            rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_2_1();
+            rule__PerspectivePartStack__ContainerDataAssignment_3_2_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20516,7 +20518,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_2_1()); 
+               after(grammarAccess.getPerspectivePartStackAccess().getContainerDataAssignment_3_2_1()); 
             }
 
             }
@@ -20539,15 +20541,178 @@
     // $ANTLR end "rule__PerspectivePartStack__Group_3_2__1__Impl"
 
 
+    // $ANTLR start "rule__PerspectivePartStack__Group_3_3__0"
+    // InternalPerspectiveDsl.g:5798:1: rule__PerspectivePartStack__Group_3_3__0 : rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1 ;
+    public final void rule__PerspectivePartStack__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:5802:1: ( rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1 )
+            // InternalPerspectiveDsl.g:5803:2: rule__PerspectivePartStack__Group_3_3__0__Impl rule__PerspectivePartStack__Group_3_3__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__PerspectivePartStack__Group_3_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PerspectivePartStack__Group_3_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectivePartStack__Group_3_3__0"
+
+
+    // $ANTLR start "rule__PerspectivePartStack__Group_3_3__0__Impl"
+    // InternalPerspectiveDsl.g:5810:1: rule__PerspectivePartStack__Group_3_3__0__Impl : ( 'accessibility' ) ;
+    public final void rule__PerspectivePartStack__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:5814:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:5815:1: ( 'accessibility' )
+            {
+            // InternalPerspectiveDsl.g:5815:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:5816:2: 'accessibility'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_3_0()); 
+            }
+            match(input,60,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityKeyword_3_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectivePartStack__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__PerspectivePartStack__Group_3_3__1"
+    // InternalPerspectiveDsl.g:5825:1: rule__PerspectivePartStack__Group_3_3__1 : rule__PerspectivePartStack__Group_3_3__1__Impl ;
+    public final void rule__PerspectivePartStack__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:5829:1: ( rule__PerspectivePartStack__Group_3_3__1__Impl )
+            // InternalPerspectiveDsl.g:5830:2: rule__PerspectivePartStack__Group_3_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PerspectivePartStack__Group_3_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectivePartStack__Group_3_3__1"
+
+
+    // $ANTLR start "rule__PerspectivePartStack__Group_3_3__1__Impl"
+    // InternalPerspectiveDsl.g:5836:1: rule__PerspectivePartStack__Group_3_3__1__Impl : ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) ) ;
+    public final void rule__PerspectivePartStack__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalPerspectiveDsl.g:5840:1: ( ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) ) )
+            // InternalPerspectiveDsl.g:5841:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) )
+            {
+            // InternalPerspectiveDsl.g:5841:1: ( ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:5842:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_3_1()); 
+            }
+            // InternalPerspectiveDsl.g:5843:2: ( rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:5843:3: rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__PerspectivePartStack__AccessibilityPhraseAssignment_3_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPerspectivePartStackAccess().getAccessibilityPhraseAssignment_3_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerspectivePartStack__Group_3_3__1__Impl"
+
+
     // $ANTLR start "rule__PerspectivePart__Group__0"
-    // InternalPerspectiveDsl.g:5798:1: rule__PerspectivePart__Group__0 : rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 ;
+    // InternalPerspectiveDsl.g:5852: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:5802:1: ( rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 )
-            // InternalPerspectiveDsl.g:5803:2: rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1
+            // InternalPerspectiveDsl.g:5856:1: ( rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1 )
+            // InternalPerspectiveDsl.g:5857:2: rule__PerspectivePart__Group__0__Impl rule__PerspectivePart__Group__1
             {
             pushFollow(FOLLOW_23);
             rule__PerspectivePart__Group__0__Impl();
@@ -20578,23 +20743,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:5810:1: rule__PerspectivePart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:5864:1: rule__PerspectivePart__Group__0__Impl : ( () ) ;
     public final void rule__PerspectivePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5814:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:5815:1: ( () )
+            // InternalPerspectiveDsl.g:5868:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:5869:1: ( () )
             {
-            // InternalPerspectiveDsl.g:5815:1: ( () )
-            // InternalPerspectiveDsl.g:5816:2: ()
+            // InternalPerspectiveDsl.g:5869:1: ( () )
+            // InternalPerspectiveDsl.g:5870:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getPerspectivePartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:5817:2: ()
-            // InternalPerspectiveDsl.g:5817:3: 
+            // InternalPerspectiveDsl.g:5871:2: ()
+            // InternalPerspectiveDsl.g:5871:3: 
             {
             }
 
@@ -20619,14 +20784,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__1"
-    // InternalPerspectiveDsl.g:5825:1: rule__PerspectivePart__Group__1 : rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 ;
+    // InternalPerspectiveDsl.g:5879: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:5829:1: ( rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 )
-            // InternalPerspectiveDsl.g:5830:2: rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2
+            // InternalPerspectiveDsl.g:5883:1: ( rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2 )
+            // InternalPerspectiveDsl.g:5884:2: rule__PerspectivePart__Group__1__Impl rule__PerspectivePart__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectivePart__Group__1__Impl();
@@ -20657,22 +20822,22 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:5837:1: rule__PerspectivePart__Group__1__Impl : ( 'part' ) ;
+    // InternalPerspectiveDsl.g:5891:1: rule__PerspectivePart__Group__1__Impl : ( 'part' ) ;
     public final void rule__PerspectivePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:5841:1: ( ( 'part' ) )
-            // InternalPerspectiveDsl.g:5842:1: ( 'part' )
+            // InternalPerspectiveDsl.g:5895:1: ( ( 'part' ) )
+            // InternalPerspectiveDsl.g:5896:1: ( 'part' )
             {
-            // InternalPerspectiveDsl.g:5842:1: ( 'part' )
-            // InternalPerspectiveDsl.g:5843:2: 'part'
+            // InternalPerspectiveDsl.g:5896:1: ( 'part' )
+            // InternalPerspectiveDsl.g:5897:2: 'part'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getPartKeyword_1()); 
             }
-            match(input,68,FOLLOW_2); if (state.failed) return ;
+            match(input,69,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectivePartAccess().getPartKeyword_1()); 
             }
@@ -20698,14 +20863,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__2"
-    // InternalPerspectiveDsl.g:5852:1: rule__PerspectivePart__Group__2 : rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 ;
+    // InternalPerspectiveDsl.g:5906: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:5856:1: ( rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 )
-            // InternalPerspectiveDsl.g:5857:2: rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3
+            // InternalPerspectiveDsl.g:5910:1: ( rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3 )
+            // InternalPerspectiveDsl.g:5911:2: rule__PerspectivePart__Group__2__Impl rule__PerspectivePart__Group__3
             {
             pushFollow(FOLLOW_24);
             rule__PerspectivePart__Group__2__Impl();
@@ -20736,23 +20901,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:5864:1: rule__PerspectivePart__Group__2__Impl : ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:5918: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:5868:1: ( ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:5869:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5922:1: ( ( ( rule__PerspectivePart__ElementIdAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:5923:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:5869:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
-            // InternalPerspectiveDsl.g:5870:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5923:1: ( ( rule__PerspectivePart__ElementIdAssignment_2 ) )
+            // InternalPerspectiveDsl.g:5924:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getElementIdAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:5871:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
-            // InternalPerspectiveDsl.g:5871:3: rule__PerspectivePart__ElementIdAssignment_2
+            // InternalPerspectiveDsl.g:5925:2: ( rule__PerspectivePart__ElementIdAssignment_2 )
+            // InternalPerspectiveDsl.g:5925:3: rule__PerspectivePart__ElementIdAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ElementIdAssignment_2();
@@ -20787,14 +20952,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__3"
-    // InternalPerspectiveDsl.g:5879:1: rule__PerspectivePart__Group__3 : rule__PerspectivePart__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:5933: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:5883:1: ( rule__PerspectivePart__Group__3__Impl )
-            // InternalPerspectiveDsl.g:5884:2: rule__PerspectivePart__Group__3__Impl
+            // InternalPerspectiveDsl.g:5937:1: ( rule__PerspectivePart__Group__3__Impl )
+            // InternalPerspectiveDsl.g:5938:2: rule__PerspectivePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group__3__Impl();
@@ -20820,23 +20985,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group__3__Impl"
-    // InternalPerspectiveDsl.g:5890:1: rule__PerspectivePart__Group__3__Impl : ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) ;
+    // InternalPerspectiveDsl.g:5944: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:5894:1: ( ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) )
-            // InternalPerspectiveDsl.g:5895:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5948:1: ( ( ( rule__PerspectivePart__UnorderedGroup_3 ) ) )
+            // InternalPerspectiveDsl.g:5949:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
             {
-            // InternalPerspectiveDsl.g:5895:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
-            // InternalPerspectiveDsl.g:5896:2: ( rule__PerspectivePart__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5949:1: ( ( rule__PerspectivePart__UnorderedGroup_3 ) )
+            // InternalPerspectiveDsl.g:5950:2: ( rule__PerspectivePart__UnorderedGroup_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getUnorderedGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:5897:2: ( rule__PerspectivePart__UnorderedGroup_3 )
-            // InternalPerspectiveDsl.g:5897:3: rule__PerspectivePart__UnorderedGroup_3
+            // InternalPerspectiveDsl.g:5951:2: ( rule__PerspectivePart__UnorderedGroup_3 )
+            // InternalPerspectiveDsl.g:5951:3: rule__PerspectivePart__UnorderedGroup_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__UnorderedGroup_3();
@@ -20871,14 +21036,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__0"
-    // InternalPerspectiveDsl.g:5906:1: rule__PerspectivePart__Group_3_0__0 : rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 ;
+    // InternalPerspectiveDsl.g:5960: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:5910:1: ( rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 )
-            // InternalPerspectiveDsl.g:5911:2: rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1
+            // InternalPerspectiveDsl.g:5964:1: ( rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1 )
+            // InternalPerspectiveDsl.g:5965:2: rule__PerspectivePart__Group_3_0__0__Impl rule__PerspectivePart__Group_3_0__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_0__0__Impl();
@@ -20909,17 +21074,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__0__Impl"
-    // InternalPerspectiveDsl.g:5918:1: rule__PerspectivePart__Group_3_0__0__Impl : ( 'spaceVolume' ) ;
+    // InternalPerspectiveDsl.g:5972: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:5922:1: ( ( 'spaceVolume' ) )
-            // InternalPerspectiveDsl.g:5923:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5976:1: ( ( 'spaceVolume' ) )
+            // InternalPerspectiveDsl.g:5977:1: ( 'spaceVolume' )
             {
-            // InternalPerspectiveDsl.g:5923:1: ( 'spaceVolume' )
-            // InternalPerspectiveDsl.g:5924:2: 'spaceVolume'
+            // InternalPerspectiveDsl.g:5977:1: ( 'spaceVolume' )
+            // InternalPerspectiveDsl.g:5978:2: 'spaceVolume'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getSpaceVolumeKeyword_3_0_0()); 
@@ -20950,14 +21115,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__1"
-    // InternalPerspectiveDsl.g:5933:1: rule__PerspectivePart__Group_3_0__1 : rule__PerspectivePart__Group_3_0__1__Impl ;
+    // InternalPerspectiveDsl.g:5987: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:5937:1: ( rule__PerspectivePart__Group_3_0__1__Impl )
-            // InternalPerspectiveDsl.g:5938:2: rule__PerspectivePart__Group_3_0__1__Impl
+            // InternalPerspectiveDsl.g:5991:1: ( rule__PerspectivePart__Group_3_0__1__Impl )
+            // InternalPerspectiveDsl.g:5992:2: rule__PerspectivePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_0__1__Impl();
@@ -20983,23 +21148,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_0__1__Impl"
-    // InternalPerspectiveDsl.g:5944:1: rule__PerspectivePart__Group_3_0__1__Impl : ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:5998: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:5948:1: ( ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) )
-            // InternalPerspectiveDsl.g:5949:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:6002:1: ( ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) ) )
+            // InternalPerspectiveDsl.g:6003:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:5949:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
-            // InternalPerspectiveDsl.g:5950:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:6003:1: ( ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 ) )
+            // InternalPerspectiveDsl.g:6004:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getContainerDataAssignment_3_0_1()); 
             }
-            // InternalPerspectiveDsl.g:5951:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
-            // InternalPerspectiveDsl.g:5951:3: rule__PerspectivePart__ContainerDataAssignment_3_0_1
+            // InternalPerspectiveDsl.g:6005:2: ( rule__PerspectivePart__ContainerDataAssignment_3_0_1 )
+            // InternalPerspectiveDsl.g:6005:3: rule__PerspectivePart__ContainerDataAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ContainerDataAssignment_3_0_1();
@@ -21034,14 +21199,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__0"
-    // InternalPerspectiveDsl.g:5960:1: rule__PerspectivePart__Group_3_1__0 : rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 ;
+    // InternalPerspectiveDsl.g:6014: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:5964:1: ( rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 )
-            // InternalPerspectiveDsl.g:5965:2: rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1
+            // InternalPerspectiveDsl.g:6018:1: ( rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1 )
+            // InternalPerspectiveDsl.g:6019:2: rule__PerspectivePart__Group_3_1__0__Impl rule__PerspectivePart__Group_3_1__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_1__0__Impl();
@@ -21072,17 +21237,17 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__0__Impl"
-    // InternalPerspectiveDsl.g:5972:1: rule__PerspectivePart__Group_3_1__0__Impl : ( 'accessibility' ) ;
+    // InternalPerspectiveDsl.g:6026: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:5976:1: ( ( 'accessibility' ) )
-            // InternalPerspectiveDsl.g:5977:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:6030:1: ( ( 'accessibility' ) )
+            // InternalPerspectiveDsl.g:6031:1: ( 'accessibility' )
             {
-            // InternalPerspectiveDsl.g:5977:1: ( 'accessibility' )
-            // InternalPerspectiveDsl.g:5978:2: 'accessibility'
+            // InternalPerspectiveDsl.g:6031:1: ( 'accessibility' )
+            // InternalPerspectiveDsl.g:6032:2: 'accessibility'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityKeyword_3_1_0()); 
@@ -21113,14 +21278,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__1"
-    // InternalPerspectiveDsl.g:5987:1: rule__PerspectivePart__Group_3_1__1 : rule__PerspectivePart__Group_3_1__1__Impl ;
+    // InternalPerspectiveDsl.g:6041: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:5991:1: ( rule__PerspectivePart__Group_3_1__1__Impl )
-            // InternalPerspectiveDsl.g:5992:2: rule__PerspectivePart__Group_3_1__1__Impl
+            // InternalPerspectiveDsl.g:6045:1: ( rule__PerspectivePart__Group_3_1__1__Impl )
+            // InternalPerspectiveDsl.g:6046:2: rule__PerspectivePart__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_1__1__Impl();
@@ -21146,23 +21311,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_1__1__Impl"
-    // InternalPerspectiveDsl.g:5998:1: rule__PerspectivePart__Group_3_1__1__Impl : ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:6052: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:6002:1: ( ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) )
-            // InternalPerspectiveDsl.g:6003:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:6056:1: ( ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) ) )
+            // InternalPerspectiveDsl.g:6057:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:6003:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
-            // InternalPerspectiveDsl.g:6004:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:6057:1: ( ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 ) )
+            // InternalPerspectiveDsl.g:6058:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getAccessibilityPhraseAssignment_3_1_1()); 
             }
-            // InternalPerspectiveDsl.g:6005:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
-            // InternalPerspectiveDsl.g:6005:3: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1
+            // InternalPerspectiveDsl.g:6059:2: ( rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1 )
+            // InternalPerspectiveDsl.g:6059:3: rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__AccessibilityPhraseAssignment_3_1_1();
@@ -21197,14 +21362,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__0"
-    // InternalPerspectiveDsl.g:6014:1: rule__PerspectivePart__Group_3_2__0 : rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 ;
+    // InternalPerspectiveDsl.g:6068: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:6018:1: ( rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 )
-            // InternalPerspectiveDsl.g:6019:2: rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1
+            // InternalPerspectiveDsl.g:6072:1: ( rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1 )
+            // InternalPerspectiveDsl.g:6073:2: rule__PerspectivePart__Group_3_2__0__Impl rule__PerspectivePart__Group_3_2__1
             {
             pushFollow(FOLLOW_15);
             rule__PerspectivePart__Group_3_2__0__Impl();
@@ -21235,22 +21400,22 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__0__Impl"
-    // InternalPerspectiveDsl.g:6026:1: rule__PerspectivePart__Group_3_2__0__Impl : ( 'iconURI' ) ;
+    // InternalPerspectiveDsl.g:6080: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:6030:1: ( ( 'iconURI' ) )
-            // InternalPerspectiveDsl.g:6031:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:6084:1: ( ( 'iconURI' ) )
+            // InternalPerspectiveDsl.g:6085:1: ( 'iconURI' )
             {
-            // InternalPerspectiveDsl.g:6031:1: ( 'iconURI' )
-            // InternalPerspectiveDsl.g:6032:2: 'iconURI'
+            // InternalPerspectiveDsl.g:6085:1: ( 'iconURI' )
+            // InternalPerspectiveDsl.g:6086:2: 'iconURI'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURIKeyword_3_2_0()); 
             }
-            match(input,59,FOLLOW_2); if (state.failed) return ;
+            match(input,70,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectivePartAccess().getIconURIKeyword_3_2_0()); 
             }
@@ -21276,14 +21441,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__1"
-    // InternalPerspectiveDsl.g:6041:1: rule__PerspectivePart__Group_3_2__1 : rule__PerspectivePart__Group_3_2__1__Impl ;
+    // InternalPerspectiveDsl.g:6095: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:6045:1: ( rule__PerspectivePart__Group_3_2__1__Impl )
-            // InternalPerspectiveDsl.g:6046:2: rule__PerspectivePart__Group_3_2__1__Impl
+            // InternalPerspectiveDsl.g:6099:1: ( rule__PerspectivePart__Group_3_2__1__Impl )
+            // InternalPerspectiveDsl.g:6100:2: rule__PerspectivePart__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_2__1__Impl();
@@ -21309,23 +21474,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_2__1__Impl"
-    // InternalPerspectiveDsl.g:6052:1: rule__PerspectivePart__Group_3_2__1__Impl : ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) ;
+    // InternalPerspectiveDsl.g:6106: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:6056:1: ( ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) )
-            // InternalPerspectiveDsl.g:6057:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:6110:1: ( ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) ) )
+            // InternalPerspectiveDsl.g:6111:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
             {
-            // InternalPerspectiveDsl.g:6057:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
-            // InternalPerspectiveDsl.g:6058:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:6111:1: ( ( rule__PerspectivePart__IconURIAssignment_3_2_1 ) )
+            // InternalPerspectiveDsl.g:6112:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getIconURIAssignment_3_2_1()); 
             }
-            // InternalPerspectiveDsl.g:6059:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
-            // InternalPerspectiveDsl.g:6059:3: rule__PerspectivePart__IconURIAssignment_3_2_1
+            // InternalPerspectiveDsl.g:6113:2: ( rule__PerspectivePart__IconURIAssignment_3_2_1 )
+            // InternalPerspectiveDsl.g:6113:3: rule__PerspectivePart__IconURIAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__IconURIAssignment_3_2_1();
@@ -21360,14 +21525,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__0"
-    // InternalPerspectiveDsl.g:6068:1: rule__PerspectivePart__Group_3_3__0 : rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 ;
+    // InternalPerspectiveDsl.g:6122: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:6072:1: ( rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 )
-            // InternalPerspectiveDsl.g:6073:2: rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1
+            // InternalPerspectiveDsl.g:6126:1: ( rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1 )
+            // InternalPerspectiveDsl.g:6127:2: rule__PerspectivePart__Group_3_3__0__Impl rule__PerspectivePart__Group_3_3__1
             {
             pushFollow(FOLLOW_25);
             rule__PerspectivePart__Group_3_3__0__Impl();
@@ -21398,22 +21563,22 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__0__Impl"
-    // InternalPerspectiveDsl.g:6080:1: rule__PerspectivePart__Group_3_3__0__Impl : ( 'view' ) ;
+    // InternalPerspectiveDsl.g:6134: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:6084:1: ( ( 'view' ) )
-            // InternalPerspectiveDsl.g:6085:1: ( 'view' )
+            // InternalPerspectiveDsl.g:6138:1: ( ( 'view' ) )
+            // InternalPerspectiveDsl.g:6139:1: ( 'view' )
             {
-            // InternalPerspectiveDsl.g:6085:1: ( 'view' )
-            // InternalPerspectiveDsl.g:6086:2: 'view'
+            // InternalPerspectiveDsl.g:6139:1: ( 'view' )
+            // InternalPerspectiveDsl.g:6140:2: 'view'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewKeyword_3_3_0()); 
             }
-            match(input,69,FOLLOW_2); if (state.failed) return ;
+            match(input,71,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectivePartAccess().getViewKeyword_3_3_0()); 
             }
@@ -21439,14 +21604,14 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__1"
-    // InternalPerspectiveDsl.g:6095:1: rule__PerspectivePart__Group_3_3__1 : rule__PerspectivePart__Group_3_3__1__Impl ;
+    // InternalPerspectiveDsl.g:6149: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:6099:1: ( rule__PerspectivePart__Group_3_3__1__Impl )
-            // InternalPerspectiveDsl.g:6100:2: rule__PerspectivePart__Group_3_3__1__Impl
+            // InternalPerspectiveDsl.g:6153:1: ( rule__PerspectivePart__Group_3_3__1__Impl )
+            // InternalPerspectiveDsl.g:6154:2: rule__PerspectivePart__Group_3_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__Group_3_3__1__Impl();
@@ -21472,23 +21637,23 @@
 
 
     // $ANTLR start "rule__PerspectivePart__Group_3_3__1__Impl"
-    // InternalPerspectiveDsl.g:6106:1: rule__PerspectivePart__Group_3_3__1__Impl : ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:6160: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:6110:1: ( ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) )
-            // InternalPerspectiveDsl.g:6111:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:6164:1: ( ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) ) )
+            // InternalPerspectiveDsl.g:6165:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:6111:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
-            // InternalPerspectiveDsl.g:6112:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:6165:1: ( ( rule__PerspectivePart__ViewAssignment_3_3_1 ) )
+            // InternalPerspectiveDsl.g:6166:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectivePartAccess().getViewAssignment_3_3_1()); 
             }
-            // InternalPerspectiveDsl.g:6113:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
-            // InternalPerspectiveDsl.g:6113:3: rule__PerspectivePart__ViewAssignment_3_3_1
+            // InternalPerspectiveDsl.g:6167:2: ( rule__PerspectivePart__ViewAssignment_3_3_1 )
+            // InternalPerspectiveDsl.g:6167:3: rule__PerspectivePart__ViewAssignment_3_3_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectivePart__ViewAssignment_3_3_1();
@@ -21523,14 +21688,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__0"
-    // InternalPerspectiveDsl.g:6122:1: rule__PerspectiveEventManager__Group__0 : rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 ;
+    // InternalPerspectiveDsl.g:6176:1: rule__PerspectiveEventManager__Group__0 : rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 ;
     public final void rule__PerspectiveEventManager__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6126:1: ( rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 )
-            // InternalPerspectiveDsl.g:6127:2: rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1
+            // InternalPerspectiveDsl.g:6180:1: ( rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1 )
+            // InternalPerspectiveDsl.g:6181:2: rule__PerspectiveEventManager__Group__0__Impl rule__PerspectiveEventManager__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveEventManager__Group__0__Impl();
@@ -21561,23 +21726,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6134:1: rule__PerspectiveEventManager__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6188:1: rule__PerspectiveEventManager__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveEventManager__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6138:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6139:1: ( () )
+            // InternalPerspectiveDsl.g:6192:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6193:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6139:1: ( () )
-            // InternalPerspectiveDsl.g:6140:2: ()
+            // InternalPerspectiveDsl.g:6193:1: ( () )
+            // InternalPerspectiveDsl.g:6194:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getPerspectiveEventManagerAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6141:2: ()
-            // InternalPerspectiveDsl.g:6141:3: 
+            // InternalPerspectiveDsl.g:6195:2: ()
+            // InternalPerspectiveDsl.g:6195:3: 
             {
             }
 
@@ -21602,14 +21767,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__1"
-    // InternalPerspectiveDsl.g:6149:1: rule__PerspectiveEventManager__Group__1 : rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 ;
+    // InternalPerspectiveDsl.g:6203:1: rule__PerspectiveEventManager__Group__1 : rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 ;
     public final void rule__PerspectiveEventManager__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6153:1: ( rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 )
-            // InternalPerspectiveDsl.g:6154:2: rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2
+            // InternalPerspectiveDsl.g:6207:1: ( rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2 )
+            // InternalPerspectiveDsl.g:6208:2: rule__PerspectiveEventManager__Group__1__Impl rule__PerspectiveEventManager__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__PerspectiveEventManager__Group__1__Impl();
@@ -21640,23 +21805,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6161:1: rule__PerspectiveEventManager__Group__1__Impl : ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:6215:1: rule__PerspectiveEventManager__Group__1__Impl : ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) ;
     public final void rule__PerspectiveEventManager__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6165:1: ( ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:6166:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:6219:1: ( ( ( rule__PerspectiveEventManager__NameAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:6220:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:6166:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
-            // InternalPerspectiveDsl.g:6167:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:6220:1: ( ( rule__PerspectiveEventManager__NameAssignment_1 ) )
+            // InternalPerspectiveDsl.g:6221:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getNameAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:6168:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
-            // InternalPerspectiveDsl.g:6168:3: rule__PerspectiveEventManager__NameAssignment_1
+            // InternalPerspectiveDsl.g:6222:2: ( rule__PerspectiveEventManager__NameAssignment_1 )
+            // InternalPerspectiveDsl.g:6222:3: rule__PerspectiveEventManager__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEventManager__NameAssignment_1();
@@ -21691,14 +21856,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__2"
-    // InternalPerspectiveDsl.g:6176:1: rule__PerspectiveEventManager__Group__2 : rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 ;
+    // InternalPerspectiveDsl.g:6230:1: rule__PerspectiveEventManager__Group__2 : rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 ;
     public final void rule__PerspectiveEventManager__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6180:1: ( rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 )
-            // InternalPerspectiveDsl.g:6181:2: rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3
+            // InternalPerspectiveDsl.g:6234:1: ( rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3 )
+            // InternalPerspectiveDsl.g:6235:2: rule__PerspectiveEventManager__Group__2__Impl rule__PerspectiveEventManager__Group__3
             {
             pushFollow(FOLLOW_26);
             rule__PerspectiveEventManager__Group__2__Impl();
@@ -21729,17 +21894,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6188:1: rule__PerspectiveEventManager__Group__2__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:6242:1: rule__PerspectiveEventManager__Group__2__Impl : ( '{' ) ;
     public final void rule__PerspectiveEventManager__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6192:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:6193:1: ( '{' )
+            // InternalPerspectiveDsl.g:6246:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:6247:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:6193:1: ( '{' )
-            // InternalPerspectiveDsl.g:6194:2: '{'
+            // InternalPerspectiveDsl.g:6247:1: ( '{' )
+            // InternalPerspectiveDsl.g:6248:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getLeftCurlyBracketKeyword_2()); 
@@ -21770,14 +21935,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__3"
-    // InternalPerspectiveDsl.g:6203:1: rule__PerspectiveEventManager__Group__3 : rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 ;
+    // InternalPerspectiveDsl.g:6257:1: rule__PerspectiveEventManager__Group__3 : rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 ;
     public final void rule__PerspectiveEventManager__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6207:1: ( rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 )
-            // InternalPerspectiveDsl.g:6208:2: rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4
+            // InternalPerspectiveDsl.g:6261:1: ( rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4 )
+            // InternalPerspectiveDsl.g:6262:2: rule__PerspectiveEventManager__Group__3__Impl rule__PerspectiveEventManager__Group__4
             {
             pushFollow(FOLLOW_26);
             rule__PerspectiveEventManager__Group__3__Impl();
@@ -21808,35 +21973,35 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__3__Impl"
-    // InternalPerspectiveDsl.g:6215:1: rule__PerspectiveEventManager__Group__3__Impl : ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) ;
+    // InternalPerspectiveDsl.g:6269:1: rule__PerspectiveEventManager__Group__3__Impl : ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) ;
     public final void rule__PerspectiveEventManager__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6219:1: ( ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) )
-            // InternalPerspectiveDsl.g:6220:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
+            // InternalPerspectiveDsl.g:6273:1: ( ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* ) )
+            // InternalPerspectiveDsl.g:6274:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
             {
-            // InternalPerspectiveDsl.g:6220:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
-            // InternalPerspectiveDsl.g:6221:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
+            // InternalPerspectiveDsl.g:6274:1: ( ( rule__PerspectiveEventManager__EventsAssignment_3 )* )
+            // InternalPerspectiveDsl.g:6275:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getEventsAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:6222:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
+            // InternalPerspectiveDsl.g:6276:2: ( rule__PerspectiveEventManager__EventsAssignment_3 )*
             loop59:
             do {
                 int alt59=2;
                 int LA59_0 = input.LA(1);
 
-                if ( (LA59_0==70) ) {
+                if ( (LA59_0==72) ) {
                     alt59=1;
                 }
 
 
                 switch (alt59) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:6222:3: rule__PerspectiveEventManager__EventsAssignment_3
+            	    // InternalPerspectiveDsl.g:6276:3: rule__PerspectiveEventManager__EventsAssignment_3
             	    {
             	    pushFollow(FOLLOW_27);
             	    rule__PerspectiveEventManager__EventsAssignment_3();
@@ -21877,14 +22042,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__4"
-    // InternalPerspectiveDsl.g:6230:1: rule__PerspectiveEventManager__Group__4 : rule__PerspectiveEventManager__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:6284:1: rule__PerspectiveEventManager__Group__4 : rule__PerspectiveEventManager__Group__4__Impl ;
     public final void rule__PerspectiveEventManager__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6234:1: ( rule__PerspectiveEventManager__Group__4__Impl )
-            // InternalPerspectiveDsl.g:6235:2: rule__PerspectiveEventManager__Group__4__Impl
+            // InternalPerspectiveDsl.g:6288:1: ( rule__PerspectiveEventManager__Group__4__Impl )
+            // InternalPerspectiveDsl.g:6289:2: rule__PerspectiveEventManager__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEventManager__Group__4__Impl();
@@ -21910,17 +22075,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEventManager__Group__4__Impl"
-    // InternalPerspectiveDsl.g:6241:1: rule__PerspectiveEventManager__Group__4__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:6295:1: rule__PerspectiveEventManager__Group__4__Impl : ( '}' ) ;
     public final void rule__PerspectiveEventManager__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6245:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:6246:1: ( '}' )
+            // InternalPerspectiveDsl.g:6299:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:6300:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:6246:1: ( '}' )
-            // InternalPerspectiveDsl.g:6247:2: '}'
+            // InternalPerspectiveDsl.g:6300:1: ( '}' )
+            // InternalPerspectiveDsl.g:6301:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventManagerAccess().getRightCurlyBracketKeyword_4()); 
@@ -21951,14 +22116,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__0"
-    // InternalPerspectiveDsl.g:6257:1: rule__PerspectiveEvent__Group__0 : rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 ;
+    // InternalPerspectiveDsl.g:6311:1: rule__PerspectiveEvent__Group__0 : rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 ;
     public final void rule__PerspectiveEvent__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6261:1: ( rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 )
-            // InternalPerspectiveDsl.g:6262:2: rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1
+            // InternalPerspectiveDsl.g:6315:1: ( rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1 )
+            // InternalPerspectiveDsl.g:6316:2: rule__PerspectiveEvent__Group__0__Impl rule__PerspectiveEvent__Group__1
             {
             pushFollow(FOLLOW_28);
             rule__PerspectiveEvent__Group__0__Impl();
@@ -21989,23 +22154,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6269:1: rule__PerspectiveEvent__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6323:1: rule__PerspectiveEvent__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveEvent__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6273:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6274:1: ( () )
+            // InternalPerspectiveDsl.g:6327:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6328:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6274:1: ( () )
-            // InternalPerspectiveDsl.g:6275:2: ()
+            // InternalPerspectiveDsl.g:6328:1: ( () )
+            // InternalPerspectiveDsl.g:6329:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getPerspectiveEventAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6276:2: ()
-            // InternalPerspectiveDsl.g:6276:3: 
+            // InternalPerspectiveDsl.g:6330:2: ()
+            // InternalPerspectiveDsl.g:6330:3: 
             {
             }
 
@@ -22030,14 +22195,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__1"
-    // InternalPerspectiveDsl.g:6284:1: rule__PerspectiveEvent__Group__1 : rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 ;
+    // InternalPerspectiveDsl.g:6338:1: rule__PerspectiveEvent__Group__1 : rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 ;
     public final void rule__PerspectiveEvent__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6288:1: ( rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 )
-            // InternalPerspectiveDsl.g:6289:2: rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2
+            // InternalPerspectiveDsl.g:6342:1: ( rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2 )
+            // InternalPerspectiveDsl.g:6343:2: rule__PerspectiveEvent__Group__1__Impl rule__PerspectiveEvent__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveEvent__Group__1__Impl();
@@ -22068,22 +22233,22 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6296:1: rule__PerspectiveEvent__Group__1__Impl : ( 'targetPart' ) ;
+    // InternalPerspectiveDsl.g:6350:1: rule__PerspectiveEvent__Group__1__Impl : ( 'targetPart' ) ;
     public final void rule__PerspectiveEvent__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6300:1: ( ( 'targetPart' ) )
-            // InternalPerspectiveDsl.g:6301:1: ( 'targetPart' )
+            // InternalPerspectiveDsl.g:6354:1: ( ( 'targetPart' ) )
+            // InternalPerspectiveDsl.g:6355:1: ( 'targetPart' )
             {
-            // InternalPerspectiveDsl.g:6301:1: ( 'targetPart' )
-            // InternalPerspectiveDsl.g:6302:2: 'targetPart'
+            // InternalPerspectiveDsl.g:6355:1: ( 'targetPart' )
+            // InternalPerspectiveDsl.g:6356:2: 'targetPart'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getTargetPartKeyword_1()); 
             }
-            match(input,70,FOLLOW_2); if (state.failed) return ;
+            match(input,72,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveEventAccess().getTargetPartKeyword_1()); 
             }
@@ -22109,14 +22274,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__2"
-    // InternalPerspectiveDsl.g:6311:1: rule__PerspectiveEvent__Group__2 : rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 ;
+    // InternalPerspectiveDsl.g:6365:1: rule__PerspectiveEvent__Group__2 : rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 ;
     public final void rule__PerspectiveEvent__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6315:1: ( rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 )
-            // InternalPerspectiveDsl.g:6316:2: rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3
+            // InternalPerspectiveDsl.g:6369:1: ( rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3 )
+            // InternalPerspectiveDsl.g:6370:2: rule__PerspectiveEvent__Group__2__Impl rule__PerspectiveEvent__Group__3
             {
             pushFollow(FOLLOW_29);
             rule__PerspectiveEvent__Group__2__Impl();
@@ -22147,23 +22312,23 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6323:1: rule__PerspectiveEvent__Group__2__Impl : ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6377:1: rule__PerspectiveEvent__Group__2__Impl : ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) ;
     public final void rule__PerspectiveEvent__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6327:1: ( ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6328:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6381:1: ( ( ( rule__PerspectiveEvent__TargetAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6382:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6328:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6329:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
+            // InternalPerspectiveDsl.g:6382:1: ( ( rule__PerspectiveEvent__TargetAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6383:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getTargetAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6330:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
-            // InternalPerspectiveDsl.g:6330:3: rule__PerspectiveEvent__TargetAssignment_2
+            // InternalPerspectiveDsl.g:6384:2: ( rule__PerspectiveEvent__TargetAssignment_2 )
+            // InternalPerspectiveDsl.g:6384:3: rule__PerspectiveEvent__TargetAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEvent__TargetAssignment_2();
@@ -22198,14 +22363,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__3"
-    // InternalPerspectiveDsl.g:6338:1: rule__PerspectiveEvent__Group__3 : rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 ;
+    // InternalPerspectiveDsl.g:6392:1: rule__PerspectiveEvent__Group__3 : rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 ;
     public final void rule__PerspectiveEvent__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6342:1: ( rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 )
-            // InternalPerspectiveDsl.g:6343:2: rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4
+            // InternalPerspectiveDsl.g:6396:1: ( rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4 )
+            // InternalPerspectiveDsl.g:6397:2: rule__PerspectiveEvent__Group__3__Impl rule__PerspectiveEvent__Group__4
             {
             pushFollow(FOLLOW_8);
             rule__PerspectiveEvent__Group__3__Impl();
@@ -22236,22 +22401,22 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__3__Impl"
-    // InternalPerspectiveDsl.g:6350:1: rule__PerspectiveEvent__Group__3__Impl : ( 'allowedSources' ) ;
+    // InternalPerspectiveDsl.g:6404:1: rule__PerspectiveEvent__Group__3__Impl : ( 'allowedSources' ) ;
     public final void rule__PerspectiveEvent__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6354:1: ( ( 'allowedSources' ) )
-            // InternalPerspectiveDsl.g:6355:1: ( 'allowedSources' )
+            // InternalPerspectiveDsl.g:6408:1: ( ( 'allowedSources' ) )
+            // InternalPerspectiveDsl.g:6409:1: ( 'allowedSources' )
             {
-            // InternalPerspectiveDsl.g:6355:1: ( 'allowedSources' )
-            // InternalPerspectiveDsl.g:6356:2: 'allowedSources'
+            // InternalPerspectiveDsl.g:6409:1: ( 'allowedSources' )
+            // InternalPerspectiveDsl.g:6410:2: 'allowedSources'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getAllowedSourcesKeyword_3()); 
             }
-            match(input,71,FOLLOW_2); if (state.failed) return ;
+            match(input,73,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveEventAccess().getAllowedSourcesKeyword_3()); 
             }
@@ -22277,14 +22442,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__4"
-    // InternalPerspectiveDsl.g:6365:1: rule__PerspectiveEvent__Group__4 : rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 ;
+    // InternalPerspectiveDsl.g:6419:1: rule__PerspectiveEvent__Group__4 : rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 ;
     public final void rule__PerspectiveEvent__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6369:1: ( rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 )
-            // InternalPerspectiveDsl.g:6370:2: rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5
+            // InternalPerspectiveDsl.g:6423:1: ( rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5 )
+            // InternalPerspectiveDsl.g:6424:2: rule__PerspectiveEvent__Group__4__Impl rule__PerspectiveEvent__Group__5
             {
             pushFollow(FOLLOW_30);
             rule__PerspectiveEvent__Group__4__Impl();
@@ -22315,17 +22480,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__4__Impl"
-    // InternalPerspectiveDsl.g:6377:1: rule__PerspectiveEvent__Group__4__Impl : ( '{' ) ;
+    // InternalPerspectiveDsl.g:6431:1: rule__PerspectiveEvent__Group__4__Impl : ( '{' ) ;
     public final void rule__PerspectiveEvent__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6381:1: ( ( '{' ) )
-            // InternalPerspectiveDsl.g:6382:1: ( '{' )
+            // InternalPerspectiveDsl.g:6435:1: ( ( '{' ) )
+            // InternalPerspectiveDsl.g:6436:1: ( '{' )
             {
-            // InternalPerspectiveDsl.g:6382:1: ( '{' )
-            // InternalPerspectiveDsl.g:6383:2: '{'
+            // InternalPerspectiveDsl.g:6436:1: ( '{' )
+            // InternalPerspectiveDsl.g:6437:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getLeftCurlyBracketKeyword_4()); 
@@ -22356,14 +22521,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__5"
-    // InternalPerspectiveDsl.g:6392:1: rule__PerspectiveEvent__Group__5 : rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 ;
+    // InternalPerspectiveDsl.g:6446:1: rule__PerspectiveEvent__Group__5 : rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 ;
     public final void rule__PerspectiveEvent__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6396:1: ( rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 )
-            // InternalPerspectiveDsl.g:6397:2: rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6
+            // InternalPerspectiveDsl.g:6450:1: ( rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6 )
+            // InternalPerspectiveDsl.g:6451:2: rule__PerspectiveEvent__Group__5__Impl rule__PerspectiveEvent__Group__6
             {
             pushFollow(FOLLOW_30);
             rule__PerspectiveEvent__Group__5__Impl();
@@ -22394,22 +22559,22 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__5__Impl"
-    // InternalPerspectiveDsl.g:6404:1: rule__PerspectiveEvent__Group__5__Impl : ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) ;
+    // InternalPerspectiveDsl.g:6458:1: rule__PerspectiveEvent__Group__5__Impl : ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) ;
     public final void rule__PerspectiveEvent__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6408:1: ( ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) )
-            // InternalPerspectiveDsl.g:6409:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
+            // InternalPerspectiveDsl.g:6462:1: ( ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* ) )
+            // InternalPerspectiveDsl.g:6463:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
             {
-            // InternalPerspectiveDsl.g:6409:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
-            // InternalPerspectiveDsl.g:6410:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
+            // InternalPerspectiveDsl.g:6463:1: ( ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )* )
+            // InternalPerspectiveDsl.g:6464:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getAllowedsourcesAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:6411:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
+            // InternalPerspectiveDsl.g:6465:2: ( rule__PerspectiveEvent__AllowedsourcesAssignment_5 )*
             loop60:
             do {
                 int alt60=2;
@@ -22422,7 +22587,7 @@
 
                 switch (alt60) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:6411:3: rule__PerspectiveEvent__AllowedsourcesAssignment_5
+            	    // InternalPerspectiveDsl.g:6465:3: rule__PerspectiveEvent__AllowedsourcesAssignment_5
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__PerspectiveEvent__AllowedsourcesAssignment_5();
@@ -22463,14 +22628,14 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__6"
-    // InternalPerspectiveDsl.g:6419:1: rule__PerspectiveEvent__Group__6 : rule__PerspectiveEvent__Group__6__Impl ;
+    // InternalPerspectiveDsl.g:6473:1: rule__PerspectiveEvent__Group__6 : rule__PerspectiveEvent__Group__6__Impl ;
     public final void rule__PerspectiveEvent__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6423:1: ( rule__PerspectiveEvent__Group__6__Impl )
-            // InternalPerspectiveDsl.g:6424:2: rule__PerspectiveEvent__Group__6__Impl
+            // InternalPerspectiveDsl.g:6477:1: ( rule__PerspectiveEvent__Group__6__Impl )
+            // InternalPerspectiveDsl.g:6478:2: rule__PerspectiveEvent__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveEvent__Group__6__Impl();
@@ -22496,17 +22661,17 @@
 
 
     // $ANTLR start "rule__PerspectiveEvent__Group__6__Impl"
-    // InternalPerspectiveDsl.g:6430:1: rule__PerspectiveEvent__Group__6__Impl : ( '}' ) ;
+    // InternalPerspectiveDsl.g:6484:1: rule__PerspectiveEvent__Group__6__Impl : ( '}' ) ;
     public final void rule__PerspectiveEvent__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6434:1: ( ( '}' ) )
-            // InternalPerspectiveDsl.g:6435:1: ( '}' )
+            // InternalPerspectiveDsl.g:6488:1: ( ( '}' ) )
+            // InternalPerspectiveDsl.g:6489:1: ( '}' )
             {
-            // InternalPerspectiveDsl.g:6435:1: ( '}' )
-            // InternalPerspectiveDsl.g:6436:2: '}'
+            // InternalPerspectiveDsl.g:6489:1: ( '}' )
+            // InternalPerspectiveDsl.g:6490:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveEventAccess().getRightCurlyBracketKeyword_6()); 
@@ -22537,14 +22702,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__0"
-    // InternalPerspectiveDsl.g:6446:1: rule__PerspectiveSelection__Group__0 : rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 ;
+    // InternalPerspectiveDsl.g:6500: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:6450:1: ( rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 )
-            // InternalPerspectiveDsl.g:6451:2: rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1
+            // InternalPerspectiveDsl.g:6504:1: ( rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1 )
+            // InternalPerspectiveDsl.g:6505:2: rule__PerspectiveSelection__Group__0__Impl rule__PerspectiveSelection__Group__1
             {
             pushFollow(FOLLOW_31);
             rule__PerspectiveSelection__Group__0__Impl();
@@ -22575,23 +22740,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6458:1: rule__PerspectiveSelection__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6512:1: rule__PerspectiveSelection__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSelection__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6462:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6463:1: ( () )
+            // InternalPerspectiveDsl.g:6516:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6517:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6463:1: ( () )
-            // InternalPerspectiveDsl.g:6464:2: ()
+            // InternalPerspectiveDsl.g:6517:1: ( () )
+            // InternalPerspectiveDsl.g:6518:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getPerspectiveSelectionAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6465:2: ()
-            // InternalPerspectiveDsl.g:6465:3: 
+            // InternalPerspectiveDsl.g:6519:2: ()
+            // InternalPerspectiveDsl.g:6519:3: 
             {
             }
 
@@ -22616,14 +22781,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__1"
-    // InternalPerspectiveDsl.g:6473:1: rule__PerspectiveSelection__Group__1 : rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 ;
+    // InternalPerspectiveDsl.g:6527: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:6477:1: ( rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 )
-            // InternalPerspectiveDsl.g:6478:2: rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2
+            // InternalPerspectiveDsl.g:6531:1: ( rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2 )
+            // InternalPerspectiveDsl.g:6532:2: rule__PerspectiveSelection__Group__1__Impl rule__PerspectiveSelection__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSelection__Group__1__Impl();
@@ -22654,22 +22819,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6485:1: rule__PerspectiveSelection__Group__1__Impl : ( 'select' ) ;
+    // InternalPerspectiveDsl.g:6539:1: rule__PerspectiveSelection__Group__1__Impl : ( 'select' ) ;
     public final void rule__PerspectiveSelection__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6489:1: ( ( 'select' ) )
-            // InternalPerspectiveDsl.g:6490:1: ( 'select' )
+            // InternalPerspectiveDsl.g:6543:1: ( ( 'select' ) )
+            // InternalPerspectiveDsl.g:6544:1: ( 'select' )
             {
-            // InternalPerspectiveDsl.g:6490:1: ( 'select' )
-            // InternalPerspectiveDsl.g:6491:2: 'select'
+            // InternalPerspectiveDsl.g:6544:1: ( 'select' )
+            // InternalPerspectiveDsl.g:6545:2: 'select'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getSelectKeyword_1()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSelectionAccess().getSelectKeyword_1()); 
             }
@@ -22695,14 +22860,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__2"
-    // InternalPerspectiveDsl.g:6500:1: rule__PerspectiveSelection__Group__2 : rule__PerspectiveSelection__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6554: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:6504:1: ( rule__PerspectiveSelection__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6505:2: rule__PerspectiveSelection__Group__2__Impl
+            // InternalPerspectiveDsl.g:6558:1: ( rule__PerspectiveSelection__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6559:2: rule__PerspectiveSelection__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSelection__Group__2__Impl();
@@ -22728,23 +22893,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSelection__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6511:1: rule__PerspectiveSelection__Group__2__Impl : ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6565: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:6515:1: ( ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6516:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6569:1: ( ( ( rule__PerspectiveSelection__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6570:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6516:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6517:2: ( rule__PerspectiveSelection__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6570:1: ( ( rule__PerspectiveSelection__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6571:2: ( rule__PerspectiveSelection__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSelectionAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6518:2: ( rule__PerspectiveSelection__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6518:3: rule__PerspectiveSelection__RefAssignment_2
+            // InternalPerspectiveDsl.g:6572:2: ( rule__PerspectiveSelection__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6572:3: rule__PerspectiveSelection__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSelection__RefAssignment_2();
@@ -22779,14 +22944,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__0"
-    // InternalPerspectiveDsl.g:6527:1: rule__PerspectiveTable__Group__0 : rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 ;
+    // InternalPerspectiveDsl.g:6581: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:6531:1: ( rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 )
-            // InternalPerspectiveDsl.g:6532:2: rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1
+            // InternalPerspectiveDsl.g:6585:1: ( rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1 )
+            // InternalPerspectiveDsl.g:6586:2: rule__PerspectiveTable__Group__0__Impl rule__PerspectiveTable__Group__1
             {
             pushFollow(FOLLOW_32);
             rule__PerspectiveTable__Group__0__Impl();
@@ -22817,23 +22982,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6539:1: rule__PerspectiveTable__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6593:1: rule__PerspectiveTable__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTable__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6543:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6544:1: ( () )
+            // InternalPerspectiveDsl.g:6597:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6598:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6544:1: ( () )
-            // InternalPerspectiveDsl.g:6545:2: ()
+            // InternalPerspectiveDsl.g:6598:1: ( () )
+            // InternalPerspectiveDsl.g:6599:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getPerspectiveTableAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6546:2: ()
-            // InternalPerspectiveDsl.g:6546:3: 
+            // InternalPerspectiveDsl.g:6600:2: ()
+            // InternalPerspectiveDsl.g:6600:3: 
             {
             }
 
@@ -22858,14 +23023,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__1"
-    // InternalPerspectiveDsl.g:6554:1: rule__PerspectiveTable__Group__1 : rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 ;
+    // InternalPerspectiveDsl.g:6608: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:6558:1: ( rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 )
-            // InternalPerspectiveDsl.g:6559:2: rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2
+            // InternalPerspectiveDsl.g:6612:1: ( rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2 )
+            // InternalPerspectiveDsl.g:6613:2: rule__PerspectiveTable__Group__1__Impl rule__PerspectiveTable__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveTable__Group__1__Impl();
@@ -22896,22 +23061,22 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6566:1: rule__PerspectiveTable__Group__1__Impl : ( 'readOnlyTable' ) ;
+    // InternalPerspectiveDsl.g:6620:1: rule__PerspectiveTable__Group__1__Impl : ( 'readOnlyTable' ) ;
     public final void rule__PerspectiveTable__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6570:1: ( ( 'readOnlyTable' ) )
-            // InternalPerspectiveDsl.g:6571:1: ( 'readOnlyTable' )
+            // InternalPerspectiveDsl.g:6624:1: ( ( 'readOnlyTable' ) )
+            // InternalPerspectiveDsl.g:6625:1: ( 'readOnlyTable' )
             {
-            // InternalPerspectiveDsl.g:6571:1: ( 'readOnlyTable' )
-            // InternalPerspectiveDsl.g:6572:2: 'readOnlyTable'
+            // InternalPerspectiveDsl.g:6625:1: ( 'readOnlyTable' )
+            // InternalPerspectiveDsl.g:6626:2: 'readOnlyTable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getReadOnlyTableKeyword_1()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveTableAccess().getReadOnlyTableKeyword_1()); 
             }
@@ -22937,14 +23102,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__2"
-    // InternalPerspectiveDsl.g:6581:1: rule__PerspectiveTable__Group__2 : rule__PerspectiveTable__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6635: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:6585:1: ( rule__PerspectiveTable__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6586:2: rule__PerspectiveTable__Group__2__Impl
+            // InternalPerspectiveDsl.g:6639:1: ( rule__PerspectiveTable__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6640:2: rule__PerspectiveTable__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTable__Group__2__Impl();
@@ -22970,23 +23135,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTable__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6592:1: rule__PerspectiveTable__Group__2__Impl : ( ( rule__PerspectiveTable__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6646: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:6596:1: ( ( ( rule__PerspectiveTable__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6597:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6650:1: ( ( ( rule__PerspectiveTable__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6651:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6597:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6598:2: ( rule__PerspectiveTable__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6651:1: ( ( rule__PerspectiveTable__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6652:2: ( rule__PerspectiveTable__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTableAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6599:2: ( rule__PerspectiveTable__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6599:3: rule__PerspectiveTable__RefAssignment_2
+            // InternalPerspectiveDsl.g:6653:2: ( rule__PerspectiveTable__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6653:3: rule__PerspectiveTable__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTable__RefAssignment_2();
@@ -23021,14 +23186,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__0"
-    // InternalPerspectiveDsl.g:6608:1: rule__PerspectiveGrid__Group__0 : rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 ;
+    // InternalPerspectiveDsl.g:6662: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:6612:1: ( rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 )
-            // InternalPerspectiveDsl.g:6613:2: rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1
+            // InternalPerspectiveDsl.g:6666:1: ( rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1 )
+            // InternalPerspectiveDsl.g:6667:2: rule__PerspectiveGrid__Group__0__Impl rule__PerspectiveGrid__Group__1
             {
             pushFollow(FOLLOW_33);
             rule__PerspectiveGrid__Group__0__Impl();
@@ -23059,23 +23224,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6620:1: rule__PerspectiveGrid__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6674:1: rule__PerspectiveGrid__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveGrid__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6624:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6625:1: ( () )
+            // InternalPerspectiveDsl.g:6678:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6679:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6625:1: ( () )
-            // InternalPerspectiveDsl.g:6626:2: ()
+            // InternalPerspectiveDsl.g:6679:1: ( () )
+            // InternalPerspectiveDsl.g:6680:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getPerspectiveGridAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6627:2: ()
-            // InternalPerspectiveDsl.g:6627:3: 
+            // InternalPerspectiveDsl.g:6681:2: ()
+            // InternalPerspectiveDsl.g:6681:3: 
             {
             }
 
@@ -23100,14 +23265,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__1"
-    // InternalPerspectiveDsl.g:6635:1: rule__PerspectiveGrid__Group__1 : rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 ;
+    // InternalPerspectiveDsl.g:6689: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:6639:1: ( rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 )
-            // InternalPerspectiveDsl.g:6640:2: rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2
+            // InternalPerspectiveDsl.g:6693:1: ( rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2 )
+            // InternalPerspectiveDsl.g:6694:2: rule__PerspectiveGrid__Group__1__Impl rule__PerspectiveGrid__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveGrid__Group__1__Impl();
@@ -23138,22 +23303,22 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6647:1: rule__PerspectiveGrid__Group__1__Impl : ( 'editableTable' ) ;
+    // InternalPerspectiveDsl.g:6701:1: rule__PerspectiveGrid__Group__1__Impl : ( 'editableTable' ) ;
     public final void rule__PerspectiveGrid__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6651:1: ( ( 'editableTable' ) )
-            // InternalPerspectiveDsl.g:6652:1: ( 'editableTable' )
+            // InternalPerspectiveDsl.g:6705:1: ( ( 'editableTable' ) )
+            // InternalPerspectiveDsl.g:6706:1: ( 'editableTable' )
             {
-            // InternalPerspectiveDsl.g:6652:1: ( 'editableTable' )
-            // InternalPerspectiveDsl.g:6653:2: 'editableTable'
+            // InternalPerspectiveDsl.g:6706:1: ( 'editableTable' )
+            // InternalPerspectiveDsl.g:6707:2: 'editableTable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getEditableTableKeyword_1()); 
             }
-            match(input,74,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveGridAccess().getEditableTableKeyword_1()); 
             }
@@ -23179,14 +23344,14 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__2"
-    // InternalPerspectiveDsl.g:6662:1: rule__PerspectiveGrid__Group__2 : rule__PerspectiveGrid__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6716: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:6666:1: ( rule__PerspectiveGrid__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6667:2: rule__PerspectiveGrid__Group__2__Impl
+            // InternalPerspectiveDsl.g:6720:1: ( rule__PerspectiveGrid__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6721:2: rule__PerspectiveGrid__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveGrid__Group__2__Impl();
@@ -23212,23 +23377,23 @@
 
 
     // $ANTLR start "rule__PerspectiveGrid__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6673:1: rule__PerspectiveGrid__Group__2__Impl : ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6727: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:6677:1: ( ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6678:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6731:1: ( ( ( rule__PerspectiveGrid__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6732:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6678:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6679:2: ( rule__PerspectiveGrid__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6732:1: ( ( rule__PerspectiveGrid__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6733:2: ( rule__PerspectiveGrid__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveGridAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6680:2: ( rule__PerspectiveGrid__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6680:3: rule__PerspectiveGrid__RefAssignment_2
+            // InternalPerspectiveDsl.g:6734:2: ( rule__PerspectiveGrid__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6734:3: rule__PerspectiveGrid__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveGrid__RefAssignment_2();
@@ -23263,14 +23428,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__0"
-    // InternalPerspectiveDsl.g:6689:1: rule__PerspectiveChart__Group__0 : rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 ;
+    // InternalPerspectiveDsl.g:6743: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:6693:1: ( rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 )
-            // InternalPerspectiveDsl.g:6694:2: rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1
+            // InternalPerspectiveDsl.g:6747:1: ( rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1 )
+            // InternalPerspectiveDsl.g:6748:2: rule__PerspectiveChart__Group__0__Impl rule__PerspectiveChart__Group__1
             {
             pushFollow(FOLLOW_34);
             rule__PerspectiveChart__Group__0__Impl();
@@ -23301,23 +23466,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6701:1: rule__PerspectiveChart__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6755:1: rule__PerspectiveChart__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveChart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6705:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6706:1: ( () )
+            // InternalPerspectiveDsl.g:6759:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6760:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6706:1: ( () )
-            // InternalPerspectiveDsl.g:6707:2: ()
+            // InternalPerspectiveDsl.g:6760:1: ( () )
+            // InternalPerspectiveDsl.g:6761:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getPerspectiveChartAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6708:2: ()
-            // InternalPerspectiveDsl.g:6708:3: 
+            // InternalPerspectiveDsl.g:6762:2: ()
+            // InternalPerspectiveDsl.g:6762:3: 
             {
             }
 
@@ -23342,14 +23507,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__1"
-    // InternalPerspectiveDsl.g:6716:1: rule__PerspectiveChart__Group__1 : rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 ;
+    // InternalPerspectiveDsl.g:6770: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:6720:1: ( rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 )
-            // InternalPerspectiveDsl.g:6721:2: rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2
+            // InternalPerspectiveDsl.g:6774:1: ( rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2 )
+            // InternalPerspectiveDsl.g:6775:2: rule__PerspectiveChart__Group__1__Impl rule__PerspectiveChart__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveChart__Group__1__Impl();
@@ -23380,22 +23545,22 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6728:1: rule__PerspectiveChart__Group__1__Impl : ( 'chart' ) ;
+    // InternalPerspectiveDsl.g:6782:1: rule__PerspectiveChart__Group__1__Impl : ( 'chart' ) ;
     public final void rule__PerspectiveChart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6732:1: ( ( 'chart' ) )
-            // InternalPerspectiveDsl.g:6733:1: ( 'chart' )
+            // InternalPerspectiveDsl.g:6786:1: ( ( 'chart' ) )
+            // InternalPerspectiveDsl.g:6787:1: ( 'chart' )
             {
-            // InternalPerspectiveDsl.g:6733:1: ( 'chart' )
-            // InternalPerspectiveDsl.g:6734:2: 'chart'
+            // InternalPerspectiveDsl.g:6787:1: ( 'chart' )
+            // InternalPerspectiveDsl.g:6788:2: 'chart'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getChartKeyword_1()); 
             }
-            match(input,75,FOLLOW_2); if (state.failed) return ;
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveChartAccess().getChartKeyword_1()); 
             }
@@ -23421,14 +23586,14 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__2"
-    // InternalPerspectiveDsl.g:6743:1: rule__PerspectiveChart__Group__2 : rule__PerspectiveChart__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6797: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:6747:1: ( rule__PerspectiveChart__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6748:2: rule__PerspectiveChart__Group__2__Impl
+            // InternalPerspectiveDsl.g:6801:1: ( rule__PerspectiveChart__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6802:2: rule__PerspectiveChart__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveChart__Group__2__Impl();
@@ -23454,23 +23619,23 @@
 
 
     // $ANTLR start "rule__PerspectiveChart__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6754:1: rule__PerspectiveChart__Group__2__Impl : ( ( rule__PerspectiveChart__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6808: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:6758:1: ( ( ( rule__PerspectiveChart__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6759:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6812:1: ( ( ( rule__PerspectiveChart__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6813:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6759:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6760:2: ( rule__PerspectiveChart__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6813:1: ( ( rule__PerspectiveChart__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6814:2: ( rule__PerspectiveChart__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveChartAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6761:2: ( rule__PerspectiveChart__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6761:3: rule__PerspectiveChart__RefAssignment_2
+            // InternalPerspectiveDsl.g:6815:2: ( rule__PerspectiveChart__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6815:3: rule__PerspectiveChart__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveChart__RefAssignment_2();
@@ -23505,14 +23670,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__0"
-    // InternalPerspectiveDsl.g:6770:1: rule__PerspectiveReport__Group__0 : rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 ;
+    // InternalPerspectiveDsl.g:6824: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:6774:1: ( rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 )
-            // InternalPerspectiveDsl.g:6775:2: rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1
+            // InternalPerspectiveDsl.g:6828:1: ( rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1 )
+            // InternalPerspectiveDsl.g:6829:2: rule__PerspectiveReport__Group__0__Impl rule__PerspectiveReport__Group__1
             {
             pushFollow(FOLLOW_35);
             rule__PerspectiveReport__Group__0__Impl();
@@ -23543,23 +23708,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6782:1: rule__PerspectiveReport__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6836:1: rule__PerspectiveReport__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveReport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6786:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6787:1: ( () )
+            // InternalPerspectiveDsl.g:6840:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6841:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6787:1: ( () )
-            // InternalPerspectiveDsl.g:6788:2: ()
+            // InternalPerspectiveDsl.g:6841:1: ( () )
+            // InternalPerspectiveDsl.g:6842:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getPerspectiveReportAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6789:2: ()
-            // InternalPerspectiveDsl.g:6789:3: 
+            // InternalPerspectiveDsl.g:6843:2: ()
+            // InternalPerspectiveDsl.g:6843:3: 
             {
             }
 
@@ -23584,14 +23749,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__1"
-    // InternalPerspectiveDsl.g:6797:1: rule__PerspectiveReport__Group__1 : rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 ;
+    // InternalPerspectiveDsl.g:6851: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:6801:1: ( rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 )
-            // InternalPerspectiveDsl.g:6802:2: rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2
+            // InternalPerspectiveDsl.g:6855:1: ( rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2 )
+            // InternalPerspectiveDsl.g:6856:2: rule__PerspectiveReport__Group__1__Impl rule__PerspectiveReport__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveReport__Group__1__Impl();
@@ -23622,22 +23787,22 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6809:1: rule__PerspectiveReport__Group__1__Impl : ( 'report' ) ;
+    // InternalPerspectiveDsl.g:6863:1: rule__PerspectiveReport__Group__1__Impl : ( 'report' ) ;
     public final void rule__PerspectiveReport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6813:1: ( ( 'report' ) )
-            // InternalPerspectiveDsl.g:6814:1: ( 'report' )
+            // InternalPerspectiveDsl.g:6867:1: ( ( 'report' ) )
+            // InternalPerspectiveDsl.g:6868:1: ( 'report' )
             {
-            // InternalPerspectiveDsl.g:6814:1: ( 'report' )
-            // InternalPerspectiveDsl.g:6815:2: 'report'
+            // InternalPerspectiveDsl.g:6868:1: ( 'report' )
+            // InternalPerspectiveDsl.g:6869:2: 'report'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getReportKeyword_1()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveReportAccess().getReportKeyword_1()); 
             }
@@ -23663,14 +23828,14 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__2"
-    // InternalPerspectiveDsl.g:6824:1: rule__PerspectiveReport__Group__2 : rule__PerspectiveReport__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6878: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:6828:1: ( rule__PerspectiveReport__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6829:2: rule__PerspectiveReport__Group__2__Impl
+            // InternalPerspectiveDsl.g:6882:1: ( rule__PerspectiveReport__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6883:2: rule__PerspectiveReport__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveReport__Group__2__Impl();
@@ -23696,23 +23861,23 @@
 
 
     // $ANTLR start "rule__PerspectiveReport__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6835:1: rule__PerspectiveReport__Group__2__Impl : ( ( rule__PerspectiveReport__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6889: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:6839:1: ( ( ( rule__PerspectiveReport__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6840:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6893:1: ( ( ( rule__PerspectiveReport__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6894:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6840:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6841:2: ( rule__PerspectiveReport__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6894:1: ( ( rule__PerspectiveReport__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6895:2: ( rule__PerspectiveReport__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveReportAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6842:2: ( rule__PerspectiveReport__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6842:3: rule__PerspectiveReport__RefAssignment_2
+            // InternalPerspectiveDsl.g:6896:2: ( rule__PerspectiveReport__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6896:3: rule__PerspectiveReport__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveReport__RefAssignment_2();
@@ -23747,14 +23912,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__0"
-    // InternalPerspectiveDsl.g:6851:1: rule__PerspectiveOrganization__Group__0 : rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 ;
+    // InternalPerspectiveDsl.g:6905: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:6855:1: ( rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 )
-            // InternalPerspectiveDsl.g:6856:2: rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1
+            // InternalPerspectiveDsl.g:6909:1: ( rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1 )
+            // InternalPerspectiveDsl.g:6910:2: rule__PerspectiveOrganization__Group__0__Impl rule__PerspectiveOrganization__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__PerspectiveOrganization__Group__0__Impl();
@@ -23785,23 +23950,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6863:1: rule__PerspectiveOrganization__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6917:1: rule__PerspectiveOrganization__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveOrganization__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6867:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6868:1: ( () )
+            // InternalPerspectiveDsl.g:6921:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:6922:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6868:1: ( () )
-            // InternalPerspectiveDsl.g:6869:2: ()
+            // InternalPerspectiveDsl.g:6922:1: ( () )
+            // InternalPerspectiveDsl.g:6923:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getPerspectiveOrganizationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6870:2: ()
-            // InternalPerspectiveDsl.g:6870:3: 
+            // InternalPerspectiveDsl.g:6924:2: ()
+            // InternalPerspectiveDsl.g:6924:3: 
             {
             }
 
@@ -23826,14 +23991,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__1"
-    // InternalPerspectiveDsl.g:6878:1: rule__PerspectiveOrganization__Group__1 : rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 ;
+    // InternalPerspectiveDsl.g:6932: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:6882:1: ( rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 )
-            // InternalPerspectiveDsl.g:6883:2: rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2
+            // InternalPerspectiveDsl.g:6936:1: ( rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2 )
+            // InternalPerspectiveDsl.g:6937:2: rule__PerspectiveOrganization__Group__1__Impl rule__PerspectiveOrganization__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveOrganization__Group__1__Impl();
@@ -23864,22 +24029,22 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6890:1: rule__PerspectiveOrganization__Group__1__Impl : ( 'organigram' ) ;
+    // InternalPerspectiveDsl.g:6944:1: rule__PerspectiveOrganization__Group__1__Impl : ( 'organigram' ) ;
     public final void rule__PerspectiveOrganization__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6894:1: ( ( 'organigram' ) )
-            // InternalPerspectiveDsl.g:6895:1: ( 'organigram' )
+            // InternalPerspectiveDsl.g:6948:1: ( ( 'organigram' ) )
+            // InternalPerspectiveDsl.g:6949:1: ( 'organigram' )
             {
-            // InternalPerspectiveDsl.g:6895:1: ( 'organigram' )
-            // InternalPerspectiveDsl.g:6896:2: 'organigram'
+            // InternalPerspectiveDsl.g:6949:1: ( 'organigram' )
+            // InternalPerspectiveDsl.g:6950:2: 'organigram'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getOrganigramKeyword_1()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveOrganizationAccess().getOrganigramKeyword_1()); 
             }
@@ -23905,14 +24070,14 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__2"
-    // InternalPerspectiveDsl.g:6905:1: rule__PerspectiveOrganization__Group__2 : rule__PerspectiveOrganization__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:6959: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:6909:1: ( rule__PerspectiveOrganization__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6910:2: rule__PerspectiveOrganization__Group__2__Impl
+            // InternalPerspectiveDsl.g:6963:1: ( rule__PerspectiveOrganization__Group__2__Impl )
+            // InternalPerspectiveDsl.g:6964:2: rule__PerspectiveOrganization__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveOrganization__Group__2__Impl();
@@ -23938,23 +24103,23 @@
 
 
     // $ANTLR start "rule__PerspectiveOrganization__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6916:1: rule__PerspectiveOrganization__Group__2__Impl : ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:6970: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:6920:1: ( ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:6921:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6974:1: ( ( ( rule__PerspectiveOrganization__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:6975:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:6921:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:6922:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6975:1: ( ( rule__PerspectiveOrganization__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:6976:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveOrganizationAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:6923:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:6923:3: rule__PerspectiveOrganization__RefAssignment_2
+            // InternalPerspectiveDsl.g:6977:2: ( rule__PerspectiveOrganization__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:6977:3: rule__PerspectiveOrganization__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveOrganization__RefAssignment_2();
@@ -23989,14 +24154,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__0"
-    // InternalPerspectiveDsl.g:6932:1: rule__PerspectiveTopology__Group__0 : rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 ;
+    // InternalPerspectiveDsl.g:6986: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:6936:1: ( rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 )
-            // InternalPerspectiveDsl.g:6937:2: rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1
+            // InternalPerspectiveDsl.g:6990:1: ( rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1 )
+            // InternalPerspectiveDsl.g:6991:2: rule__PerspectiveTopology__Group__0__Impl rule__PerspectiveTopology__Group__1
             {
             pushFollow(FOLLOW_37);
             rule__PerspectiveTopology__Group__0__Impl();
@@ -24027,23 +24192,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__0__Impl"
-    // InternalPerspectiveDsl.g:6944:1: rule__PerspectiveTopology__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:6998:1: rule__PerspectiveTopology__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTopology__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6948:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:6949:1: ( () )
+            // InternalPerspectiveDsl.g:7002:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7003:1: ( () )
             {
-            // InternalPerspectiveDsl.g:6949:1: ( () )
-            // InternalPerspectiveDsl.g:6950:2: ()
+            // InternalPerspectiveDsl.g:7003:1: ( () )
+            // InternalPerspectiveDsl.g:7004:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getPerspectiveTopologyAction_0()); 
             }
-            // InternalPerspectiveDsl.g:6951:2: ()
-            // InternalPerspectiveDsl.g:6951:3: 
+            // InternalPerspectiveDsl.g:7005:2: ()
+            // InternalPerspectiveDsl.g:7005:3: 
             {
             }
 
@@ -24068,14 +24233,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__1"
-    // InternalPerspectiveDsl.g:6959:1: rule__PerspectiveTopology__Group__1 : rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 ;
+    // InternalPerspectiveDsl.g:7013: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:6963:1: ( rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 )
-            // InternalPerspectiveDsl.g:6964:2: rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2
+            // InternalPerspectiveDsl.g:7017:1: ( rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2 )
+            // InternalPerspectiveDsl.g:7018:2: rule__PerspectiveTopology__Group__1__Impl rule__PerspectiveTopology__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveTopology__Group__1__Impl();
@@ -24106,22 +24271,22 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__1__Impl"
-    // InternalPerspectiveDsl.g:6971:1: rule__PerspectiveTopology__Group__1__Impl : ( 'topology' ) ;
+    // InternalPerspectiveDsl.g:7025:1: rule__PerspectiveTopology__Group__1__Impl : ( 'topology' ) ;
     public final void rule__PerspectiveTopology__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:6975:1: ( ( 'topology' ) )
-            // InternalPerspectiveDsl.g:6976:1: ( 'topology' )
+            // InternalPerspectiveDsl.g:7029:1: ( ( 'topology' ) )
+            // InternalPerspectiveDsl.g:7030:1: ( 'topology' )
             {
-            // InternalPerspectiveDsl.g:6976:1: ( 'topology' )
-            // InternalPerspectiveDsl.g:6977:2: 'topology'
+            // InternalPerspectiveDsl.g:7030:1: ( 'topology' )
+            // InternalPerspectiveDsl.g:7031:2: 'topology'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getTopologyKeyword_1()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveTopologyAccess().getTopologyKeyword_1()); 
             }
@@ -24147,14 +24312,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__2"
-    // InternalPerspectiveDsl.g:6986:1: rule__PerspectiveTopology__Group__2 : rule__PerspectiveTopology__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7040: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:6990:1: ( rule__PerspectiveTopology__Group__2__Impl )
-            // InternalPerspectiveDsl.g:6991:2: rule__PerspectiveTopology__Group__2__Impl
+            // InternalPerspectiveDsl.g:7044:1: ( rule__PerspectiveTopology__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7045:2: rule__PerspectiveTopology__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTopology__Group__2__Impl();
@@ -24180,23 +24345,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTopology__Group__2__Impl"
-    // InternalPerspectiveDsl.g:6997:1: rule__PerspectiveTopology__Group__2__Impl : ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7051: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:7001:1: ( ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7002:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7055:1: ( ( ( rule__PerspectiveTopology__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7056:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7002:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7003:2: ( rule__PerspectiveTopology__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7056:1: ( ( rule__PerspectiveTopology__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7057:2: ( rule__PerspectiveTopology__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTopologyAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7004:2: ( rule__PerspectiveTopology__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:7004:3: rule__PerspectiveTopology__RefAssignment_2
+            // InternalPerspectiveDsl.g:7058:2: ( rule__PerspectiveTopology__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7058:3: rule__PerspectiveTopology__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTopology__RefAssignment_2();
@@ -24231,14 +24396,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__0"
-    // InternalPerspectiveDsl.g:7013:1: rule__PerspectiveDialog__Group__0 : rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 ;
+    // InternalPerspectiveDsl.g:7067: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:7017:1: ( rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 )
-            // InternalPerspectiveDsl.g:7018:2: rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1
+            // InternalPerspectiveDsl.g:7071:1: ( rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1 )
+            // InternalPerspectiveDsl.g:7072:2: rule__PerspectiveDialog__Group__0__Impl rule__PerspectiveDialog__Group__1
             {
             pushFollow(FOLLOW_38);
             rule__PerspectiveDialog__Group__0__Impl();
@@ -24269,23 +24434,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7025:1: rule__PerspectiveDialog__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7079:1: rule__PerspectiveDialog__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDialog__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7029:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7030:1: ( () )
+            // InternalPerspectiveDsl.g:7083:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7084:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7030:1: ( () )
-            // InternalPerspectiveDsl.g:7031:2: ()
+            // InternalPerspectiveDsl.g:7084:1: ( () )
+            // InternalPerspectiveDsl.g:7085:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getPerspectiveDialogAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7032:2: ()
-            // InternalPerspectiveDsl.g:7032:3: 
+            // InternalPerspectiveDsl.g:7086:2: ()
+            // InternalPerspectiveDsl.g:7086:3: 
             {
             }
 
@@ -24310,14 +24475,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__1"
-    // InternalPerspectiveDsl.g:7040:1: rule__PerspectiveDialog__Group__1 : rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 ;
+    // InternalPerspectiveDsl.g:7094: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:7044:1: ( rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 )
-            // InternalPerspectiveDsl.g:7045:2: rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2
+            // InternalPerspectiveDsl.g:7098:1: ( rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2 )
+            // InternalPerspectiveDsl.g:7099:2: rule__PerspectiveDialog__Group__1__Impl rule__PerspectiveDialog__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveDialog__Group__1__Impl();
@@ -24348,22 +24513,22 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7052:1: rule__PerspectiveDialog__Group__1__Impl : ( 'dialog' ) ;
+    // InternalPerspectiveDsl.g:7106:1: rule__PerspectiveDialog__Group__1__Impl : ( 'dialog' ) ;
     public final void rule__PerspectiveDialog__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7056:1: ( ( 'dialog' ) )
-            // InternalPerspectiveDsl.g:7057:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7110:1: ( ( 'dialog' ) )
+            // InternalPerspectiveDsl.g:7111:1: ( 'dialog' )
             {
-            // InternalPerspectiveDsl.g:7057:1: ( 'dialog' )
-            // InternalPerspectiveDsl.g:7058:2: 'dialog'
+            // InternalPerspectiveDsl.g:7111:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7112:2: 'dialog'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getDialogKeyword_1()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveDialogAccess().getDialogKeyword_1()); 
             }
@@ -24389,14 +24554,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__2"
-    // InternalPerspectiveDsl.g:7067:1: rule__PerspectiveDialog__Group__2 : rule__PerspectiveDialog__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7121: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:7071:1: ( rule__PerspectiveDialog__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7072:2: rule__PerspectiveDialog__Group__2__Impl
+            // InternalPerspectiveDsl.g:7125:1: ( rule__PerspectiveDialog__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7126:2: rule__PerspectiveDialog__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDialog__Group__2__Impl();
@@ -24422,23 +24587,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDialog__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7078:1: rule__PerspectiveDialog__Group__2__Impl : ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7132: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:7082:1: ( ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7083:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7136:1: ( ( ( rule__PerspectiveDialog__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7137:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7083:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7084:2: ( rule__PerspectiveDialog__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7137:1: ( ( rule__PerspectiveDialog__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7138:2: ( rule__PerspectiveDialog__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDialogAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7085:2: ( rule__PerspectiveDialog__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:7085:3: rule__PerspectiveDialog__RefAssignment_2
+            // InternalPerspectiveDsl.g:7139:2: ( rule__PerspectiveDialog__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7139:3: rule__PerspectiveDialog__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDialog__RefAssignment_2();
@@ -24473,14 +24638,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__0"
-    // InternalPerspectiveDsl.g:7094:1: rule__PerspectiveBPMN__Group__0 : rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 ;
+    // InternalPerspectiveDsl.g:7148: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:7098:1: ( rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 )
-            // InternalPerspectiveDsl.g:7099:2: rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1
+            // InternalPerspectiveDsl.g:7152:1: ( rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1 )
+            // InternalPerspectiveDsl.g:7153:2: rule__PerspectiveBPMN__Group__0__Impl rule__PerspectiveBPMN__Group__1
             {
             pushFollow(FOLLOW_39);
             rule__PerspectiveBPMN__Group__0__Impl();
@@ -24511,23 +24676,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7106:1: rule__PerspectiveBPMN__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7160:1: rule__PerspectiveBPMN__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveBPMN__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7110:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7111:1: ( () )
+            // InternalPerspectiveDsl.g:7164:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7165:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7111:1: ( () )
-            // InternalPerspectiveDsl.g:7112:2: ()
+            // InternalPerspectiveDsl.g:7165:1: ( () )
+            // InternalPerspectiveDsl.g:7166:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBPMNAccess().getPerspectiveBPMNAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7113:2: ()
-            // InternalPerspectiveDsl.g:7113:3: 
+            // InternalPerspectiveDsl.g:7167:2: ()
+            // InternalPerspectiveDsl.g:7167:3: 
             {
             }
 
@@ -24552,14 +24717,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__1"
-    // InternalPerspectiveDsl.g:7121:1: rule__PerspectiveBPMN__Group__1 : rule__PerspectiveBPMN__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:7175: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:7125:1: ( rule__PerspectiveBPMN__Group__1__Impl )
-            // InternalPerspectiveDsl.g:7126:2: rule__PerspectiveBPMN__Group__1__Impl
+            // InternalPerspectiveDsl.g:7179:1: ( rule__PerspectiveBPMN__Group__1__Impl )
+            // InternalPerspectiveDsl.g:7180:2: rule__PerspectiveBPMN__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveBPMN__Group__1__Impl();
@@ -24585,22 +24750,22 @@
 
 
     // $ANTLR start "rule__PerspectiveBPMN__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7132:1: rule__PerspectiveBPMN__Group__1__Impl : ( 'bpmn' ) ;
+    // InternalPerspectiveDsl.g:7186:1: rule__PerspectiveBPMN__Group__1__Impl : ( 'bpmn' ) ;
     public final void rule__PerspectiveBPMN__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7136:1: ( ( 'bpmn' ) )
-            // InternalPerspectiveDsl.g:7137:1: ( 'bpmn' )
+            // InternalPerspectiveDsl.g:7190:1: ( ( 'bpmn' ) )
+            // InternalPerspectiveDsl.g:7191:1: ( 'bpmn' )
             {
-            // InternalPerspectiveDsl.g:7137:1: ( 'bpmn' )
-            // InternalPerspectiveDsl.g:7138:2: 'bpmn'
+            // InternalPerspectiveDsl.g:7191:1: ( 'bpmn' )
+            // InternalPerspectiveDsl.g:7192:2: 'bpmn'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveBPMNAccess().getBpmnKeyword_1()); 
             }
@@ -24626,14 +24791,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__0"
-    // InternalPerspectiveDsl.g:7148:1: rule__PerspectiveKanban__Group__0 : rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 ;
+    // InternalPerspectiveDsl.g:7202: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:7152:1: ( rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 )
-            // InternalPerspectiveDsl.g:7153:2: rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1
+            // InternalPerspectiveDsl.g:7206:1: ( rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1 )
+            // InternalPerspectiveDsl.g:7207:2: rule__PerspectiveKanban__Group__0__Impl rule__PerspectiveKanban__Group__1
             {
             pushFollow(FOLLOW_40);
             rule__PerspectiveKanban__Group__0__Impl();
@@ -24664,23 +24829,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7160:1: rule__PerspectiveKanban__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7214:1: rule__PerspectiveKanban__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveKanban__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7164:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7165:1: ( () )
+            // InternalPerspectiveDsl.g:7218:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7219:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7165:1: ( () )
-            // InternalPerspectiveDsl.g:7166:2: ()
+            // InternalPerspectiveDsl.g:7219:1: ( () )
+            // InternalPerspectiveDsl.g:7220:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getPerspectiveKanbanAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7167:2: ()
-            // InternalPerspectiveDsl.g:7167:3: 
+            // InternalPerspectiveDsl.g:7221:2: ()
+            // InternalPerspectiveDsl.g:7221:3: 
             {
             }
 
@@ -24705,14 +24870,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__1"
-    // InternalPerspectiveDsl.g:7175:1: rule__PerspectiveKanban__Group__1 : rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 ;
+    // InternalPerspectiveDsl.g:7229: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:7179:1: ( rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 )
-            // InternalPerspectiveDsl.g:7180:2: rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2
+            // InternalPerspectiveDsl.g:7233:1: ( rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2 )
+            // InternalPerspectiveDsl.g:7234:2: rule__PerspectiveKanban__Group__1__Impl rule__PerspectiveKanban__Group__2
             {
             pushFollow(FOLLOW_41);
             rule__PerspectiveKanban__Group__1__Impl();
@@ -24743,22 +24908,22 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7187:1: rule__PerspectiveKanban__Group__1__Impl : ( 'kanban' ) ;
+    // InternalPerspectiveDsl.g:7241:1: rule__PerspectiveKanban__Group__1__Impl : ( 'kanban' ) ;
     public final void rule__PerspectiveKanban__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7191:1: ( ( 'kanban' ) )
-            // InternalPerspectiveDsl.g:7192:1: ( 'kanban' )
+            // InternalPerspectiveDsl.g:7245:1: ( ( 'kanban' ) )
+            // InternalPerspectiveDsl.g:7246:1: ( 'kanban' )
             {
-            // InternalPerspectiveDsl.g:7192:1: ( 'kanban' )
-            // InternalPerspectiveDsl.g:7193:2: 'kanban'
+            // InternalPerspectiveDsl.g:7246:1: ( 'kanban' )
+            // InternalPerspectiveDsl.g:7247:2: 'kanban'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getKanbanKeyword_1()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveKanbanAccess().getKanbanKeyword_1()); 
             }
@@ -24784,14 +24949,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__2"
-    // InternalPerspectiveDsl.g:7202:1: rule__PerspectiveKanban__Group__2 : rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 ;
+    // InternalPerspectiveDsl.g:7256: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:7206:1: ( rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 )
-            // InternalPerspectiveDsl.g:7207:2: rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3
+            // InternalPerspectiveDsl.g:7260:1: ( rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3 )
+            // InternalPerspectiveDsl.g:7261:2: rule__PerspectiveKanban__Group__2__Impl rule__PerspectiveKanban__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__2__Impl();
@@ -24822,22 +24987,22 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7214:1: rule__PerspectiveKanban__Group__2__Impl : ( 'of' ) ;
+    // InternalPerspectiveDsl.g:7268:1: rule__PerspectiveKanban__Group__2__Impl : ( 'of' ) ;
     public final void rule__PerspectiveKanban__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7218:1: ( ( 'of' ) )
-            // InternalPerspectiveDsl.g:7219:1: ( 'of' )
+            // InternalPerspectiveDsl.g:7272:1: ( ( 'of' ) )
+            // InternalPerspectiveDsl.g:7273:1: ( 'of' )
             {
-            // InternalPerspectiveDsl.g:7219:1: ( 'of' )
-            // InternalPerspectiveDsl.g:7220:2: 'of'
+            // InternalPerspectiveDsl.g:7273:1: ( 'of' )
+            // InternalPerspectiveDsl.g:7274:2: 'of'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getOfKeyword_2()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveKanbanAccess().getOfKeyword_2()); 
             }
@@ -24863,14 +25028,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__3"
-    // InternalPerspectiveDsl.g:7229:1: rule__PerspectiveKanban__Group__3 : rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 ;
+    // InternalPerspectiveDsl.g:7283: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:7233:1: ( rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 )
-            // InternalPerspectiveDsl.g:7234:2: rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4
+            // InternalPerspectiveDsl.g:7287:1: ( rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4 )
+            // InternalPerspectiveDsl.g:7288:2: rule__PerspectiveKanban__Group__3__Impl rule__PerspectiveKanban__Group__4
             {
             pushFollow(FOLLOW_42);
             rule__PerspectiveKanban__Group__3__Impl();
@@ -24901,23 +25066,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7241:1: rule__PerspectiveKanban__Group__3__Impl : ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:7295: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:7245:1: ( ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:7246:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7299:1: ( ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:7300:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:7246:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
-            // InternalPerspectiveDsl.g:7247:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7300:1: ( ( rule__PerspectiveKanban__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7301:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDtoRefAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:7248:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
-            // InternalPerspectiveDsl.g:7248:3: rule__PerspectiveKanban__DtoRefAssignment_3
+            // InternalPerspectiveDsl.g:7302:2: ( rule__PerspectiveKanban__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7302:3: rule__PerspectiveKanban__DtoRefAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__DtoRefAssignment_3();
@@ -24952,14 +25117,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__4"
-    // InternalPerspectiveDsl.g:7256:1: rule__PerspectiveKanban__Group__4 : rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 ;
+    // InternalPerspectiveDsl.g:7310: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:7260:1: ( rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 )
-            // InternalPerspectiveDsl.g:7261:2: rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5
+            // InternalPerspectiveDsl.g:7314:1: ( rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5 )
+            // InternalPerspectiveDsl.g:7315:2: rule__PerspectiveKanban__Group__4__Impl rule__PerspectiveKanban__Group__5
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__4__Impl();
@@ -24990,22 +25155,22 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__4__Impl"
-    // InternalPerspectiveDsl.g:7268:1: rule__PerspectiveKanban__Group__4__Impl : ( 'card' ) ;
+    // InternalPerspectiveDsl.g:7322:1: rule__PerspectiveKanban__Group__4__Impl : ( 'card' ) ;
     public final void rule__PerspectiveKanban__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7272:1: ( ( 'card' ) )
-            // InternalPerspectiveDsl.g:7273:1: ( 'card' )
+            // InternalPerspectiveDsl.g:7326:1: ( ( 'card' ) )
+            // InternalPerspectiveDsl.g:7327:1: ( 'card' )
             {
-            // InternalPerspectiveDsl.g:7273:1: ( 'card' )
-            // InternalPerspectiveDsl.g:7274:2: 'card'
+            // InternalPerspectiveDsl.g:7327:1: ( 'card' )
+            // InternalPerspectiveDsl.g:7328:2: 'card'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardKeyword_4()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveKanbanAccess().getCardKeyword_4()); 
             }
@@ -25031,14 +25196,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__5"
-    // InternalPerspectiveDsl.g:7283:1: rule__PerspectiveKanban__Group__5 : rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 ;
+    // InternalPerspectiveDsl.g:7337: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:7287:1: ( rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 )
-            // InternalPerspectiveDsl.g:7288:2: rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6
+            // InternalPerspectiveDsl.g:7341:1: ( rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6 )
+            // InternalPerspectiveDsl.g:7342:2: rule__PerspectiveKanban__Group__5__Impl rule__PerspectiveKanban__Group__6
             {
             pushFollow(FOLLOW_38);
             rule__PerspectiveKanban__Group__5__Impl();
@@ -25069,23 +25234,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__5__Impl"
-    // InternalPerspectiveDsl.g:7295:1: rule__PerspectiveKanban__Group__5__Impl : ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) ;
+    // InternalPerspectiveDsl.g:7349: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:7299:1: ( ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) )
-            // InternalPerspectiveDsl.g:7300:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
+            // InternalPerspectiveDsl.g:7353:1: ( ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) ) )
+            // InternalPerspectiveDsl.g:7354:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
             {
-            // InternalPerspectiveDsl.g:7300:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
-            // InternalPerspectiveDsl.g:7301:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
+            // InternalPerspectiveDsl.g:7354:1: ( ( rule__PerspectiveKanban__CardRefAssignment_5 ) )
+            // InternalPerspectiveDsl.g:7355:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getCardRefAssignment_5()); 
             }
-            // InternalPerspectiveDsl.g:7302:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
-            // InternalPerspectiveDsl.g:7302:3: rule__PerspectiveKanban__CardRefAssignment_5
+            // InternalPerspectiveDsl.g:7356:2: ( rule__PerspectiveKanban__CardRefAssignment_5 )
+            // InternalPerspectiveDsl.g:7356:3: rule__PerspectiveKanban__CardRefAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__CardRefAssignment_5();
@@ -25120,14 +25285,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__6"
-    // InternalPerspectiveDsl.g:7310:1: rule__PerspectiveKanban__Group__6 : rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 ;
+    // InternalPerspectiveDsl.g:7364: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:7314:1: ( rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 )
-            // InternalPerspectiveDsl.g:7315:2: rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7
+            // InternalPerspectiveDsl.g:7368:1: ( rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7 )
+            // InternalPerspectiveDsl.g:7369:2: rule__PerspectiveKanban__Group__6__Impl rule__PerspectiveKanban__Group__7
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveKanban__Group__6__Impl();
@@ -25158,22 +25323,22 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__6__Impl"
-    // InternalPerspectiveDsl.g:7322:1: rule__PerspectiveKanban__Group__6__Impl : ( 'dialog' ) ;
+    // InternalPerspectiveDsl.g:7376:1: rule__PerspectiveKanban__Group__6__Impl : ( 'dialog' ) ;
     public final void rule__PerspectiveKanban__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7326:1: ( ( 'dialog' ) )
-            // InternalPerspectiveDsl.g:7327:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7380:1: ( ( 'dialog' ) )
+            // InternalPerspectiveDsl.g:7381:1: ( 'dialog' )
             {
-            // InternalPerspectiveDsl.g:7327:1: ( 'dialog' )
-            // InternalPerspectiveDsl.g:7328:2: 'dialog'
+            // InternalPerspectiveDsl.g:7381:1: ( 'dialog' )
+            // InternalPerspectiveDsl.g:7382:2: 'dialog'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogKeyword_6()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveKanbanAccess().getDialogKeyword_6()); 
             }
@@ -25199,14 +25364,14 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__7"
-    // InternalPerspectiveDsl.g:7337:1: rule__PerspectiveKanban__Group__7 : rule__PerspectiveKanban__Group__7__Impl ;
+    // InternalPerspectiveDsl.g:7391: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:7341:1: ( rule__PerspectiveKanban__Group__7__Impl )
-            // InternalPerspectiveDsl.g:7342:2: rule__PerspectiveKanban__Group__7__Impl
+            // InternalPerspectiveDsl.g:7395:1: ( rule__PerspectiveKanban__Group__7__Impl )
+            // InternalPerspectiveDsl.g:7396:2: rule__PerspectiveKanban__Group__7__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__Group__7__Impl();
@@ -25232,23 +25397,23 @@
 
 
     // $ANTLR start "rule__PerspectiveKanban__Group__7__Impl"
-    // InternalPerspectiveDsl.g:7348:1: rule__PerspectiveKanban__Group__7__Impl : ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) ;
+    // InternalPerspectiveDsl.g:7402: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:7352:1: ( ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) )
-            // InternalPerspectiveDsl.g:7353:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
+            // InternalPerspectiveDsl.g:7406:1: ( ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) ) )
+            // InternalPerspectiveDsl.g:7407:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
             {
-            // InternalPerspectiveDsl.g:7353:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
-            // InternalPerspectiveDsl.g:7354:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
+            // InternalPerspectiveDsl.g:7407:1: ( ( rule__PerspectiveKanban__DialogRefAssignment_7 ) )
+            // InternalPerspectiveDsl.g:7408:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveKanbanAccess().getDialogRefAssignment_7()); 
             }
-            // InternalPerspectiveDsl.g:7355:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
-            // InternalPerspectiveDsl.g:7355:3: rule__PerspectiveKanban__DialogRefAssignment_7
+            // InternalPerspectiveDsl.g:7409:2: ( rule__PerspectiveKanban__DialogRefAssignment_7 )
+            // InternalPerspectiveDsl.g:7409:3: rule__PerspectiveKanban__DialogRefAssignment_7
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveKanban__DialogRefAssignment_7();
@@ -25283,14 +25448,14 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__0"
-    // InternalPerspectiveDsl.g:7364:1: rule__PerspectiveWelcome__Group__0 : rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 ;
+    // InternalPerspectiveDsl.g:7418: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:7368:1: ( rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 )
-            // InternalPerspectiveDsl.g:7369:2: rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1
+            // InternalPerspectiveDsl.g:7422:1: ( rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1 )
+            // InternalPerspectiveDsl.g:7423:2: rule__PerspectiveWelcome__Group__0__Impl rule__PerspectiveWelcome__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__PerspectiveWelcome__Group__0__Impl();
@@ -25321,23 +25486,23 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7376:1: rule__PerspectiveWelcome__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7430:1: rule__PerspectiveWelcome__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveWelcome__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7380:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7381:1: ( () )
+            // InternalPerspectiveDsl.g:7434:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7435:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7381:1: ( () )
-            // InternalPerspectiveDsl.g:7382:2: ()
+            // InternalPerspectiveDsl.g:7435:1: ( () )
+            // InternalPerspectiveDsl.g:7436:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeAccess().getPerspectiveWelcomeAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7383:2: ()
-            // InternalPerspectiveDsl.g:7383:3: 
+            // InternalPerspectiveDsl.g:7437:2: ()
+            // InternalPerspectiveDsl.g:7437:3: 
             {
             }
 
@@ -25362,14 +25527,14 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__1"
-    // InternalPerspectiveDsl.g:7391:1: rule__PerspectiveWelcome__Group__1 : rule__PerspectiveWelcome__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:7445: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:7395:1: ( rule__PerspectiveWelcome__Group__1__Impl )
-            // InternalPerspectiveDsl.g:7396:2: rule__PerspectiveWelcome__Group__1__Impl
+            // InternalPerspectiveDsl.g:7449:1: ( rule__PerspectiveWelcome__Group__1__Impl )
+            // InternalPerspectiveDsl.g:7450:2: rule__PerspectiveWelcome__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveWelcome__Group__1__Impl();
@@ -25395,22 +25560,22 @@
 
 
     // $ANTLR start "rule__PerspectiveWelcome__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7402:1: rule__PerspectiveWelcome__Group__1__Impl : ( 'welcome' ) ;
+    // InternalPerspectiveDsl.g:7456:1: rule__PerspectiveWelcome__Group__1__Impl : ( 'welcome' ) ;
     public final void rule__PerspectiveWelcome__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7406:1: ( ( 'welcome' ) )
-            // InternalPerspectiveDsl.g:7407:1: ( 'welcome' )
+            // InternalPerspectiveDsl.g:7460:1: ( ( 'welcome' ) )
+            // InternalPerspectiveDsl.g:7461:1: ( 'welcome' )
             {
-            // InternalPerspectiveDsl.g:7407:1: ( 'welcome' )
-            // InternalPerspectiveDsl.g:7408:2: 'welcome'
+            // InternalPerspectiveDsl.g:7461:1: ( 'welcome' )
+            // InternalPerspectiveDsl.g:7462:2: 'welcome'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveWelcomeAccess().getWelcomeKeyword_1()); 
             }
-            match(input,84,FOLLOW_2); if (state.failed) return ;
+            match(input,86,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveWelcomeAccess().getWelcomeKeyword_1()); 
             }
@@ -25436,14 +25601,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__0"
-    // InternalPerspectiveDsl.g:7418:1: rule__PerspectiveSearch__Group__0 : rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 ;
+    // InternalPerspectiveDsl.g:7472: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:7422:1: ( rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 )
-            // InternalPerspectiveDsl.g:7423:2: rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1
+            // InternalPerspectiveDsl.g:7476:1: ( rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1 )
+            // InternalPerspectiveDsl.g:7477:2: rule__PerspectiveSearch__Group__0__Impl rule__PerspectiveSearch__Group__1
             {
             pushFollow(FOLLOW_44);
             rule__PerspectiveSearch__Group__0__Impl();
@@ -25474,23 +25639,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7430:1: rule__PerspectiveSearch__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7484:1: rule__PerspectiveSearch__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveSearch__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7434:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7435:1: ( () )
+            // InternalPerspectiveDsl.g:7488:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7489:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7435:1: ( () )
-            // InternalPerspectiveDsl.g:7436:2: ()
+            // InternalPerspectiveDsl.g:7489:1: ( () )
+            // InternalPerspectiveDsl.g:7490:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getPerspectiveSearchAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7437:2: ()
-            // InternalPerspectiveDsl.g:7437:3: 
+            // InternalPerspectiveDsl.g:7491:2: ()
+            // InternalPerspectiveDsl.g:7491:3: 
             {
             }
 
@@ -25515,14 +25680,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__1"
-    // InternalPerspectiveDsl.g:7445:1: rule__PerspectiveSearch__Group__1 : rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 ;
+    // InternalPerspectiveDsl.g:7499: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:7449:1: ( rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 )
-            // InternalPerspectiveDsl.g:7450:2: rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2
+            // InternalPerspectiveDsl.g:7503:1: ( rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2 )
+            // InternalPerspectiveDsl.g:7504:2: rule__PerspectiveSearch__Group__1__Impl rule__PerspectiveSearch__Group__2
             {
             pushFollow(FOLLOW_45);
             rule__PerspectiveSearch__Group__1__Impl();
@@ -25553,22 +25718,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7457:1: rule__PerspectiveSearch__Group__1__Impl : ( 'search' ) ;
+    // InternalPerspectiveDsl.g:7511:1: rule__PerspectiveSearch__Group__1__Impl : ( 'search' ) ;
     public final void rule__PerspectiveSearch__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7461:1: ( ( 'search' ) )
-            // InternalPerspectiveDsl.g:7462:1: ( 'search' )
+            // InternalPerspectiveDsl.g:7515:1: ( ( 'search' ) )
+            // InternalPerspectiveDsl.g:7516:1: ( 'search' )
             {
-            // InternalPerspectiveDsl.g:7462:1: ( 'search' )
-            // InternalPerspectiveDsl.g:7463:2: 'search'
+            // InternalPerspectiveDsl.g:7516:1: ( 'search' )
+            // InternalPerspectiveDsl.g:7517:2: 'search'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getSearchKeyword_1()); 
             }
-            match(input,85,FOLLOW_2); if (state.failed) return ;
+            match(input,87,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getSearchKeyword_1()); 
             }
@@ -25594,14 +25759,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__2"
-    // InternalPerspectiveDsl.g:7472:1: rule__PerspectiveSearch__Group__2 : rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 ;
+    // InternalPerspectiveDsl.g:7526: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:7476:1: ( rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 )
-            // InternalPerspectiveDsl.g:7477:2: rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3
+            // InternalPerspectiveDsl.g:7530:1: ( rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3 )
+            // InternalPerspectiveDsl.g:7531:2: rule__PerspectiveSearch__Group__2__Impl rule__PerspectiveSearch__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveSearch__Group__2__Impl();
@@ -25632,22 +25797,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7484:1: rule__PerspectiveSearch__Group__2__Impl : ( 'in' ) ;
+    // InternalPerspectiveDsl.g:7538:1: rule__PerspectiveSearch__Group__2__Impl : ( 'in' ) ;
     public final void rule__PerspectiveSearch__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7488:1: ( ( 'in' ) )
-            // InternalPerspectiveDsl.g:7489:1: ( 'in' )
+            // InternalPerspectiveDsl.g:7542:1: ( ( 'in' ) )
+            // InternalPerspectiveDsl.g:7543:1: ( 'in' )
             {
-            // InternalPerspectiveDsl.g:7489:1: ( 'in' )
-            // InternalPerspectiveDsl.g:7490:2: 'in'
+            // InternalPerspectiveDsl.g:7543:1: ( 'in' )
+            // InternalPerspectiveDsl.g:7544:2: 'in'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getInKeyword_2()); 
             }
-            match(input,86,FOLLOW_2); if (state.failed) return ;
+            match(input,88,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getInKeyword_2()); 
             }
@@ -25673,14 +25838,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__3"
-    // InternalPerspectiveDsl.g:7499:1: rule__PerspectiveSearch__Group__3 : rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 ;
+    // InternalPerspectiveDsl.g:7553: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:7503:1: ( rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 )
-            // InternalPerspectiveDsl.g:7504:2: rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4
+            // InternalPerspectiveDsl.g:7557:1: ( rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4 )
+            // InternalPerspectiveDsl.g:7558:2: rule__PerspectiveSearch__Group__3__Impl rule__PerspectiveSearch__Group__4
             {
             pushFollow(FOLLOW_46);
             rule__PerspectiveSearch__Group__3__Impl();
@@ -25711,23 +25876,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7511:1: rule__PerspectiveSearch__Group__3__Impl : ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:7565: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:7515:1: ( ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:7516:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7569:1: ( ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:7570:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:7516:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
-            // InternalPerspectiveDsl.g:7517:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7570:1: ( ( rule__PerspectiveSearch__DtoRefAssignment_3 ) )
+            // InternalPerspectiveDsl.g:7571:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDtoRefAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:7518:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
-            // InternalPerspectiveDsl.g:7518:3: rule__PerspectiveSearch__DtoRefAssignment_3
+            // InternalPerspectiveDsl.g:7572:2: ( rule__PerspectiveSearch__DtoRefAssignment_3 )
+            // InternalPerspectiveDsl.g:7572:3: rule__PerspectiveSearch__DtoRefAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__DtoRefAssignment_3();
@@ -25762,14 +25927,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__4"
-    // InternalPerspectiveDsl.g:7526:1: rule__PerspectiveSearch__Group__4 : rule__PerspectiveSearch__Group__4__Impl ;
+    // InternalPerspectiveDsl.g:7580: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:7530:1: ( rule__PerspectiveSearch__Group__4__Impl )
-            // InternalPerspectiveDsl.g:7531:2: rule__PerspectiveSearch__Group__4__Impl
+            // InternalPerspectiveDsl.g:7584:1: ( rule__PerspectiveSearch__Group__4__Impl )
+            // InternalPerspectiveDsl.g:7585:2: rule__PerspectiveSearch__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group__4__Impl();
@@ -25795,23 +25960,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group__4__Impl"
-    // InternalPerspectiveDsl.g:7537:1: rule__PerspectiveSearch__Group__4__Impl : ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) ;
+    // InternalPerspectiveDsl.g:7591: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:7541:1: ( ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) )
-            // InternalPerspectiveDsl.g:7542:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
+            // InternalPerspectiveDsl.g:7595:1: ( ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) ) )
+            // InternalPerspectiveDsl.g:7596:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
             {
-            // InternalPerspectiveDsl.g:7542:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
-            // InternalPerspectiveDsl.g:7543:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
+            // InternalPerspectiveDsl.g:7596:1: ( ( rule__PerspectiveSearch__UnorderedGroup_4 ) )
+            // InternalPerspectiveDsl.g:7597:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getUnorderedGroup_4()); 
             }
-            // InternalPerspectiveDsl.g:7544:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
-            // InternalPerspectiveDsl.g:7544:3: rule__PerspectiveSearch__UnorderedGroup_4
+            // InternalPerspectiveDsl.g:7598:2: ( rule__PerspectiveSearch__UnorderedGroup_4 )
+            // InternalPerspectiveDsl.g:7598:3: rule__PerspectiveSearch__UnorderedGroup_4
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__UnorderedGroup_4();
@@ -25846,14 +26011,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__0"
-    // InternalPerspectiveDsl.g:7553:1: rule__PerspectiveSearch__Group_4_0__0 : rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 ;
+    // InternalPerspectiveDsl.g:7607: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:7557:1: ( rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 )
-            // InternalPerspectiveDsl.g:7558:2: rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1
+            // InternalPerspectiveDsl.g:7611:1: ( rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1 )
+            // InternalPerspectiveDsl.g:7612:2: rule__PerspectiveSearch__Group_4_0__0__Impl rule__PerspectiveSearch__Group_4_0__1
             {
             pushFollow(FOLLOW_47);
             rule__PerspectiveSearch__Group_4_0__0__Impl();
@@ -25884,22 +26049,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__0__Impl"
-    // InternalPerspectiveDsl.g:7565:1: rule__PerspectiveSearch__Group_4_0__0__Impl : ( 'depth' ) ;
+    // InternalPerspectiveDsl.g:7619: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:7569:1: ( ( 'depth' ) )
-            // InternalPerspectiveDsl.g:7570:1: ( 'depth' )
+            // InternalPerspectiveDsl.g:7623:1: ( ( 'depth' ) )
+            // InternalPerspectiveDsl.g:7624:1: ( 'depth' )
             {
-            // InternalPerspectiveDsl.g:7570:1: ( 'depth' )
-            // InternalPerspectiveDsl.g:7571:2: 'depth'
+            // InternalPerspectiveDsl.g:7624:1: ( 'depth' )
+            // InternalPerspectiveDsl.g:7625:2: 'depth'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthKeyword_4_0_0()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getDepthKeyword_4_0_0()); 
             }
@@ -25925,14 +26090,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__1"
-    // InternalPerspectiveDsl.g:7580:1: rule__PerspectiveSearch__Group_4_0__1 : rule__PerspectiveSearch__Group_4_0__1__Impl ;
+    // InternalPerspectiveDsl.g:7634: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:7584:1: ( rule__PerspectiveSearch__Group_4_0__1__Impl )
-            // InternalPerspectiveDsl.g:7585:2: rule__PerspectiveSearch__Group_4_0__1__Impl
+            // InternalPerspectiveDsl.g:7638:1: ( rule__PerspectiveSearch__Group_4_0__1__Impl )
+            // InternalPerspectiveDsl.g:7639:2: rule__PerspectiveSearch__Group_4_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group_4_0__1__Impl();
@@ -25958,23 +26123,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_0__1__Impl"
-    // InternalPerspectiveDsl.g:7591:1: rule__PerspectiveSearch__Group_4_0__1__Impl : ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:7645: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:7595:1: ( ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) )
-            // InternalPerspectiveDsl.g:7596:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
+            // InternalPerspectiveDsl.g:7649:1: ( ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) ) )
+            // InternalPerspectiveDsl.g:7650:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:7596:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
-            // InternalPerspectiveDsl.g:7597:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
+            // InternalPerspectiveDsl.g:7650:1: ( ( rule__PerspectiveSearch__DepthAssignment_4_0_1 ) )
+            // InternalPerspectiveDsl.g:7651:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getDepthAssignment_4_0_1()); 
             }
-            // InternalPerspectiveDsl.g:7598:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
-            // InternalPerspectiveDsl.g:7598:3: rule__PerspectiveSearch__DepthAssignment_4_0_1
+            // InternalPerspectiveDsl.g:7652:2: ( rule__PerspectiveSearch__DepthAssignment_4_0_1 )
+            // InternalPerspectiveDsl.g:7652:3: rule__PerspectiveSearch__DepthAssignment_4_0_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__DepthAssignment_4_0_1();
@@ -26009,14 +26174,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__0"
-    // InternalPerspectiveDsl.g:7607:1: rule__PerspectiveSearch__Group_4_1__0 : rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 ;
+    // InternalPerspectiveDsl.g:7661: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:7611:1: ( rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 )
-            // InternalPerspectiveDsl.g:7612:2: rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1
+            // InternalPerspectiveDsl.g:7665:1: ( rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1 )
+            // InternalPerspectiveDsl.g:7666:2: rule__PerspectiveSearch__Group_4_1__0__Impl rule__PerspectiveSearch__Group_4_1__1
             {
             pushFollow(FOLLOW_47);
             rule__PerspectiveSearch__Group_4_1__0__Impl();
@@ -26047,22 +26212,22 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__0__Impl"
-    // InternalPerspectiveDsl.g:7619:1: rule__PerspectiveSearch__Group_4_1__0__Impl : ( 'filterColumns' ) ;
+    // InternalPerspectiveDsl.g:7673: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:7623:1: ( ( 'filterColumns' ) )
-            // InternalPerspectiveDsl.g:7624:1: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:7677:1: ( ( 'filterColumns' ) )
+            // InternalPerspectiveDsl.g:7678:1: ( 'filterColumns' )
             {
-            // InternalPerspectiveDsl.g:7624:1: ( 'filterColumns' )
-            // InternalPerspectiveDsl.g:7625:2: 'filterColumns'
+            // InternalPerspectiveDsl.g:7678:1: ( 'filterColumns' )
+            // InternalPerspectiveDsl.g:7679:2: 'filterColumns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColumnsKeyword_4_1_0()); 
             }
-            match(input,88,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveSearchAccess().getFilterColumnsKeyword_4_1_0()); 
             }
@@ -26088,14 +26253,14 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__1"
-    // InternalPerspectiveDsl.g:7634:1: rule__PerspectiveSearch__Group_4_1__1 : rule__PerspectiveSearch__Group_4_1__1__Impl ;
+    // InternalPerspectiveDsl.g:7688: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:7638:1: ( rule__PerspectiveSearch__Group_4_1__1__Impl )
-            // InternalPerspectiveDsl.g:7639:2: rule__PerspectiveSearch__Group_4_1__1__Impl
+            // InternalPerspectiveDsl.g:7692:1: ( rule__PerspectiveSearch__Group_4_1__1__Impl )
+            // InternalPerspectiveDsl.g:7693:2: rule__PerspectiveSearch__Group_4_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__Group_4_1__1__Impl();
@@ -26121,23 +26286,23 @@
 
 
     // $ANTLR start "rule__PerspectiveSearch__Group_4_1__1__Impl"
-    // InternalPerspectiveDsl.g:7645:1: rule__PerspectiveSearch__Group_4_1__1__Impl : ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:7699: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:7649:1: ( ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) )
-            // InternalPerspectiveDsl.g:7650:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
+            // InternalPerspectiveDsl.g:7703:1: ( ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) ) )
+            // InternalPerspectiveDsl.g:7704:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:7650:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
-            // InternalPerspectiveDsl.g:7651:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
+            // InternalPerspectiveDsl.g:7704:1: ( ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 ) )
+            // InternalPerspectiveDsl.g:7705:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveSearchAccess().getFilterColsAssignment_4_1_1()); 
             }
-            // InternalPerspectiveDsl.g:7652:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
-            // InternalPerspectiveDsl.g:7652:3: rule__PerspectiveSearch__FilterColsAssignment_4_1_1
+            // InternalPerspectiveDsl.g:7706:2: ( rule__PerspectiveSearch__FilterColsAssignment_4_1_1 )
+            // InternalPerspectiveDsl.g:7706:3: rule__PerspectiveSearch__FilterColsAssignment_4_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveSearch__FilterColsAssignment_4_1_1();
@@ -26172,14 +26337,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__0"
-    // InternalPerspectiveDsl.g:7661:1: rule__PerspectiveDataInterchange__Group__0 : rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 ;
+    // InternalPerspectiveDsl.g:7715: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:7665:1: ( rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 )
-            // InternalPerspectiveDsl.g:7666:2: rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1
+            // InternalPerspectiveDsl.g:7719:1: ( rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1 )
+            // InternalPerspectiveDsl.g:7720:2: rule__PerspectiveDataInterchange__Group__0__Impl rule__PerspectiveDataInterchange__Group__1
             {
             pushFollow(FOLLOW_48);
             rule__PerspectiveDataInterchange__Group__0__Impl();
@@ -26210,23 +26375,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7673:1: rule__PerspectiveDataInterchange__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7727:1: rule__PerspectiveDataInterchange__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDataInterchange__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7677:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7678:1: ( () )
+            // InternalPerspectiveDsl.g:7731:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7732:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7678:1: ( () )
-            // InternalPerspectiveDsl.g:7679:2: ()
+            // InternalPerspectiveDsl.g:7732:1: ( () )
+            // InternalPerspectiveDsl.g:7733:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getPerspectiveDataInterchangeAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7680:2: ()
-            // InternalPerspectiveDsl.g:7680:3: 
+            // InternalPerspectiveDsl.g:7734:2: ()
+            // InternalPerspectiveDsl.g:7734:3: 
             {
             }
 
@@ -26251,14 +26416,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__1"
-    // InternalPerspectiveDsl.g:7688:1: rule__PerspectiveDataInterchange__Group__1 : rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 ;
+    // InternalPerspectiveDsl.g:7742: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:7692:1: ( rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 )
-            // InternalPerspectiveDsl.g:7693:2: rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2
+            // InternalPerspectiveDsl.g:7746:1: ( rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2 )
+            // InternalPerspectiveDsl.g:7747:2: rule__PerspectiveDataInterchange__Group__1__Impl rule__PerspectiveDataInterchange__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__PerspectiveDataInterchange__Group__1__Impl();
@@ -26289,22 +26454,22 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7700:1: rule__PerspectiveDataInterchange__Group__1__Impl : ( 'dataInterchange' ) ;
+    // InternalPerspectiveDsl.g:7754:1: rule__PerspectiveDataInterchange__Group__1__Impl : ( 'dataInterchange' ) ;
     public final void rule__PerspectiveDataInterchange__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7704:1: ( ( 'dataInterchange' ) )
-            // InternalPerspectiveDsl.g:7705:1: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:7758:1: ( ( 'dataInterchange' ) )
+            // InternalPerspectiveDsl.g:7759:1: ( 'dataInterchange' )
             {
-            // InternalPerspectiveDsl.g:7705:1: ( 'dataInterchange' )
-            // InternalPerspectiveDsl.g:7706:2: 'dataInterchange'
+            // InternalPerspectiveDsl.g:7759:1: ( 'dataInterchange' )
+            // InternalPerspectiveDsl.g:7760:2: 'dataInterchange'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getDataInterchangeKeyword_1()); 
             }
-            match(input,89,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveDataInterchangeAccess().getDataInterchangeKeyword_1()); 
             }
@@ -26330,14 +26495,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__2"
-    // InternalPerspectiveDsl.g:7715:1: rule__PerspectiveDataInterchange__Group__2 : rule__PerspectiveDataInterchange__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7769: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:7719:1: ( rule__PerspectiveDataInterchange__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7720:2: rule__PerspectiveDataInterchange__Group__2__Impl
+            // InternalPerspectiveDsl.g:7773:1: ( rule__PerspectiveDataInterchange__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7774:2: rule__PerspectiveDataInterchange__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDataInterchange__Group__2__Impl();
@@ -26363,23 +26528,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDataInterchange__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7726:1: rule__PerspectiveDataInterchange__Group__2__Impl : ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7780: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:7730:1: ( ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7731:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7784:1: ( ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7785:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7731:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7732:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7785:1: ( ( rule__PerspectiveDataInterchange__RefAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7786:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDataInterchangeAccess().getRefAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7733:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
-            // InternalPerspectiveDsl.g:7733:3: rule__PerspectiveDataInterchange__RefAssignment_2
+            // InternalPerspectiveDsl.g:7787:2: ( rule__PerspectiveDataInterchange__RefAssignment_2 )
+            // InternalPerspectiveDsl.g:7787:3: rule__PerspectiveDataInterchange__RefAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDataInterchange__RefAssignment_2();
@@ -26414,14 +26579,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__0"
-    // InternalPerspectiveDsl.g:7742:1: rule__PerspectiveTitle__Group__0 : rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 ;
+    // InternalPerspectiveDsl.g:7796:1: rule__PerspectiveTitle__Group__0 : rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 ;
     public final void rule__PerspectiveTitle__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7746:1: ( rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 )
-            // InternalPerspectiveDsl.g:7747:2: rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1
+            // InternalPerspectiveDsl.g:7800:1: ( rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1 )
+            // InternalPerspectiveDsl.g:7801:2: rule__PerspectiveTitle__Group__0__Impl rule__PerspectiveTitle__Group__1
             {
             pushFollow(FOLLOW_49);
             rule__PerspectiveTitle__Group__0__Impl();
@@ -26452,23 +26617,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7754:1: rule__PerspectiveTitle__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7808:1: rule__PerspectiveTitle__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveTitle__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7758:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7759:1: ( () )
+            // InternalPerspectiveDsl.g:7812:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7813:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7759:1: ( () )
-            // InternalPerspectiveDsl.g:7760:2: ()
+            // InternalPerspectiveDsl.g:7813:1: ( () )
+            // InternalPerspectiveDsl.g:7814:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTitleAccess().getPerspectiveTitleAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7761:2: ()
-            // InternalPerspectiveDsl.g:7761:3: 
+            // InternalPerspectiveDsl.g:7815:2: ()
+            // InternalPerspectiveDsl.g:7815:3: 
             {
             }
 
@@ -26493,14 +26658,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__1"
-    // InternalPerspectiveDsl.g:7769:1: rule__PerspectiveTitle__Group__1 : rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 ;
+    // InternalPerspectiveDsl.g:7823:1: rule__PerspectiveTitle__Group__1 : rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 ;
     public final void rule__PerspectiveTitle__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7773:1: ( rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 )
-            // InternalPerspectiveDsl.g:7774:2: rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2
+            // InternalPerspectiveDsl.g:7827:1: ( rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2 )
+            // InternalPerspectiveDsl.g:7828:2: rule__PerspectiveTitle__Group__1__Impl rule__PerspectiveTitle__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveTitle__Group__1__Impl();
@@ -26531,22 +26696,22 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7781:1: rule__PerspectiveTitle__Group__1__Impl : ( 'title' ) ;
+    // InternalPerspectiveDsl.g:7835:1: rule__PerspectiveTitle__Group__1__Impl : ( 'title' ) ;
     public final void rule__PerspectiveTitle__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7785:1: ( ( 'title' ) )
-            // InternalPerspectiveDsl.g:7786:1: ( 'title' )
+            // InternalPerspectiveDsl.g:7839:1: ( ( 'title' ) )
+            // InternalPerspectiveDsl.g:7840:1: ( 'title' )
             {
-            // InternalPerspectiveDsl.g:7786:1: ( 'title' )
-            // InternalPerspectiveDsl.g:7787:2: 'title'
+            // InternalPerspectiveDsl.g:7840:1: ( 'title' )
+            // InternalPerspectiveDsl.g:7841:2: 'title'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTitleAccess().getTitleKeyword_1()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveTitleAccess().getTitleKeyword_1()); 
             }
@@ -26572,14 +26737,14 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__2"
-    // InternalPerspectiveDsl.g:7796:1: rule__PerspectiveTitle__Group__2 : rule__PerspectiveTitle__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7850:1: rule__PerspectiveTitle__Group__2 : rule__PerspectiveTitle__Group__2__Impl ;
     public final void rule__PerspectiveTitle__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7800:1: ( rule__PerspectiveTitle__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7801:2: rule__PerspectiveTitle__Group__2__Impl
+            // InternalPerspectiveDsl.g:7854:1: ( rule__PerspectiveTitle__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7855:2: rule__PerspectiveTitle__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTitle__Group__2__Impl();
@@ -26605,23 +26770,23 @@
 
 
     // $ANTLR start "rule__PerspectiveTitle__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7807:1: rule__PerspectiveTitle__Group__2__Impl : ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7861:1: rule__PerspectiveTitle__Group__2__Impl : ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) ;
     public final void rule__PerspectiveTitle__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7811:1: ( ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7812:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7865:1: ( ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7866:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7812:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7813:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
+            // InternalPerspectiveDsl.g:7866:1: ( ( rule__PerspectiveTitle__HtmlNameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7867:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveTitleAccess().getHtmlNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7814:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
-            // InternalPerspectiveDsl.g:7814:3: rule__PerspectiveTitle__HtmlNameAssignment_2
+            // InternalPerspectiveDsl.g:7868:2: ( rule__PerspectiveTitle__HtmlNameAssignment_2 )
+            // InternalPerspectiveDsl.g:7868:3: rule__PerspectiveTitle__HtmlNameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveTitle__HtmlNameAssignment_2();
@@ -26656,14 +26821,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__0"
-    // InternalPerspectiveDsl.g:7823:1: rule__PerspectiveDashboard__Group__0 : rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 ;
+    // InternalPerspectiveDsl.g:7877:1: rule__PerspectiveDashboard__Group__0 : rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 ;
     public final void rule__PerspectiveDashboard__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7827:1: ( rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 )
-            // InternalPerspectiveDsl.g:7828:2: rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1
+            // InternalPerspectiveDsl.g:7881:1: ( rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1 )
+            // InternalPerspectiveDsl.g:7882:2: rule__PerspectiveDashboard__Group__0__Impl rule__PerspectiveDashboard__Group__1
             {
             pushFollow(FOLLOW_50);
             rule__PerspectiveDashboard__Group__0__Impl();
@@ -26694,23 +26859,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7835:1: rule__PerspectiveDashboard__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7889:1: rule__PerspectiveDashboard__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveDashboard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7839:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7840:1: ( () )
+            // InternalPerspectiveDsl.g:7893:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7894:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7840:1: ( () )
-            // InternalPerspectiveDsl.g:7841:2: ()
+            // InternalPerspectiveDsl.g:7894:1: ( () )
+            // InternalPerspectiveDsl.g:7895:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDashboardAccess().getPerspectiveDashboardAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7842:2: ()
-            // InternalPerspectiveDsl.g:7842:3: 
+            // InternalPerspectiveDsl.g:7896:2: ()
+            // InternalPerspectiveDsl.g:7896:3: 
             {
             }
 
@@ -26735,14 +26900,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__1"
-    // InternalPerspectiveDsl.g:7850:1: rule__PerspectiveDashboard__Group__1 : rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 ;
+    // InternalPerspectiveDsl.g:7904:1: rule__PerspectiveDashboard__Group__1 : rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 ;
     public final void rule__PerspectiveDashboard__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7854:1: ( rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 )
-            // InternalPerspectiveDsl.g:7855:2: rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2
+            // InternalPerspectiveDsl.g:7908:1: ( rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2 )
+            // InternalPerspectiveDsl.g:7909:2: rule__PerspectiveDashboard__Group__1__Impl rule__PerspectiveDashboard__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveDashboard__Group__1__Impl();
@@ -26773,22 +26938,22 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7862:1: rule__PerspectiveDashboard__Group__1__Impl : ( 'name' ) ;
+    // InternalPerspectiveDsl.g:7916:1: rule__PerspectiveDashboard__Group__1__Impl : ( 'name' ) ;
     public final void rule__PerspectiveDashboard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7866:1: ( ( 'name' ) )
-            // InternalPerspectiveDsl.g:7867:1: ( 'name' )
+            // InternalPerspectiveDsl.g:7920:1: ( ( 'name' ) )
+            // InternalPerspectiveDsl.g:7921:1: ( 'name' )
             {
-            // InternalPerspectiveDsl.g:7867:1: ( 'name' )
-            // InternalPerspectiveDsl.g:7868:2: 'name'
+            // InternalPerspectiveDsl.g:7921:1: ( 'name' )
+            // InternalPerspectiveDsl.g:7922:2: 'name'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDashboardAccess().getNameKeyword_1()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveDashboardAccess().getNameKeyword_1()); 
             }
@@ -26814,14 +26979,14 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__2"
-    // InternalPerspectiveDsl.g:7877:1: rule__PerspectiveDashboard__Group__2 : rule__PerspectiveDashboard__Group__2__Impl ;
+    // InternalPerspectiveDsl.g:7931:1: rule__PerspectiveDashboard__Group__2 : rule__PerspectiveDashboard__Group__2__Impl ;
     public final void rule__PerspectiveDashboard__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7881:1: ( rule__PerspectiveDashboard__Group__2__Impl )
-            // InternalPerspectiveDsl.g:7882:2: rule__PerspectiveDashboard__Group__2__Impl
+            // InternalPerspectiveDsl.g:7935:1: ( rule__PerspectiveDashboard__Group__2__Impl )
+            // InternalPerspectiveDsl.g:7936:2: rule__PerspectiveDashboard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDashboard__Group__2__Impl();
@@ -26847,23 +27012,23 @@
 
 
     // $ANTLR start "rule__PerspectiveDashboard__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7888:1: rule__PerspectiveDashboard__Group__2__Impl : ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:7942:1: rule__PerspectiveDashboard__Group__2__Impl : ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) ;
     public final void rule__PerspectiveDashboard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7892:1: ( ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:7893:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7946:1: ( ( ( rule__PerspectiveDashboard__NameAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:7947:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:7893:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
-            // InternalPerspectiveDsl.g:7894:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:7947:1: ( ( rule__PerspectiveDashboard__NameAssignment_2 ) )
+            // InternalPerspectiveDsl.g:7948:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveDashboardAccess().getNameAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:7895:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
-            // InternalPerspectiveDsl.g:7895:3: rule__PerspectiveDashboard__NameAssignment_2
+            // InternalPerspectiveDsl.g:7949:2: ( rule__PerspectiveDashboard__NameAssignment_2 )
+            // InternalPerspectiveDsl.g:7949:3: rule__PerspectiveDashboard__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveDashboard__NameAssignment_2();
@@ -26898,14 +27063,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__0"
-    // InternalPerspectiveDsl.g:7904:1: rule__PerspectiveBrowser__Group__0 : rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 ;
+    // InternalPerspectiveDsl.g:7958:1: rule__PerspectiveBrowser__Group__0 : rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 ;
     public final void rule__PerspectiveBrowser__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7908:1: ( rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 )
-            // InternalPerspectiveDsl.g:7909:2: rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1
+            // InternalPerspectiveDsl.g:7962:1: ( rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1 )
+            // InternalPerspectiveDsl.g:7963:2: rule__PerspectiveBrowser__Group__0__Impl rule__PerspectiveBrowser__Group__1
             {
             pushFollow(FOLLOW_25);
             rule__PerspectiveBrowser__Group__0__Impl();
@@ -26936,23 +27101,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__0__Impl"
-    // InternalPerspectiveDsl.g:7916:1: rule__PerspectiveBrowser__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:7970:1: rule__PerspectiveBrowser__Group__0__Impl : ( () ) ;
     public final void rule__PerspectiveBrowser__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7920:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:7921:1: ( () )
+            // InternalPerspectiveDsl.g:7974:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:7975:1: ( () )
             {
-            // InternalPerspectiveDsl.g:7921:1: ( () )
-            // InternalPerspectiveDsl.g:7922:2: ()
+            // InternalPerspectiveDsl.g:7975:1: ( () )
+            // InternalPerspectiveDsl.g:7976:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBrowserAccess().getPerspectiveBrowserAction_0()); 
             }
-            // InternalPerspectiveDsl.g:7923:2: ()
-            // InternalPerspectiveDsl.g:7923:3: 
+            // InternalPerspectiveDsl.g:7977:2: ()
+            // InternalPerspectiveDsl.g:7977:3: 
             {
             }
 
@@ -26977,14 +27142,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__1"
-    // InternalPerspectiveDsl.g:7931:1: rule__PerspectiveBrowser__Group__1 : rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 ;
+    // InternalPerspectiveDsl.g:7985:1: rule__PerspectiveBrowser__Group__1 : rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 ;
     public final void rule__PerspectiveBrowser__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7935:1: ( rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 )
-            // InternalPerspectiveDsl.g:7936:2: rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2
+            // InternalPerspectiveDsl.g:7989:1: ( rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2 )
+            // InternalPerspectiveDsl.g:7990:2: rule__PerspectiveBrowser__Group__1__Impl rule__PerspectiveBrowser__Group__2
             {
             pushFollow(FOLLOW_51);
             rule__PerspectiveBrowser__Group__1__Impl();
@@ -27015,22 +27180,22 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__1__Impl"
-    // InternalPerspectiveDsl.g:7943:1: rule__PerspectiveBrowser__Group__1__Impl : ( 'browser' ) ;
+    // InternalPerspectiveDsl.g:7997:1: rule__PerspectiveBrowser__Group__1__Impl : ( 'browser' ) ;
     public final void rule__PerspectiveBrowser__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7947:1: ( ( 'browser' ) )
-            // InternalPerspectiveDsl.g:7948:1: ( 'browser' )
+            // InternalPerspectiveDsl.g:8001:1: ( ( 'browser' ) )
+            // InternalPerspectiveDsl.g:8002:1: ( 'browser' )
             {
-            // InternalPerspectiveDsl.g:7948:1: ( 'browser' )
-            // InternalPerspectiveDsl.g:7949:2: 'browser'
+            // InternalPerspectiveDsl.g:8002:1: ( 'browser' )
+            // InternalPerspectiveDsl.g:8003:2: 'browser'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBrowserAccess().getBrowserKeyword_1()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveBrowserAccess().getBrowserKeyword_1()); 
             }
@@ -27056,14 +27221,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__2"
-    // InternalPerspectiveDsl.g:7958:1: rule__PerspectiveBrowser__Group__2 : rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3 ;
+    // InternalPerspectiveDsl.g:8012:1: rule__PerspectiveBrowser__Group__2 : rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3 ;
     public final void rule__PerspectiveBrowser__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7962:1: ( rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3 )
-            // InternalPerspectiveDsl.g:7963:2: rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3
+            // InternalPerspectiveDsl.g:8016:1: ( rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3 )
+            // InternalPerspectiveDsl.g:8017:2: rule__PerspectiveBrowser__Group__2__Impl rule__PerspectiveBrowser__Group__3
             {
             pushFollow(FOLLOW_15);
             rule__PerspectiveBrowser__Group__2__Impl();
@@ -27094,22 +27259,22 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__2__Impl"
-    // InternalPerspectiveDsl.g:7970:1: rule__PerspectiveBrowser__Group__2__Impl : ( 'url' ) ;
+    // InternalPerspectiveDsl.g:8024:1: rule__PerspectiveBrowser__Group__2__Impl : ( 'url' ) ;
     public final void rule__PerspectiveBrowser__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7974:1: ( ( 'url' ) )
-            // InternalPerspectiveDsl.g:7975:1: ( 'url' )
+            // InternalPerspectiveDsl.g:8028:1: ( ( 'url' ) )
+            // InternalPerspectiveDsl.g:8029:1: ( 'url' )
             {
-            // InternalPerspectiveDsl.g:7975:1: ( 'url' )
-            // InternalPerspectiveDsl.g:7976:2: 'url'
+            // InternalPerspectiveDsl.g:8029:1: ( 'url' )
+            // InternalPerspectiveDsl.g:8030:2: 'url'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,95,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getPerspectiveBrowserAccess().getUrlKeyword_2()); 
             }
@@ -27135,14 +27300,14 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__3"
-    // InternalPerspectiveDsl.g:7985:1: rule__PerspectiveBrowser__Group__3 : rule__PerspectiveBrowser__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:8039:1: rule__PerspectiveBrowser__Group__3 : rule__PerspectiveBrowser__Group__3__Impl ;
     public final void rule__PerspectiveBrowser__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:7989:1: ( rule__PerspectiveBrowser__Group__3__Impl )
-            // InternalPerspectiveDsl.g:7990:2: rule__PerspectiveBrowser__Group__3__Impl
+            // InternalPerspectiveDsl.g:8043:1: ( rule__PerspectiveBrowser__Group__3__Impl )
+            // InternalPerspectiveDsl.g:8044:2: rule__PerspectiveBrowser__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveBrowser__Group__3__Impl();
@@ -27168,23 +27333,23 @@
 
 
     // $ANTLR start "rule__PerspectiveBrowser__Group__3__Impl"
-    // InternalPerspectiveDsl.g:7996:1: rule__PerspectiveBrowser__Group__3__Impl : ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) ) ;
+    // InternalPerspectiveDsl.g:8050:1: rule__PerspectiveBrowser__Group__3__Impl : ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) ) ;
     public final void rule__PerspectiveBrowser__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8000:1: ( ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) ) )
-            // InternalPerspectiveDsl.g:8001:1: ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) )
+            // InternalPerspectiveDsl.g:8054:1: ( ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) ) )
+            // InternalPerspectiveDsl.g:8055:1: ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) )
             {
-            // InternalPerspectiveDsl.g:8001:1: ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) )
-            // InternalPerspectiveDsl.g:8002:2: ( rule__PerspectiveBrowser__UrlAssignment_3 )
+            // InternalPerspectiveDsl.g:8055:1: ( ( rule__PerspectiveBrowser__UrlAssignment_3 ) )
+            // InternalPerspectiveDsl.g:8056:2: ( rule__PerspectiveBrowser__UrlAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPerspectiveBrowserAccess().getUrlAssignment_3()); 
             }
-            // InternalPerspectiveDsl.g:8003:2: ( rule__PerspectiveBrowser__UrlAssignment_3 )
-            // InternalPerspectiveDsl.g:8003:3: rule__PerspectiveBrowser__UrlAssignment_3
+            // InternalPerspectiveDsl.g:8057:2: ( rule__PerspectiveBrowser__UrlAssignment_3 )
+            // InternalPerspectiveDsl.g:8057:3: rule__PerspectiveBrowser__UrlAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PerspectiveBrowser__UrlAssignment_3();
@@ -27219,14 +27384,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0"
-    // InternalPerspectiveDsl.g:8012:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    // InternalPerspectiveDsl.g:8066: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:8016:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
-            // InternalPerspectiveDsl.g:8017:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            // InternalPerspectiveDsl.g:8070:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalPerspectiveDsl.g:8071:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
             {
             pushFollow(FOLLOW_52);
             rule__XImportDeclaration__Group__0__Impl();
@@ -27257,23 +27422,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
-    // InternalPerspectiveDsl.g:8024:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8078:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8028:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8029:1: ( () )
+            // InternalPerspectiveDsl.g:8082:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8083:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8029:1: ( () )
-            // InternalPerspectiveDsl.g:8030:2: ()
+            // InternalPerspectiveDsl.g:8083:1: ( () )
+            // InternalPerspectiveDsl.g:8084:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:8031:2: ()
-            // InternalPerspectiveDsl.g:8031:3: 
+            // InternalPerspectiveDsl.g:8085:2: ()
+            // InternalPerspectiveDsl.g:8085:3: 
             {
             }
 
@@ -27298,14 +27463,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1"
-    // InternalPerspectiveDsl.g:8039:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    // InternalPerspectiveDsl.g:8093: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:8043:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
-            // InternalPerspectiveDsl.g:8044:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            // InternalPerspectiveDsl.g:8097:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalPerspectiveDsl.g:8098:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
             {
             pushFollow(FOLLOW_53);
             rule__XImportDeclaration__Group__1__Impl();
@@ -27336,17 +27501,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
-    // InternalPerspectiveDsl.g:8051:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    // InternalPerspectiveDsl.g:8105:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
     public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8055:1: ( ( 'import' ) )
-            // InternalPerspectiveDsl.g:8056:1: ( 'import' )
+            // InternalPerspectiveDsl.g:8109:1: ( ( 'import' ) )
+            // InternalPerspectiveDsl.g:8110:1: ( 'import' )
             {
-            // InternalPerspectiveDsl.g:8056:1: ( 'import' )
-            // InternalPerspectiveDsl.g:8057:2: 'import'
+            // InternalPerspectiveDsl.g:8110:1: ( 'import' )
+            // InternalPerspectiveDsl.g:8111:2: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
@@ -27377,14 +27542,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2"
-    // InternalPerspectiveDsl.g:8066:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    // InternalPerspectiveDsl.g:8120: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:8070:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
-            // InternalPerspectiveDsl.g:8071:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            // InternalPerspectiveDsl.g:8124:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalPerspectiveDsl.g:8125:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
             {
             pushFollow(FOLLOW_54);
             rule__XImportDeclaration__Group__2__Impl();
@@ -27415,23 +27580,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
-    // InternalPerspectiveDsl.g:8078:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    // InternalPerspectiveDsl.g:8132: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:8082:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
-            // InternalPerspectiveDsl.g:8083:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:8136:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalPerspectiveDsl.g:8137:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
             {
-            // InternalPerspectiveDsl.g:8083:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
-            // InternalPerspectiveDsl.g:8084:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:8137:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalPerspectiveDsl.g:8138:2: ( rule__XImportDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalPerspectiveDsl.g:8085:2: ( rule__XImportDeclaration__Alternatives_2 )
-            // InternalPerspectiveDsl.g:8085:3: rule__XImportDeclaration__Alternatives_2
+            // InternalPerspectiveDsl.g:8139:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalPerspectiveDsl.g:8139:3: rule__XImportDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2();
@@ -27466,14 +27631,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3"
-    // InternalPerspectiveDsl.g:8093:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:8147: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:8097:1: ( rule__XImportDeclaration__Group__3__Impl )
-            // InternalPerspectiveDsl.g:8098:2: rule__XImportDeclaration__Group__3__Impl
+            // InternalPerspectiveDsl.g:8151:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalPerspectiveDsl.g:8152:2: rule__XImportDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__3__Impl();
@@ -27499,33 +27664,33 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
-    // InternalPerspectiveDsl.g:8104:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    // InternalPerspectiveDsl.g:8158:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8108:1: ( ( ( ';' )? ) )
-            // InternalPerspectiveDsl.g:8109:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:8162:1: ( ( ( ';' )? ) )
+            // InternalPerspectiveDsl.g:8163:1: ( ( ';' )? )
             {
-            // InternalPerspectiveDsl.g:8109:1: ( ( ';' )? )
-            // InternalPerspectiveDsl.g:8110:2: ( ';' )?
+            // InternalPerspectiveDsl.g:8163:1: ( ( ';' )? )
+            // InternalPerspectiveDsl.g:8164:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
             }
-            // InternalPerspectiveDsl.g:8111:2: ( ';' )?
+            // InternalPerspectiveDsl.g:8165:2: ( ';' )?
             int alt61=2;
             int LA61_0 = input.LA(1);
 
-            if ( (LA61_0==94) ) {
+            if ( (LA61_0==96) ) {
                 alt61=1;
             }
             switch (alt61) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8111:3: ';'
+                    // InternalPerspectiveDsl.g:8165:3: ';'
                     {
-                    match(input,94,FOLLOW_2); if (state.failed) return ;
+                    match(input,96,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -27557,14 +27722,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
-    // InternalPerspectiveDsl.g:8120:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    // InternalPerspectiveDsl.g:8174: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:8124:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
-            // InternalPerspectiveDsl.g:8125:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            // InternalPerspectiveDsl.g:8178:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalPerspectiveDsl.g:8179:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
             {
             pushFollow(FOLLOW_55);
             rule__XImportDeclaration__Group_2_0__0__Impl();
@@ -27595,23 +27760,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
-    // InternalPerspectiveDsl.g:8132:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:8186: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:8136:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
-            // InternalPerspectiveDsl.g:8137:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:8190:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalPerspectiveDsl.g:8191:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:8137:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
-            // InternalPerspectiveDsl.g:8138:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:8191:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalPerspectiveDsl.g:8192:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8139:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
-            // InternalPerspectiveDsl.g:8139:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            // InternalPerspectiveDsl.g:8193:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalPerspectiveDsl.g:8193:3: rule__XImportDeclaration__StaticAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__StaticAssignment_2_0_0();
@@ -27646,14 +27811,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
-    // InternalPerspectiveDsl.g:8147:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    // InternalPerspectiveDsl.g:8201: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:8151:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
-            // InternalPerspectiveDsl.g:8152:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            // InternalPerspectiveDsl.g:8205:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalPerspectiveDsl.g:8206:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
             {
             pushFollow(FOLLOW_55);
             rule__XImportDeclaration__Group_2_0__1__Impl();
@@ -27684,22 +27849,22 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
-    // InternalPerspectiveDsl.g:8159:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    // InternalPerspectiveDsl.g:8213: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:8163:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
-            // InternalPerspectiveDsl.g:8164:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalPerspectiveDsl.g:8217:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalPerspectiveDsl.g:8218:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
             {
-            // InternalPerspectiveDsl.g:8164:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
-            // InternalPerspectiveDsl.g:8165:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalPerspectiveDsl.g:8218:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalPerspectiveDsl.g:8219:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8166:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalPerspectiveDsl.g:8220:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             int alt62=2;
             int LA62_0 = input.LA(1);
 
@@ -27708,7 +27873,7 @@
             }
             switch (alt62) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8166:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    // InternalPerspectiveDsl.g:8220:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ExtensionAssignment_2_0_1();
@@ -27746,14 +27911,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
-    // InternalPerspectiveDsl.g:8174:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    // InternalPerspectiveDsl.g:8228: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:8178:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
-            // InternalPerspectiveDsl.g:8179:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            // InternalPerspectiveDsl.g:8232:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalPerspectiveDsl.g:8233:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
             {
             pushFollow(FOLLOW_56);
             rule__XImportDeclaration__Group_2_0__2__Impl();
@@ -27784,23 +27949,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
-    // InternalPerspectiveDsl.g:8186:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    // InternalPerspectiveDsl.g:8240: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:8190:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
-            // InternalPerspectiveDsl.g:8191:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalPerspectiveDsl.g:8244:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalPerspectiveDsl.g:8245:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
             {
-            // InternalPerspectiveDsl.g:8191:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
-            // InternalPerspectiveDsl.g:8192:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalPerspectiveDsl.g:8245:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalPerspectiveDsl.g:8246:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
             }
-            // InternalPerspectiveDsl.g:8193:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
-            // InternalPerspectiveDsl.g:8193:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            // InternalPerspectiveDsl.g:8247:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalPerspectiveDsl.g:8247:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
@@ -27835,14 +28000,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
-    // InternalPerspectiveDsl.g:8201:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    // InternalPerspectiveDsl.g:8255: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:8205:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
-            // InternalPerspectiveDsl.g:8206:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            // InternalPerspectiveDsl.g:8259:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalPerspectiveDsl.g:8260:2: rule__XImportDeclaration__Group_2_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_0__3__Impl();
@@ -27868,23 +28033,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
-    // InternalPerspectiveDsl.g:8212:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:8266: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:8216:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
-            // InternalPerspectiveDsl.g:8217:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalPerspectiveDsl.g:8270:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalPerspectiveDsl.g:8271:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:8217:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
-            // InternalPerspectiveDsl.g:8218:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalPerspectiveDsl.g:8271:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalPerspectiveDsl.g:8272:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
             }
-            // InternalPerspectiveDsl.g:8219:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
-            // InternalPerspectiveDsl.g:8219:3: rule__XImportDeclaration__Alternatives_2_0_3
+            // InternalPerspectiveDsl.g:8273:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalPerspectiveDsl.g:8273:3: rule__XImportDeclaration__Alternatives_2_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2_0_3();
@@ -27919,14 +28084,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
-    // InternalPerspectiveDsl.g:8228:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    // InternalPerspectiveDsl.g:8282: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:8232:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
-            // InternalPerspectiveDsl.g:8233:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            // InternalPerspectiveDsl.g:8286:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalPerspectiveDsl.g:8287:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
             {
             pushFollow(FOLLOW_7);
             rule__XImportDeclaration__Group_2_3__0__Impl();
@@ -27957,23 +28122,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
-    // InternalPerspectiveDsl.g:8240:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    // InternalPerspectiveDsl.g:8294: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:8244:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
-            // InternalPerspectiveDsl.g:8245:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalPerspectiveDsl.g:8298:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalPerspectiveDsl.g:8299:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
             {
-            // InternalPerspectiveDsl.g:8245:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
-            // InternalPerspectiveDsl.g:8246:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalPerspectiveDsl.g:8299:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalPerspectiveDsl.g:8300:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
             }
-            // InternalPerspectiveDsl.g:8247:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
-            // InternalPerspectiveDsl.g:8247:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            // InternalPerspectiveDsl.g:8301:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalPerspectiveDsl.g:8301:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__FqnImportAssignment_2_3_0();
@@ -28008,14 +28173,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
-    // InternalPerspectiveDsl.g:8255:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    // InternalPerspectiveDsl.g:8309: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:8259:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
-            // InternalPerspectiveDsl.g:8260:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            // InternalPerspectiveDsl.g:8313:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalPerspectiveDsl.g:8314:2: rule__XImportDeclaration__Group_2_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_3__1__Impl();
@@ -28041,23 +28206,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
-    // InternalPerspectiveDsl.g:8266:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    // InternalPerspectiveDsl.g:8320: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:8270:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
-            // InternalPerspectiveDsl.g:8271:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalPerspectiveDsl.g:8324:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalPerspectiveDsl.g:8325:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
             {
-            // InternalPerspectiveDsl.g:8271:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
-            // InternalPerspectiveDsl.g:8272:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalPerspectiveDsl.g:8325:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalPerspectiveDsl.g:8326:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
             }
-            // InternalPerspectiveDsl.g:8273:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
-            // InternalPerspectiveDsl.g:8273:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            // InternalPerspectiveDsl.g:8327:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalPerspectiveDsl.g:8327:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
@@ -28092,14 +28257,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0"
-    // InternalPerspectiveDsl.g:8282:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    // InternalPerspectiveDsl.g:8336: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:8286:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
-            // InternalPerspectiveDsl.g:8287:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            // InternalPerspectiveDsl.g:8340:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalPerspectiveDsl.g:8341:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
             {
             pushFollow(FOLLOW_57);
             rule__XAnnotation__Group__0__Impl();
@@ -28130,23 +28295,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0__Impl"
-    // InternalPerspectiveDsl.g:8294:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8348:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
     public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8298:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8299:1: ( () )
+            // InternalPerspectiveDsl.g:8352:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8353:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8299:1: ( () )
-            // InternalPerspectiveDsl.g:8300:2: ()
+            // InternalPerspectiveDsl.g:8353:1: ( () )
+            // InternalPerspectiveDsl.g:8354:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
             }
-            // InternalPerspectiveDsl.g:8301:2: ()
-            // InternalPerspectiveDsl.g:8301:3: 
+            // InternalPerspectiveDsl.g:8355:2: ()
+            // InternalPerspectiveDsl.g:8355:3: 
             {
             }
 
@@ -28171,14 +28336,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1"
-    // InternalPerspectiveDsl.g:8309:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    // InternalPerspectiveDsl.g:8363: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:8313:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
-            // InternalPerspectiveDsl.g:8314:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            // InternalPerspectiveDsl.g:8367:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalPerspectiveDsl.g:8368:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group__1__Impl();
@@ -28209,22 +28374,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1__Impl"
-    // InternalPerspectiveDsl.g:8321:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    // InternalPerspectiveDsl.g:8375:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
     public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8325:1: ( ( '@' ) )
-            // InternalPerspectiveDsl.g:8326:1: ( '@' )
+            // InternalPerspectiveDsl.g:8379:1: ( ( '@' ) )
+            // InternalPerspectiveDsl.g:8380:1: ( '@' )
             {
-            // InternalPerspectiveDsl.g:8326:1: ( '@' )
-            // InternalPerspectiveDsl.g:8327:2: '@'
+            // InternalPerspectiveDsl.g:8380:1: ( '@' )
+            // InternalPerspectiveDsl.g:8381:2: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,97,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
@@ -28250,14 +28415,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2"
-    // InternalPerspectiveDsl.g:8336:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    // InternalPerspectiveDsl.g:8390: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:8340:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
-            // InternalPerspectiveDsl.g:8341:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            // InternalPerspectiveDsl.g:8394:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalPerspectiveDsl.g:8395:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
             {
             pushFollow(FOLLOW_58);
             rule__XAnnotation__Group__2__Impl();
@@ -28288,23 +28453,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2__Impl"
-    // InternalPerspectiveDsl.g:8348:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    // InternalPerspectiveDsl.g:8402: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:8352:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
-            // InternalPerspectiveDsl.g:8353:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:8406:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalPerspectiveDsl.g:8407:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
             {
-            // InternalPerspectiveDsl.g:8353:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
-            // InternalPerspectiveDsl.g:8354:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:8407:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalPerspectiveDsl.g:8408:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
             }
-            // InternalPerspectiveDsl.g:8355:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
-            // InternalPerspectiveDsl.g:8355:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            // InternalPerspectiveDsl.g:8409:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalPerspectiveDsl.g:8409:3: rule__XAnnotation__AnnotationTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__AnnotationTypeAssignment_2();
@@ -28339,14 +28504,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3"
-    // InternalPerspectiveDsl.g:8363:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    // InternalPerspectiveDsl.g:8417: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:8367:1: ( rule__XAnnotation__Group__3__Impl )
-            // InternalPerspectiveDsl.g:8368:2: rule__XAnnotation__Group__3__Impl
+            // InternalPerspectiveDsl.g:8421:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalPerspectiveDsl.g:8422:2: rule__XAnnotation__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__3__Impl();
@@ -28372,31 +28537,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3__Impl"
-    // InternalPerspectiveDsl.g:8374:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    // InternalPerspectiveDsl.g:8428: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:8378:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
-            // InternalPerspectiveDsl.g:8379:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:8432:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalPerspectiveDsl.g:8433:1: ( ( rule__XAnnotation__Group_3__0 )? )
             {
-            // InternalPerspectiveDsl.g:8379:1: ( ( rule__XAnnotation__Group_3__0 )? )
-            // InternalPerspectiveDsl.g:8380:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalPerspectiveDsl.g:8433:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalPerspectiveDsl.g:8434:2: ( rule__XAnnotation__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
             }
-            // InternalPerspectiveDsl.g:8381:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalPerspectiveDsl.g:8435:2: ( rule__XAnnotation__Group_3__0 )?
             int alt63=2;
             int LA63_0 = input.LA(1);
 
-            if ( (LA63_0==96) ) {
+            if ( (LA63_0==98) ) {
                 alt63=1;
             }
             switch (alt63) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8381:3: rule__XAnnotation__Group_3__0
+                    // InternalPerspectiveDsl.g:8435:3: rule__XAnnotation__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3__0();
@@ -28434,14 +28599,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0"
-    // InternalPerspectiveDsl.g:8390:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    // InternalPerspectiveDsl.g:8444: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:8394:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
-            // InternalPerspectiveDsl.g:8395:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            // InternalPerspectiveDsl.g:8448:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalPerspectiveDsl.g:8449:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
             {
             pushFollow(FOLLOW_59);
             rule__XAnnotation__Group_3__0__Impl();
@@ -28472,25 +28637,25 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
-    // InternalPerspectiveDsl.g:8402:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    // InternalPerspectiveDsl.g:8456:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
     public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8406:1: ( ( ( '(' ) ) )
-            // InternalPerspectiveDsl.g:8407:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:8460:1: ( ( ( '(' ) ) )
+            // InternalPerspectiveDsl.g:8461:1: ( ( '(' ) )
             {
-            // InternalPerspectiveDsl.g:8407:1: ( ( '(' ) )
-            // InternalPerspectiveDsl.g:8408:2: ( '(' )
+            // InternalPerspectiveDsl.g:8461:1: ( ( '(' ) )
+            // InternalPerspectiveDsl.g:8462:2: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
             }
-            // InternalPerspectiveDsl.g:8409:2: ( '(' )
-            // InternalPerspectiveDsl.g:8409:3: '('
+            // InternalPerspectiveDsl.g:8463:2: ( '(' )
+            // InternalPerspectiveDsl.g:8463:3: '('
             {
-            match(input,96,FOLLOW_2); if (state.failed) return ;
+            match(input,98,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -28519,14 +28684,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1"
-    // InternalPerspectiveDsl.g:8417:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    // InternalPerspectiveDsl.g:8471: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:8421:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
-            // InternalPerspectiveDsl.g:8422:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            // InternalPerspectiveDsl.g:8475:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalPerspectiveDsl.g:8476:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
             {
             pushFollow(FOLLOW_59);
             rule__XAnnotation__Group_3__1__Impl();
@@ -28557,31 +28722,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
-    // InternalPerspectiveDsl.g:8429:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    // InternalPerspectiveDsl.g:8483: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:8433:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
-            // InternalPerspectiveDsl.g:8434:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:8487:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalPerspectiveDsl.g:8488:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
             {
-            // InternalPerspectiveDsl.g:8434:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
-            // InternalPerspectiveDsl.g:8435:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:8488:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalPerspectiveDsl.g:8489:2: ( rule__XAnnotation__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
             }
-            // InternalPerspectiveDsl.g:8436:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalPerspectiveDsl.g:8490:2: ( rule__XAnnotation__Alternatives_3_1 )?
             int alt64=2;
             int LA64_0 = input.LA(1);
 
-            if ( ((LA64_0>=RULE_ID && LA64_0<=RULE_DECIMAL)||LA64_0==27||(LA64_0>=34 && LA64_0<=35)||LA64_0==40||(LA64_0>=45 && LA64_0<=50)||LA64_0==54||(LA64_0>=95 && LA64_0<=96)||(LA64_0>=100 && LA64_0<=101)||LA64_0==104||LA64_0==106||(LA64_0>=110 && LA64_0<=118)||LA64_0==120||LA64_0==131) ) {
+            if ( ((LA64_0>=RULE_ID && LA64_0<=RULE_DECIMAL)||LA64_0==27||(LA64_0>=34 && LA64_0<=35)||LA64_0==40||(LA64_0>=45 && LA64_0<=50)||LA64_0==54||(LA64_0>=97 && LA64_0<=98)||(LA64_0>=102 && LA64_0<=103)||LA64_0==106||LA64_0==108||(LA64_0>=112 && LA64_0<=120)||LA64_0==122||LA64_0==133) ) {
                 alt64=1;
             }
             switch (alt64) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8436:3: rule__XAnnotation__Alternatives_3_1
+                    // InternalPerspectiveDsl.g:8490:3: rule__XAnnotation__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Alternatives_3_1();
@@ -28619,14 +28784,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2"
-    // InternalPerspectiveDsl.g:8444:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    // InternalPerspectiveDsl.g:8498: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:8448:1: ( rule__XAnnotation__Group_3__2__Impl )
-            // InternalPerspectiveDsl.g:8449:2: rule__XAnnotation__Group_3__2__Impl
+            // InternalPerspectiveDsl.g:8502:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalPerspectiveDsl.g:8503:2: rule__XAnnotation__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3__2__Impl();
@@ -28652,22 +28817,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
-    // InternalPerspectiveDsl.g:8455:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    // InternalPerspectiveDsl.g:8509:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8459:1: ( ( ')' ) )
-            // InternalPerspectiveDsl.g:8460:1: ( ')' )
+            // InternalPerspectiveDsl.g:8513:1: ( ( ')' ) )
+            // InternalPerspectiveDsl.g:8514:1: ( ')' )
             {
-            // InternalPerspectiveDsl.g:8460:1: ( ')' )
-            // InternalPerspectiveDsl.g:8461:2: ')'
+            // InternalPerspectiveDsl.g:8514:1: ( ')' )
+            // InternalPerspectiveDsl.g:8515:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,99,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -28693,14 +28858,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
-    // InternalPerspectiveDsl.g:8471: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:8525: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:8475:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
-            // InternalPerspectiveDsl.g:8476:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            // InternalPerspectiveDsl.g:8529:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalPerspectiveDsl.g:8530:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotation__Group_3_1_0__0__Impl();
@@ -28731,23 +28896,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:8483:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:8537: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:8487:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
-            // InternalPerspectiveDsl.g:8488:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalPerspectiveDsl.g:8541:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalPerspectiveDsl.g:8542:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:8488:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
-            // InternalPerspectiveDsl.g:8489:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalPerspectiveDsl.g:8542:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalPerspectiveDsl.g:8543:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8490:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
-            // InternalPerspectiveDsl.g:8490:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            // InternalPerspectiveDsl.g:8544:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalPerspectiveDsl.g:8544:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
@@ -28782,14 +28947,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
-    // InternalPerspectiveDsl.g:8498:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    // InternalPerspectiveDsl.g:8552: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:8502:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
-            // InternalPerspectiveDsl.g:8503:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            // InternalPerspectiveDsl.g:8556:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalPerspectiveDsl.g:8557:2: rule__XAnnotation__Group_3_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0__1__Impl();
@@ -28815,35 +28980,35 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
-    // InternalPerspectiveDsl.g:8509:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:8563: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:8513:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
-            // InternalPerspectiveDsl.g:8514:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalPerspectiveDsl.g:8567:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalPerspectiveDsl.g:8568:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:8514:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
-            // InternalPerspectiveDsl.g:8515:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalPerspectiveDsl.g:8568:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalPerspectiveDsl.g:8569:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8516:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalPerspectiveDsl.g:8570:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             loop65:
             do {
                 int alt65=2;
                 int LA65_0 = input.LA(1);
 
-                if ( (LA65_0==98) ) {
+                if ( (LA65_0==100) ) {
                     alt65=1;
                 }
 
 
                 switch (alt65) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8516:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    // InternalPerspectiveDsl.g:8570:3: rule__XAnnotation__Group_3_1_0_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotation__Group_3_1_0_1__0();
@@ -28884,14 +29049,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
-    // InternalPerspectiveDsl.g:8525: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:8579:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
     public final void rule__XAnnotation__Group_3_1_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8529:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
-            // InternalPerspectiveDsl.g:8530:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            // InternalPerspectiveDsl.g:8583:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalPerspectiveDsl.g:8584:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group_3_1_0_1__0__Impl();
@@ -28922,22 +29087,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:8537:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:8591: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:8541:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:8542:1: ( ',' )
+            // InternalPerspectiveDsl.g:8595:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:8596:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:8542:1: ( ',' )
-            // InternalPerspectiveDsl.g:8543:2: ','
+            // InternalPerspectiveDsl.g:8596:1: ( ',' )
+            // InternalPerspectiveDsl.g:8597:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
@@ -28963,14 +29128,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
-    // InternalPerspectiveDsl.g:8552:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8606: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:8556:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:8557:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            // InternalPerspectiveDsl.g:8610:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:8611:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0_1__1__Impl();
@@ -28996,23 +29161,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:8563:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:8617: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:8567:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
-            // InternalPerspectiveDsl.g:8568:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalPerspectiveDsl.g:8621:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalPerspectiveDsl.g:8622:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:8568:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
-            // InternalPerspectiveDsl.g:8569:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalPerspectiveDsl.g:8622:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalPerspectiveDsl.g:8623:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8570:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
-            // InternalPerspectiveDsl.g:8570:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            // InternalPerspectiveDsl.g:8624:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalPerspectiveDsl.g:8624:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
@@ -29047,14 +29212,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
-    // InternalPerspectiveDsl.g:8579:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    // InternalPerspectiveDsl.g:8633: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:8583:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
-            // InternalPerspectiveDsl.g:8584:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            // InternalPerspectiveDsl.g:8637:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalPerspectiveDsl.g:8638:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValuePair__Group__0__Impl();
@@ -29085,23 +29250,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
-    // InternalPerspectiveDsl.g:8591:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8645: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:8595:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8596:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:8649:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8650:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8596:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
-            // InternalPerspectiveDsl.g:8597:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalPerspectiveDsl.g:8650:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalPerspectiveDsl.g:8651:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
             }
-            // InternalPerspectiveDsl.g:8598:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
-            // InternalPerspectiveDsl.g:8598:3: rule__XAnnotationElementValuePair__Group_0__0
+            // InternalPerspectiveDsl.g:8652:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalPerspectiveDsl.g:8652:3: rule__XAnnotationElementValuePair__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0();
@@ -29136,14 +29301,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
-    // InternalPerspectiveDsl.g:8606:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:8660: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:8610:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
-            // InternalPerspectiveDsl.g:8611:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            // InternalPerspectiveDsl.g:8664:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalPerspectiveDsl.g:8665:2: rule__XAnnotationElementValuePair__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__1__Impl();
@@ -29169,23 +29334,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
-    // InternalPerspectiveDsl.g:8617:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    // InternalPerspectiveDsl.g:8671: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:8621:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
-            // InternalPerspectiveDsl.g:8622:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:8675:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalPerspectiveDsl.g:8676:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
             {
-            // InternalPerspectiveDsl.g:8622:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
-            // InternalPerspectiveDsl.g:8623:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:8676:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalPerspectiveDsl.g:8677:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
             }
-            // InternalPerspectiveDsl.g:8624:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
-            // InternalPerspectiveDsl.g:8624:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            // InternalPerspectiveDsl.g:8678:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalPerspectiveDsl.g:8678:3: rule__XAnnotationElementValuePair__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ValueAssignment_1();
@@ -29220,14 +29385,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
-    // InternalPerspectiveDsl.g:8633:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    // InternalPerspectiveDsl.g:8687: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:8637:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
-            // InternalPerspectiveDsl.g:8638:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            // InternalPerspectiveDsl.g:8691:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalPerspectiveDsl.g:8692:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0__Impl();
@@ -29253,23 +29418,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:8644:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8698: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:8648:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8649:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8702:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8703:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8649:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8650:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8703:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8704:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8651:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:8651:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            // InternalPerspectiveDsl.g:8705:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8705:3: rule__XAnnotationElementValuePair__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__0();
@@ -29304,14 +29469,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
-    // InternalPerspectiveDsl.g:8660:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    // InternalPerspectiveDsl.g:8714: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:8664:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
-            // InternalPerspectiveDsl.g:8665:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            // InternalPerspectiveDsl.g:8718:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalPerspectiveDsl.g:8719:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
             {
             pushFollow(FOLLOW_63);
             rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
@@ -29342,23 +29507,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8672:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    // InternalPerspectiveDsl.g:8726: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:8676:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
-            // InternalPerspectiveDsl.g:8677:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalPerspectiveDsl.g:8730:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalPerspectiveDsl.g:8731:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
             {
-            // InternalPerspectiveDsl.g:8677:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
-            // InternalPerspectiveDsl.g:8678:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalPerspectiveDsl.g:8731:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalPerspectiveDsl.g:8732:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8679:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
-            // InternalPerspectiveDsl.g:8679:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            // InternalPerspectiveDsl.g:8733:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalPerspectiveDsl.g:8733:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
@@ -29393,14 +29558,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
-    // InternalPerspectiveDsl.g:8687:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:8741: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:8691:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:8692:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            // InternalPerspectiveDsl.g:8745:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:8746:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
@@ -29426,17 +29591,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:8698:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:8752: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:8702:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:8703:1: ( '=' )
+            // InternalPerspectiveDsl.g:8756:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:8757:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:8703:1: ( '=' )
-            // InternalPerspectiveDsl.g:8704:2: '='
+            // InternalPerspectiveDsl.g:8757:1: ( '=' )
+            // InternalPerspectiveDsl.g:8758:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
@@ -29467,14 +29632,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
-    // InternalPerspectiveDsl.g:8714:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    // InternalPerspectiveDsl.g:8768: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:8718:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
-            // InternalPerspectiveDsl.g:8719:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            // InternalPerspectiveDsl.g:8772:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalPerspectiveDsl.g:8773:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
@@ -29505,23 +29670,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:8726:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8780: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:8730:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8731:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8784:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8785:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8731:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8732:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8785:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8786:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8733:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:8733:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            // InternalPerspectiveDsl.g:8787:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:8787:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
@@ -29556,14 +29721,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
-    // InternalPerspectiveDsl.g:8741:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    // InternalPerspectiveDsl.g:8795: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:8745:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
-            // InternalPerspectiveDsl.g:8746:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            // InternalPerspectiveDsl.g:8799:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalPerspectiveDsl.g:8800:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
@@ -29594,31 +29759,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:8753:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:8807: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:8757:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:8758:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:8811:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:8812:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:8758:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:8759:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:8812:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:8813:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:8760:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:8814:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             int alt66=2;
             int LA66_0 = input.LA(1);
 
-            if ( ((LA66_0>=RULE_ID && LA66_0<=RULE_DECIMAL)||LA66_0==27||(LA66_0>=34 && LA66_0<=35)||LA66_0==40||(LA66_0>=45 && LA66_0<=50)||LA66_0==54||(LA66_0>=95 && LA66_0<=96)||(LA66_0>=100 && LA66_0<=101)||LA66_0==104||LA66_0==106||(LA66_0>=110 && LA66_0<=118)||LA66_0==120||LA66_0==131) ) {
+            if ( ((LA66_0>=RULE_ID && LA66_0<=RULE_DECIMAL)||LA66_0==27||(LA66_0>=34 && LA66_0<=35)||LA66_0==40||(LA66_0>=45 && LA66_0<=50)||LA66_0==54||(LA66_0>=97 && LA66_0<=98)||(LA66_0>=102 && LA66_0<=103)||LA66_0==106||LA66_0==108||(LA66_0>=112 && LA66_0<=120)||LA66_0==122||LA66_0==133) ) {
                 alt66=1;
             }
             switch (alt66) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:8760:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    // InternalPerspectiveDsl.g:8814:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
@@ -29656,14 +29821,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
-    // InternalPerspectiveDsl.g:8768:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:8822: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:8772:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:8773:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:8826:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:8827:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
@@ -29689,22 +29854,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:8779:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:8833:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:8783:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:8784:1: ( ']' )
+            // InternalPerspectiveDsl.g:8837:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:8838:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:8784:1: ( ']' )
-            // InternalPerspectiveDsl.g:8785:2: ']'
+            // InternalPerspectiveDsl.g:8838:1: ( ']' )
+            // InternalPerspectiveDsl.g:8839:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,101,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -29730,14 +29895,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
-    // InternalPerspectiveDsl.g:8795:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:8849: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:8799:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:8800:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            // InternalPerspectiveDsl.g:8853:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:8854:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
@@ -29763,23 +29928,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8806:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:8860: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:8810:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:8811:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8864:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:8865:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:8811:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:8812:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8865:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:8866:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8813:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
-            // InternalPerspectiveDsl.g:8813:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            // InternalPerspectiveDsl.g:8867:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:8867:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
@@ -29814,14 +29979,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
-    // InternalPerspectiveDsl.g:8822: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:8876: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:8826:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
-            // InternalPerspectiveDsl.g:8827:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            // InternalPerspectiveDsl.g:8880:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalPerspectiveDsl.g:8881:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
             {
             pushFollow(FOLLOW_65);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
@@ -29852,23 +30017,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:8834:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:8888: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:8838:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:8839:1: ( () )
+            // InternalPerspectiveDsl.g:8892:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:8893:1: ( () )
             {
-            // InternalPerspectiveDsl.g:8839:1: ( () )
-            // InternalPerspectiveDsl.g:8840:2: ()
+            // InternalPerspectiveDsl.g:8893:1: ( () )
+            // InternalPerspectiveDsl.g:8894:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:8841:2: ()
-            // InternalPerspectiveDsl.g:8841:3: 
+            // InternalPerspectiveDsl.g:8895:2: ()
+            // InternalPerspectiveDsl.g:8895:3: 
             {
             }
 
@@ -29893,14 +30058,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
-    // InternalPerspectiveDsl.g:8849: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:8903: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:8853:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
-            // InternalPerspectiveDsl.g:8854:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            // InternalPerspectiveDsl.g:8907:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalPerspectiveDsl.g:8908:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
             {
             pushFollow(FOLLOW_66);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
@@ -29931,22 +30096,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:8861:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:8915: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:8865:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:8866:1: ( '#' )
+            // InternalPerspectiveDsl.g:8919:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:8920:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:8866:1: ( '#' )
-            // InternalPerspectiveDsl.g:8867:2: '#'
+            // InternalPerspectiveDsl.g:8920:1: ( '#' )
+            // InternalPerspectiveDsl.g:8921:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -29972,14 +30137,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
-    // InternalPerspectiveDsl.g:8876:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:8930: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:8880:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:8881:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:8934:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:8935:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
@@ -30005,22 +30170,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:8887:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:8941: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:8891:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:8892:1: ( '[' )
+            // InternalPerspectiveDsl.g:8945:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:8946:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:8892:1: ( '[' )
-            // InternalPerspectiveDsl.g:8893:2: '['
+            // InternalPerspectiveDsl.g:8946:1: ( '[' )
+            // InternalPerspectiveDsl.g:8947:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,103,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -30046,14 +30211,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
-    // InternalPerspectiveDsl.g:8903:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:8957: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:8907:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:8908:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            // InternalPerspectiveDsl.g:8961:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:8962:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
@@ -30084,23 +30249,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:8915:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:8969: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:8919:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:8920:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:8973:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:8974:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:8920:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:8921:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:8974:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:8975:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:8922:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:8922:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            // InternalPerspectiveDsl.g:8976:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:8976:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
@@ -30135,14 +30300,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
-    // InternalPerspectiveDsl.g:8930:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:8984: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:8934:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:8935:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:8988:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:8989:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
@@ -30168,35 +30333,35 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:8941:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:8995: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:8945:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:8946:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:8999:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9000:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:8946:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:8947:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:9000:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9001:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:8948:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:9002:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             loop67:
             do {
                 int alt67=2;
                 int LA67_0 = input.LA(1);
 
-                if ( (LA67_0==98) ) {
+                if ( (LA67_0==100) ) {
                     alt67=1;
                 }
 
 
                 switch (alt67) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:8948:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:9002:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
@@ -30237,14 +30402,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:8957: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:9011: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:8961:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:8962:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:9015:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:9016:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
@@ -30275,22 +30440,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:8969:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:9023: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:8973:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:8974:1: ( ',' )
+            // InternalPerspectiveDsl.g:9027:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:9028:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:8974:1: ( ',' )
-            // InternalPerspectiveDsl.g:8975:2: ','
+            // InternalPerspectiveDsl.g:9028:1: ( ',' )
+            // InternalPerspectiveDsl.g:9029:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -30316,14 +30481,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:8984:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9038: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:8988:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:8989:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9042:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9043:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
@@ -30349,23 +30514,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:8995:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9049: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:8999:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9000:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9053:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9054:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9000:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9001:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9054:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9055:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9002:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:9002:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:9056:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9056:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
@@ -30400,14 +30565,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
-    // InternalPerspectiveDsl.g:9011:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    // InternalPerspectiveDsl.g:9065: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:9015:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
-            // InternalPerspectiveDsl.g:9016:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            // InternalPerspectiveDsl.g:9069:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalPerspectiveDsl.g:9070:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
@@ -30438,17 +30603,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:9023:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    // InternalPerspectiveDsl.g:9077: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:9027:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalPerspectiveDsl.g:9028:1: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:9081:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalPerspectiveDsl.g:9082:1: ( ruleXAnnotationOrExpression )
             {
-            // InternalPerspectiveDsl.g:9028:1: ( ruleXAnnotationOrExpression )
-            // InternalPerspectiveDsl.g:9029:2: ruleXAnnotationOrExpression
+            // InternalPerspectiveDsl.g:9082:1: ( ruleXAnnotationOrExpression )
+            // InternalPerspectiveDsl.g:9083:2: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
@@ -30483,14 +30648,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
-    // InternalPerspectiveDsl.g:9038:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9092: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:9042:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:9043:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:9096:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:9097:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
@@ -30516,31 +30681,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:9049:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:9103: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:9053:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:9054:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9107:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:9108:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:9054:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:9055:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:9108:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9109:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9056:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:9110:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             int alt68=2;
             int LA68_0 = input.LA(1);
 
-            if ( (LA68_0==98) ) {
+            if ( (LA68_0==100) ) {
                 alt68=1;
             }
             switch (alt68) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9056:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    // InternalPerspectiveDsl.g:9110:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
@@ -30578,14 +30743,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
-    // InternalPerspectiveDsl.g:9065:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:9119: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:9069:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:9070:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            // InternalPerspectiveDsl.g:9123:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:9124:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
@@ -30616,23 +30781,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9077:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9131: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:9081:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9082:1: ( () )
+            // InternalPerspectiveDsl.g:9135:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9136:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9082:1: ( () )
-            // InternalPerspectiveDsl.g:9083:2: ()
+            // InternalPerspectiveDsl.g:9136:1: ( () )
+            // InternalPerspectiveDsl.g:9137:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9084:2: ()
-            // InternalPerspectiveDsl.g:9084:3: 
+            // InternalPerspectiveDsl.g:9138:2: ()
+            // InternalPerspectiveDsl.g:9138:3: 
             {
             }
 
@@ -30657,14 +30822,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
-    // InternalPerspectiveDsl.g:9092:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9146: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:9096:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9097:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9150:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9151:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
@@ -30690,26 +30855,26 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9103:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    // InternalPerspectiveDsl.g:9157:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9107:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
-            // InternalPerspectiveDsl.g:9108:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9161:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalPerspectiveDsl.g:9162:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
             {
-            // InternalPerspectiveDsl.g:9108:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9109:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9162:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9163:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9109:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
-            // InternalPerspectiveDsl.g:9110:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalPerspectiveDsl.g:9163:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalPerspectiveDsl.g:9164:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9111:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
-            // InternalPerspectiveDsl.g:9111:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            // InternalPerspectiveDsl.g:9165:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalPerspectiveDsl.g:9165:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             {
             pushFollow(FOLLOW_61);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
@@ -30725,26 +30890,26 @@
 
             }
 
-            // InternalPerspectiveDsl.g:9114:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
-            // InternalPerspectiveDsl.g:9115:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:9168:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9169:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9116:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalPerspectiveDsl.g:9170:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             loop69:
             do {
                 int alt69=2;
                 int LA69_0 = input.LA(1);
 
-                if ( (LA69_0==98) ) {
+                if ( (LA69_0==100) ) {
                     alt69=1;
                 }
 
 
                 switch (alt69) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9116:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    // InternalPerspectiveDsl.g:9170:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
@@ -30788,14 +30953,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
-    // InternalPerspectiveDsl.g:9126: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:9180: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:9130:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
-            // InternalPerspectiveDsl.g:9131:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            // InternalPerspectiveDsl.g:9184:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalPerspectiveDsl.g:9185:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
@@ -30826,22 +30991,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9138:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:9192: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:9142:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:9143:1: ( ',' )
+            // InternalPerspectiveDsl.g:9196:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:9197:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:9143:1: ( ',' )
-            // InternalPerspectiveDsl.g:9144:2: ','
+            // InternalPerspectiveDsl.g:9197:1: ( ',' )
+            // InternalPerspectiveDsl.g:9198:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
@@ -30867,14 +31032,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
-    // InternalPerspectiveDsl.g:9153:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9207: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:9157:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9158:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9211:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9212:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
@@ -30900,23 +31065,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9164:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9218: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:9168:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9169:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9222:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9223:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9169:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9170:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:9223:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9224:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9171:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
-            // InternalPerspectiveDsl.g:9171:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            // InternalPerspectiveDsl.g:9225:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalPerspectiveDsl.g:9225:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
@@ -30951,14 +31116,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
-    // InternalPerspectiveDsl.g:9180:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    // InternalPerspectiveDsl.g:9234: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:9184:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
-            // InternalPerspectiveDsl.g:9185:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            // InternalPerspectiveDsl.g:9238:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalPerspectiveDsl.g:9239:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValue__Group_0__0__Impl();
@@ -30989,23 +31154,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:9192:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9246: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:9196:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9197:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9250:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9251:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9197:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9198:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:9251:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9252:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9199:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
-            // InternalPerspectiveDsl.g:9199:3: rule__XAnnotationElementValue__Group_0_0__0
+            // InternalPerspectiveDsl.g:9253:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalPerspectiveDsl.g:9253:3: rule__XAnnotationElementValue__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0();
@@ -31040,14 +31205,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
-    // InternalPerspectiveDsl.g:9207:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    // InternalPerspectiveDsl.g:9261: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:9211:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
-            // InternalPerspectiveDsl.g:9212:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            // InternalPerspectiveDsl.g:9265:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalPerspectiveDsl.g:9266:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
             {
             pushFollow(FOLLOW_64);
             rule__XAnnotationElementValue__Group_0__1__Impl();
@@ -31078,31 +31243,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:9219:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:9273: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:9223:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
-            // InternalPerspectiveDsl.g:9224:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:9277:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalPerspectiveDsl.g:9278:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:9224:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
-            // InternalPerspectiveDsl.g:9225:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:9278:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalPerspectiveDsl.g:9279:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9226:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalPerspectiveDsl.g:9280:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             int alt70=2;
             int LA70_0 = input.LA(1);
 
-            if ( ((LA70_0>=RULE_ID && LA70_0<=RULE_DECIMAL)||LA70_0==27||(LA70_0>=34 && LA70_0<=35)||LA70_0==40||(LA70_0>=45 && LA70_0<=50)||LA70_0==54||(LA70_0>=95 && LA70_0<=96)||(LA70_0>=100 && LA70_0<=101)||LA70_0==104||LA70_0==106||(LA70_0>=110 && LA70_0<=118)||LA70_0==120||LA70_0==131) ) {
+            if ( ((LA70_0>=RULE_ID && LA70_0<=RULE_DECIMAL)||LA70_0==27||(LA70_0>=34 && LA70_0<=35)||LA70_0==40||(LA70_0>=45 && LA70_0<=50)||LA70_0==54||(LA70_0>=97 && LA70_0<=98)||(LA70_0>=102 && LA70_0<=103)||LA70_0==106||LA70_0==108||(LA70_0>=112 && LA70_0<=120)||LA70_0==122||LA70_0==133) ) {
                 alt70=1;
             }
             switch (alt70) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9226:3: rule__XAnnotationElementValue__Group_0_1__0
+                    // InternalPerspectiveDsl.g:9280:3: rule__XAnnotationElementValue__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0_1__0();
@@ -31140,14 +31305,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
-    // InternalPerspectiveDsl.g:9234:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    // InternalPerspectiveDsl.g:9288: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:9238:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
-            // InternalPerspectiveDsl.g:9239:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            // InternalPerspectiveDsl.g:9292:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalPerspectiveDsl.g:9293:2: rule__XAnnotationElementValue__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0__2__Impl();
@@ -31173,22 +31338,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:9245:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    // InternalPerspectiveDsl.g:9299:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9249:1: ( ( ']' ) )
-            // InternalPerspectiveDsl.g:9250:1: ( ']' )
+            // InternalPerspectiveDsl.g:9303:1: ( ( ']' ) )
+            // InternalPerspectiveDsl.g:9304:1: ( ']' )
             {
-            // InternalPerspectiveDsl.g:9250:1: ( ']' )
-            // InternalPerspectiveDsl.g:9251:2: ']'
+            // InternalPerspectiveDsl.g:9304:1: ( ']' )
+            // InternalPerspectiveDsl.g:9305:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,101,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -31214,14 +31379,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
-    // InternalPerspectiveDsl.g:9261:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9315: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:9265:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
-            // InternalPerspectiveDsl.g:9266:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            // InternalPerspectiveDsl.g:9319:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalPerspectiveDsl.g:9320:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0__Impl();
@@ -31247,23 +31412,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9272:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9326: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:9276:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9277:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9330:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9331:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9277:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9278:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:9331:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9332:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9279:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
-            // InternalPerspectiveDsl.g:9279:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            // InternalPerspectiveDsl.g:9333:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalPerspectiveDsl.g:9333:3: rule__XAnnotationElementValue__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__0();
@@ -31298,14 +31463,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
-    // InternalPerspectiveDsl.g:9288: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:9342: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:9292:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
-            // InternalPerspectiveDsl.g:9293:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            // InternalPerspectiveDsl.g:9346:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalPerspectiveDsl.g:9347:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
             {
             pushFollow(FOLLOW_65);
             rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
@@ -31336,23 +31501,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9300:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9354: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:9304:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9305:1: ( () )
+            // InternalPerspectiveDsl.g:9358:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9359:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9305:1: ( () )
-            // InternalPerspectiveDsl.g:9306:2: ()
+            // InternalPerspectiveDsl.g:9359:1: ( () )
+            // InternalPerspectiveDsl.g:9360:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9307:2: ()
-            // InternalPerspectiveDsl.g:9307:3: 
+            // InternalPerspectiveDsl.g:9361:2: ()
+            // InternalPerspectiveDsl.g:9361:3: 
             {
             }
 
@@ -31377,14 +31542,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
-    // InternalPerspectiveDsl.g:9315: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:9369: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:9319:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
-            // InternalPerspectiveDsl.g:9320:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            // InternalPerspectiveDsl.g:9373:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalPerspectiveDsl.g:9374:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
             {
             pushFollow(FOLLOW_66);
             rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
@@ -31415,22 +31580,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9327:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalPerspectiveDsl.g:9381: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:9331:1: ( ( '#' ) )
-            // InternalPerspectiveDsl.g:9332:1: ( '#' )
+            // InternalPerspectiveDsl.g:9385:1: ( ( '#' ) )
+            // InternalPerspectiveDsl.g:9386:1: ( '#' )
             {
-            // InternalPerspectiveDsl.g:9332:1: ( '#' )
-            // InternalPerspectiveDsl.g:9333:2: '#'
+            // InternalPerspectiveDsl.g:9386:1: ( '#' )
+            // InternalPerspectiveDsl.g:9387:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -31456,14 +31621,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
-    // InternalPerspectiveDsl.g:9342:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    // InternalPerspectiveDsl.g:9396: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:9346:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
-            // InternalPerspectiveDsl.g:9347:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            // InternalPerspectiveDsl.g:9400:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalPerspectiveDsl.g:9401:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
@@ -31489,22 +31654,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
-    // InternalPerspectiveDsl.g:9353:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalPerspectiveDsl.g:9407: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:9357:1: ( ( '[' ) )
-            // InternalPerspectiveDsl.g:9358:1: ( '[' )
+            // InternalPerspectiveDsl.g:9411:1: ( ( '[' ) )
+            // InternalPerspectiveDsl.g:9412:1: ( '[' )
             {
-            // InternalPerspectiveDsl.g:9358:1: ( '[' )
-            // InternalPerspectiveDsl.g:9359:2: '['
+            // InternalPerspectiveDsl.g:9412:1: ( '[' )
+            // InternalPerspectiveDsl.g:9413:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,103,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -31530,14 +31695,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
-    // InternalPerspectiveDsl.g:9369:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    // InternalPerspectiveDsl.g:9423: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:9373:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
-            // InternalPerspectiveDsl.g:9374:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            // InternalPerspectiveDsl.g:9427:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalPerspectiveDsl.g:9428:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
             {
             pushFollow(FOLLOW_60);
             rule__XAnnotationElementValue__Group_0_1__0__Impl();
@@ -31568,23 +31733,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
-    // InternalPerspectiveDsl.g:9381:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    // InternalPerspectiveDsl.g:9435: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:9385:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
-            // InternalPerspectiveDsl.g:9386:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:9439:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalPerspectiveDsl.g:9440:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
             {
-            // InternalPerspectiveDsl.g:9386:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
-            // InternalPerspectiveDsl.g:9387:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:9440:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalPerspectiveDsl.g:9441:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9388:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
-            // InternalPerspectiveDsl.g:9388:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            // InternalPerspectiveDsl.g:9442:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalPerspectiveDsl.g:9442:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
@@ -31619,14 +31784,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
-    // InternalPerspectiveDsl.g:9396:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9450: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:9400:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
-            // InternalPerspectiveDsl.g:9401:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            // InternalPerspectiveDsl.g:9454:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalPerspectiveDsl.g:9455:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1__1__Impl();
@@ -31652,35 +31817,35 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
-    // InternalPerspectiveDsl.g:9407:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:9461: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:9411:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9412:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9465:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalPerspectiveDsl.g:9466:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9412:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
-            // InternalPerspectiveDsl.g:9413:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:9466:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalPerspectiveDsl.g:9467:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9414:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalPerspectiveDsl.g:9468:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             loop71:
             do {
                 int alt71=2;
                 int LA71_0 = input.LA(1);
 
-                if ( (LA71_0==98) ) {
+                if ( (LA71_0==100) ) {
                     alt71=1;
                 }
 
 
                 switch (alt71) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9414:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    // InternalPerspectiveDsl.g:9468:3: rule__XAnnotationElementValue__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_61);
             	    rule__XAnnotationElementValue__Group_0_1_1__0();
@@ -31721,14 +31886,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
-    // InternalPerspectiveDsl.g:9423: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:9477: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:9427:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
-            // InternalPerspectiveDsl.g:9428:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            // InternalPerspectiveDsl.g:9481:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalPerspectiveDsl.g:9482:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
@@ -31759,22 +31924,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9435:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalPerspectiveDsl.g:9489: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:9439:1: ( ( ',' ) )
-            // InternalPerspectiveDsl.g:9440:1: ( ',' )
+            // InternalPerspectiveDsl.g:9493:1: ( ( ',' ) )
+            // InternalPerspectiveDsl.g:9494:1: ( ',' )
             {
-            // InternalPerspectiveDsl.g:9440:1: ( ',' )
-            // InternalPerspectiveDsl.g:9441:2: ','
+            // InternalPerspectiveDsl.g:9494:1: ( ',' )
+            // InternalPerspectiveDsl.g:9495:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -31800,14 +31965,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
-    // InternalPerspectiveDsl.g:9450:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9504: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:9454:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9455:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9508:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9509:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
@@ -31833,23 +31998,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9461:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9515: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:9465:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9466:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9519:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9520:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9466:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9467:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9520:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9521:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9468:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
-            // InternalPerspectiveDsl.g:9468:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            // InternalPerspectiveDsl.g:9522:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalPerspectiveDsl.g:9522:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
@@ -31884,14 +32049,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0"
-    // InternalPerspectiveDsl.g:9477:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    // InternalPerspectiveDsl.g:9531: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:9481:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
-            // InternalPerspectiveDsl.g:9482:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            // InternalPerspectiveDsl.g:9535:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalPerspectiveDsl.g:9536:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
             {
             pushFollow(FOLLOW_67);
             rule__XAssignment__Group_0__0__Impl();
@@ -31922,23 +32087,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
-    // InternalPerspectiveDsl.g:9489:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9543:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9493:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9494:1: ( () )
+            // InternalPerspectiveDsl.g:9547:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9548:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9494:1: ( () )
-            // InternalPerspectiveDsl.g:9495:2: ()
+            // InternalPerspectiveDsl.g:9548:1: ( () )
+            // InternalPerspectiveDsl.g:9549:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9496:2: ()
-            // InternalPerspectiveDsl.g:9496:3: 
+            // InternalPerspectiveDsl.g:9550:2: ()
+            // InternalPerspectiveDsl.g:9550:3: 
             {
             }
 
@@ -31963,14 +32128,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1"
-    // InternalPerspectiveDsl.g:9504:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    // InternalPerspectiveDsl.g:9558: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:9508:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
-            // InternalPerspectiveDsl.g:9509:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            // InternalPerspectiveDsl.g:9562:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalPerspectiveDsl.g:9563:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
             {
             pushFollow(FOLLOW_63);
             rule__XAssignment__Group_0__1__Impl();
@@ -32001,23 +32166,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
-    // InternalPerspectiveDsl.g:9516:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9570: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:9520:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9521:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:9574:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9575:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9521:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
-            // InternalPerspectiveDsl.g:9522:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:9575:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalPerspectiveDsl.g:9576:2: ( rule__XAssignment__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9523:2: ( rule__XAssignment__FeatureAssignment_0_1 )
-            // InternalPerspectiveDsl.g:9523:3: rule__XAssignment__FeatureAssignment_0_1
+            // InternalPerspectiveDsl.g:9577:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalPerspectiveDsl.g:9577:3: rule__XAssignment__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_0_1();
@@ -32052,14 +32217,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2"
-    // InternalPerspectiveDsl.g:9531:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    // InternalPerspectiveDsl.g:9585: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:9535:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
-            // InternalPerspectiveDsl.g:9536:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            // InternalPerspectiveDsl.g:9589:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalPerspectiveDsl.g:9590:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
             {
             pushFollow(FOLLOW_62);
             rule__XAssignment__Group_0__2__Impl();
@@ -32090,17 +32255,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
-    // InternalPerspectiveDsl.g:9543:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    // InternalPerspectiveDsl.g:9597: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:9547:1: ( ( ruleOpSingleAssign ) )
-            // InternalPerspectiveDsl.g:9548:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:9601:1: ( ( ruleOpSingleAssign ) )
+            // InternalPerspectiveDsl.g:9602:1: ( ruleOpSingleAssign )
             {
-            // InternalPerspectiveDsl.g:9548:1: ( ruleOpSingleAssign )
-            // InternalPerspectiveDsl.g:9549:2: ruleOpSingleAssign
+            // InternalPerspectiveDsl.g:9602:1: ( ruleOpSingleAssign )
+            // InternalPerspectiveDsl.g:9603:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
@@ -32135,14 +32300,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3"
-    // InternalPerspectiveDsl.g:9558:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    // InternalPerspectiveDsl.g:9612: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:9562:1: ( rule__XAssignment__Group_0__3__Impl )
-            // InternalPerspectiveDsl.g:9563:2: rule__XAssignment__Group_0__3__Impl
+            // InternalPerspectiveDsl.g:9616:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalPerspectiveDsl.g:9617:2: rule__XAssignment__Group_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_0__3__Impl();
@@ -32168,23 +32333,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
-    // InternalPerspectiveDsl.g:9569:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    // InternalPerspectiveDsl.g:9623: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:9573:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
-            // InternalPerspectiveDsl.g:9574:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalPerspectiveDsl.g:9627:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalPerspectiveDsl.g:9628:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
             {
-            // InternalPerspectiveDsl.g:9574:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
-            // InternalPerspectiveDsl.g:9575:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalPerspectiveDsl.g:9628:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalPerspectiveDsl.g:9629:2: ( rule__XAssignment__ValueAssignment_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
             }
-            // InternalPerspectiveDsl.g:9576:2: ( rule__XAssignment__ValueAssignment_0_3 )
-            // InternalPerspectiveDsl.g:9576:3: rule__XAssignment__ValueAssignment_0_3
+            // InternalPerspectiveDsl.g:9630:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalPerspectiveDsl.g:9630:3: rule__XAssignment__ValueAssignment_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__ValueAssignment_0_3();
@@ -32219,14 +32384,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0"
-    // InternalPerspectiveDsl.g:9585:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    // InternalPerspectiveDsl.g:9639: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:9589:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
-            // InternalPerspectiveDsl.g:9590:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            // InternalPerspectiveDsl.g:9643:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalPerspectiveDsl.g:9644:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
             {
             pushFollow(FOLLOW_68);
             rule__XAssignment__Group_1__0__Impl();
@@ -32257,17 +32422,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:9597:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    // InternalPerspectiveDsl.g:9651: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:9601:1: ( ( ruleXOrExpression ) )
-            // InternalPerspectiveDsl.g:9602:1: ( ruleXOrExpression )
+            // InternalPerspectiveDsl.g:9655:1: ( ( ruleXOrExpression ) )
+            // InternalPerspectiveDsl.g:9656:1: ( ruleXOrExpression )
             {
-            // InternalPerspectiveDsl.g:9602:1: ( ruleXOrExpression )
-            // InternalPerspectiveDsl.g:9603:2: ruleXOrExpression
+            // InternalPerspectiveDsl.g:9656:1: ( ruleXOrExpression )
+            // InternalPerspectiveDsl.g:9657:2: ruleXOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
@@ -32302,14 +32467,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1"
-    // InternalPerspectiveDsl.g:9612:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9666: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:9616:1: ( rule__XAssignment__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:9617:2: rule__XAssignment__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:9670:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:9671:2: rule__XAssignment__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1__1__Impl();
@@ -32335,27 +32500,27 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:9623:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    // InternalPerspectiveDsl.g:9677: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:9627:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
-            // InternalPerspectiveDsl.g:9628:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9681:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalPerspectiveDsl.g:9682:1: ( ( rule__XAssignment__Group_1_1__0 )? )
             {
-            // InternalPerspectiveDsl.g:9628:1: ( ( rule__XAssignment__Group_1_1__0 )? )
-            // InternalPerspectiveDsl.g:9629:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:9682:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalPerspectiveDsl.g:9683:2: ( rule__XAssignment__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9630:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalPerspectiveDsl.g:9684:2: ( rule__XAssignment__Group_1_1__0 )?
             int alt72=2;
             alt72 = dfa72.predict(input);
             switch (alt72) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9630:3: rule__XAssignment__Group_1_1__0
+                    // InternalPerspectiveDsl.g:9684:3: rule__XAssignment__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1_1__0();
@@ -32393,14 +32558,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0"
-    // InternalPerspectiveDsl.g:9639:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    // InternalPerspectiveDsl.g:9693: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:9643:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
-            // InternalPerspectiveDsl.g:9644:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            // InternalPerspectiveDsl.g:9697:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalPerspectiveDsl.g:9698:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAssignment__Group_1_1__0__Impl();
@@ -32431,23 +32596,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
-    // InternalPerspectiveDsl.g:9651:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9705: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:9655:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9656:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9709:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9710:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9656:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
-            // InternalPerspectiveDsl.g:9657:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:9710:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalPerspectiveDsl.g:9711:2: ( rule__XAssignment__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
             }
-            // InternalPerspectiveDsl.g:9658:2: ( rule__XAssignment__Group_1_1_0__0 )
-            // InternalPerspectiveDsl.g:9658:3: rule__XAssignment__Group_1_1_0__0
+            // InternalPerspectiveDsl.g:9712:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalPerspectiveDsl.g:9712:3: rule__XAssignment__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0();
@@ -32482,14 +32647,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1"
-    // InternalPerspectiveDsl.g:9666:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    // InternalPerspectiveDsl.g:9720: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:9670:1: ( rule__XAssignment__Group_1_1__1__Impl )
-            // InternalPerspectiveDsl.g:9671:2: rule__XAssignment__Group_1_1__1__Impl
+            // InternalPerspectiveDsl.g:9724:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalPerspectiveDsl.g:9725:2: rule__XAssignment__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1__1__Impl();
@@ -32515,23 +32680,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
-    // InternalPerspectiveDsl.g:9677:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:9731: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:9681:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
-            // InternalPerspectiveDsl.g:9682:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9735:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalPerspectiveDsl.g:9736:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:9682:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
-            // InternalPerspectiveDsl.g:9683:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:9736:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalPerspectiveDsl.g:9737:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalPerspectiveDsl.g:9684:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
-            // InternalPerspectiveDsl.g:9684:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            // InternalPerspectiveDsl.g:9738:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalPerspectiveDsl.g:9738:3: rule__XAssignment__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__RightOperandAssignment_1_1_1();
@@ -32566,14 +32731,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
-    // InternalPerspectiveDsl.g:9693:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:9747: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:9697:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:9698:2: rule__XAssignment__Group_1_1_0__0__Impl
+            // InternalPerspectiveDsl.g:9751:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:9752:2: rule__XAssignment__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0__Impl();
@@ -32599,23 +32764,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:9704:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:9758: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:9708:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:9709:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9762:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:9763:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:9709:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:9710:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9763:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:9764:2: ( rule__XAssignment__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9711:2: ( rule__XAssignment__Group_1_1_0_0__0 )
-            // InternalPerspectiveDsl.g:9711:3: rule__XAssignment__Group_1_1_0_0__0
+            // InternalPerspectiveDsl.g:9765:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalPerspectiveDsl.g:9765:3: rule__XAssignment__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__0();
@@ -32650,14 +32815,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
-    // InternalPerspectiveDsl.g:9720: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:9774:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
     public final void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9724:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
-            // InternalPerspectiveDsl.g:9725:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            // InternalPerspectiveDsl.g:9778:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalPerspectiveDsl.g:9779:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
             {
             pushFollow(FOLLOW_68);
             rule__XAssignment__Group_1_1_0_0__0__Impl();
@@ -32688,23 +32853,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:9732:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:9786: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:9736:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:9737:1: ( () )
+            // InternalPerspectiveDsl.g:9790:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:9791:1: ( () )
             {
-            // InternalPerspectiveDsl.g:9737:1: ( () )
-            // InternalPerspectiveDsl.g:9738:2: ()
+            // InternalPerspectiveDsl.g:9791:1: ( () )
+            // InternalPerspectiveDsl.g:9792:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:9739:2: ()
-            // InternalPerspectiveDsl.g:9739:3: 
+            // InternalPerspectiveDsl.g:9793:2: ()
+            // InternalPerspectiveDsl.g:9793:3: 
             {
             }
 
@@ -32729,14 +32894,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
-    // InternalPerspectiveDsl.g:9747:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:9801: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:9751:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:9752:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:9805:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:9806:2: rule__XAssignment__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__1__Impl();
@@ -32762,23 +32927,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:9758:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:9812: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:9762:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:9763:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9816:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:9817:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:9763:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:9764:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9817:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:9818:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:9765:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
-            // InternalPerspectiveDsl.g:9765:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            // InternalPerspectiveDsl.g:9819:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalPerspectiveDsl.g:9819:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_1_1_0_0_1();
@@ -32813,14 +32978,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0"
-    // InternalPerspectiveDsl.g:9774:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    // InternalPerspectiveDsl.g:9828: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:9778:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
-            // InternalPerspectiveDsl.g:9779:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            // InternalPerspectiveDsl.g:9832:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalPerspectiveDsl.g:9833:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
             {
             pushFollow(FOLLOW_69);
             rule__OpMultiAssign__Group_5__0__Impl();
@@ -32851,17 +33016,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
-    // InternalPerspectiveDsl.g:9786:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:9840:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9790:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:9791:1: ( '<' )
+            // InternalPerspectiveDsl.g:9844:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:9845:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:9791:1: ( '<' )
-            // InternalPerspectiveDsl.g:9792:2: '<'
+            // InternalPerspectiveDsl.g:9845:1: ( '<' )
+            // InternalPerspectiveDsl.g:9846:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
@@ -32892,14 +33057,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1"
-    // InternalPerspectiveDsl.g:9801:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    // InternalPerspectiveDsl.g:9855: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:9805:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
-            // InternalPerspectiveDsl.g:9806:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            // InternalPerspectiveDsl.g:9859:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalPerspectiveDsl.g:9860:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
             {
             pushFollow(FOLLOW_63);
             rule__OpMultiAssign__Group_5__1__Impl();
@@ -32930,17 +33095,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
-    // InternalPerspectiveDsl.g:9813:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    // InternalPerspectiveDsl.g:9867:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9817:1: ( ( '<' ) )
-            // InternalPerspectiveDsl.g:9818:1: ( '<' )
+            // InternalPerspectiveDsl.g:9871:1: ( ( '<' ) )
+            // InternalPerspectiveDsl.g:9872:1: ( '<' )
             {
-            // InternalPerspectiveDsl.g:9818:1: ( '<' )
-            // InternalPerspectiveDsl.g:9819:2: '<'
+            // InternalPerspectiveDsl.g:9872:1: ( '<' )
+            // InternalPerspectiveDsl.g:9873:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
@@ -32971,14 +33136,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2"
-    // InternalPerspectiveDsl.g:9828:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    // InternalPerspectiveDsl.g:9882: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:9832:1: ( rule__OpMultiAssign__Group_5__2__Impl )
-            // InternalPerspectiveDsl.g:9833:2: rule__OpMultiAssign__Group_5__2__Impl
+            // InternalPerspectiveDsl.g:9886:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalPerspectiveDsl.g:9887:2: rule__OpMultiAssign__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_5__2__Impl();
@@ -33004,17 +33169,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
-    // InternalPerspectiveDsl.g:9839:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    // InternalPerspectiveDsl.g:9893:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
     public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9843:1: ( ( '=' ) )
-            // InternalPerspectiveDsl.g:9844:1: ( '=' )
+            // InternalPerspectiveDsl.g:9897:1: ( ( '=' ) )
+            // InternalPerspectiveDsl.g:9898:1: ( '=' )
             {
-            // InternalPerspectiveDsl.g:9844:1: ( '=' )
-            // InternalPerspectiveDsl.g:9845:2: '='
+            // InternalPerspectiveDsl.g:9898:1: ( '=' )
+            // InternalPerspectiveDsl.g:9899:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
@@ -33045,14 +33210,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0"
-    // InternalPerspectiveDsl.g:9855:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    // InternalPerspectiveDsl.g:9909: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:9859:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
-            // InternalPerspectiveDsl.g:9860:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            // InternalPerspectiveDsl.g:9913:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalPerspectiveDsl.g:9914:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
             {
             pushFollow(FOLLOW_70);
             rule__OpMultiAssign__Group_6__0__Impl();
@@ -33083,17 +33248,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
-    // InternalPerspectiveDsl.g:9867:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    // InternalPerspectiveDsl.g:9921:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
     public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9871:1: ( ( '>' ) )
-            // InternalPerspectiveDsl.g:9872:1: ( '>' )
+            // InternalPerspectiveDsl.g:9925:1: ( ( '>' ) )
+            // InternalPerspectiveDsl.g:9926:1: ( '>' )
             {
-            // InternalPerspectiveDsl.g:9872:1: ( '>' )
-            // InternalPerspectiveDsl.g:9873:2: '>'
+            // InternalPerspectiveDsl.g:9926:1: ( '>' )
+            // InternalPerspectiveDsl.g:9927:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
@@ -33124,14 +33289,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1"
-    // InternalPerspectiveDsl.g:9882:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    // InternalPerspectiveDsl.g:9936: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:9886:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
-            // InternalPerspectiveDsl.g:9887:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            // InternalPerspectiveDsl.g:9940:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalPerspectiveDsl.g:9941:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
             {
             pushFollow(FOLLOW_70);
             rule__OpMultiAssign__Group_6__1__Impl();
@@ -33162,22 +33327,22 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
-    // InternalPerspectiveDsl.g:9894:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    // InternalPerspectiveDsl.g:9948:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
     public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9898:1: ( ( ( '>' )? ) )
-            // InternalPerspectiveDsl.g:9899:1: ( ( '>' )? )
+            // InternalPerspectiveDsl.g:9952:1: ( ( ( '>' )? ) )
+            // InternalPerspectiveDsl.g:9953:1: ( ( '>' )? )
             {
-            // InternalPerspectiveDsl.g:9899:1: ( ( '>' )? )
-            // InternalPerspectiveDsl.g:9900:2: ( '>' )?
+            // InternalPerspectiveDsl.g:9953:1: ( ( '>' )? )
+            // InternalPerspectiveDsl.g:9954:2: ( '>' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
             }
-            // InternalPerspectiveDsl.g:9901:2: ( '>' )?
+            // InternalPerspectiveDsl.g:9955:2: ( '>' )?
             int alt73=2;
             int LA73_0 = input.LA(1);
 
@@ -33186,7 +33351,7 @@
             }
             switch (alt73) {
                 case 1 :
-                    // InternalPerspectiveDsl.g:9901:3: '>'
+                    // InternalPerspectiveDsl.g:9955:3: '>'
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -33220,14 +33385,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2"
-    // InternalPerspectiveDsl.g:9909:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    // InternalPerspectiveDsl.g:9963: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:9913:1: ( rule__OpMultiAssign__Group_6__2__Impl )
-            // InternalPerspectiveDsl.g:9914:2: rule__OpMultiAssign__Group_6__2__Impl
+            // InternalPerspectiveDsl.g:9967:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalPerspectiveDsl.g:9968:2: rule__OpMultiAssign__Group_6__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_6__2__Impl();
@@ -33253,17 +33418,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
-    // InternalPerspectiveDsl.g:9920:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    // InternalPerspectiveDsl.g:9974:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
     public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9924:1: ( ( '>=' ) )
-            // InternalPerspectiveDsl.g:9925:1: ( '>=' )
+            // InternalPerspectiveDsl.g:9978:1: ( ( '>=' ) )
+            // InternalPerspectiveDsl.g:9979:1: ( '>=' )
             {
-            // InternalPerspectiveDsl.g:9925:1: ( '>=' )
-            // InternalPerspectiveDsl.g:9926:2: '>='
+            // InternalPerspectiveDsl.g:9979:1: ( '>=' )
+            // InternalPerspectiveDsl.g:9980:2: '>='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
@@ -33294,14 +33459,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0"
-    // InternalPerspectiveDsl.g:9936:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:9990: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:9940:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
-            // InternalPerspectiveDsl.g:9941:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            // InternalPerspectiveDsl.g:9994:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalPerspectiveDsl.g:9995:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
             {
             pushFollow(FOLLOW_71);
             rule__XOrExpression__Group__0__Impl();
@@ -33332,17 +33497,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:9948:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    // InternalPerspectiveDsl.g:10002:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:9952:1: ( ( ruleXAndExpression ) )
-            // InternalPerspectiveDsl.g:9953:1: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:10006:1: ( ( ruleXAndExpression ) )
+            // InternalPerspectiveDsl.g:10007:1: ( ruleXAndExpression )
             {
-            // InternalPerspectiveDsl.g:9953:1: ( ruleXAndExpression )
-            // InternalPerspectiveDsl.g:9954:2: ruleXAndExpression
+            // InternalPerspectiveDsl.g:10007:1: ( ruleXAndExpression )
+            // InternalPerspectiveDsl.g:10008:2: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
@@ -33377,14 +33542,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1"
-    // InternalPerspectiveDsl.g:9963:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10017: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:9967:1: ( rule__XOrExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:9968:2: rule__XOrExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10021:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10022:2: rule__XOrExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__1__Impl();
@@ -33410,22 +33575,22 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:9974:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10028: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:9978:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:9979:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10032:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10033:1: ( ( rule__XOrExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:9979:1: ( ( rule__XOrExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:9980:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10033:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10034:2: ( rule__XOrExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:9981:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10035:2: ( rule__XOrExpression__Group_1__0 )*
             loop74:
             do {
                 int alt74=2;
@@ -33444,7 +33609,7 @@
 
                 switch (alt74) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:9981:3: rule__XOrExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10035:3: rule__XOrExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_72);
             	    rule__XOrExpression__Group_1__0();
@@ -33485,14 +33650,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:9990:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10044: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:9994:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:9995:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10048:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10049:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XOrExpression__Group_1__0__Impl();
@@ -33523,23 +33688,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10002:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10056: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:10006:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10007:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10060:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10061:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10007:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10008:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10061:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10062:2: ( rule__XOrExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10009:2: ( rule__XOrExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10009:3: rule__XOrExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10063:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10063:3: rule__XOrExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0();
@@ -33574,14 +33739,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10017:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10071: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:10021:1: ( rule__XOrExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10022:2: rule__XOrExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10075:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10076:2: rule__XOrExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1__1__Impl();
@@ -33607,23 +33772,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10028:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10082: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:10032:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10033:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10086:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10087:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10033:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10034:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10087:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10088:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10035:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10035:3: rule__XOrExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10089:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10089:3: rule__XOrExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__RightOperandAssignment_1_1();
@@ -33658,14 +33823,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10044:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10098: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:10048:1: ( rule__XOrExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10049:2: rule__XOrExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10102:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10103:2: rule__XOrExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0__Impl();
@@ -33691,23 +33856,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10055:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10109: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:10059:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10060:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10113:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10114:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10060:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10061:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10114:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10115:2: ( rule__XOrExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10062:2: ( rule__XOrExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10062:3: rule__XOrExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10116:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10116:3: rule__XOrExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__0();
@@ -33742,14 +33907,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10071: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:10125: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:10075:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10076:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10129:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10130:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_71);
             rule__XOrExpression__Group_1_0_0__0__Impl();
@@ -33780,23 +33945,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10083:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10137: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:10087:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10088:1: ( () )
+            // InternalPerspectiveDsl.g:10141:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10142:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10088:1: ( () )
-            // InternalPerspectiveDsl.g:10089:2: ()
+            // InternalPerspectiveDsl.g:10142:1: ( () )
+            // InternalPerspectiveDsl.g:10143:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10090:2: ()
-            // InternalPerspectiveDsl.g:10090:3: 
+            // InternalPerspectiveDsl.g:10144:2: ()
+            // InternalPerspectiveDsl.g:10144:3: 
             {
             }
 
@@ -33821,14 +33986,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10098:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10152: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:10102:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10103:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10156:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10157:2: rule__XOrExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__1__Impl();
@@ -33854,23 +34019,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10109:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10163: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:10113:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10114:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10167:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10168:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10114:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10115:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10168:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10169:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10116:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10116:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10170:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10170:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__FeatureAssignment_1_0_0_1();
@@ -33905,14 +34070,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0"
-    // InternalPerspectiveDsl.g:10125:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10179: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:10129:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10130:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            // InternalPerspectiveDsl.g:10183:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10184:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
             {
             pushFollow(FOLLOW_73);
             rule__XAndExpression__Group__0__Impl();
@@ -33943,17 +34108,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10137:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    // InternalPerspectiveDsl.g:10191:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10141:1: ( ( ruleXEqualityExpression ) )
-            // InternalPerspectiveDsl.g:10142:1: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:10195:1: ( ( ruleXEqualityExpression ) )
+            // InternalPerspectiveDsl.g:10196:1: ( ruleXEqualityExpression )
             {
-            // InternalPerspectiveDsl.g:10142:1: ( ruleXEqualityExpression )
-            // InternalPerspectiveDsl.g:10143:2: ruleXEqualityExpression
+            // InternalPerspectiveDsl.g:10196:1: ( ruleXEqualityExpression )
+            // InternalPerspectiveDsl.g:10197:2: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
@@ -33988,14 +34153,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1"
-    // InternalPerspectiveDsl.g:10152:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10206: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:10156:1: ( rule__XAndExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10157:2: rule__XAndExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10210:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10211:2: rule__XAndExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__1__Impl();
@@ -34021,22 +34186,22 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10163:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10217: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:10167:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10168:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10221:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10222:1: ( ( rule__XAndExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10168:1: ( ( rule__XAndExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10169:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10222:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10223:2: ( rule__XAndExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10170:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10224:2: ( rule__XAndExpression__Group_1__0 )*
             loop75:
             do {
                 int alt75=2;
@@ -34055,7 +34220,7 @@
 
                 switch (alt75) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10170:3: rule__XAndExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10224:3: rule__XAndExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_74);
             	    rule__XAndExpression__Group_1__0();
@@ -34096,14 +34261,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10179:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10233: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:10183:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10184:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10237:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10238:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XAndExpression__Group_1__0__Impl();
@@ -34134,23 +34299,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10191:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10245: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:10195:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10196:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10249:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10250:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10196:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10197:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10250:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10251:2: ( rule__XAndExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10198:2: ( rule__XAndExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10198:3: rule__XAndExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10252:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10252:3: rule__XAndExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0();
@@ -34185,14 +34350,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10206:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10260: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:10210:1: ( rule__XAndExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10211:2: rule__XAndExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10264:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10265:2: rule__XAndExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1__1__Impl();
@@ -34218,23 +34383,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10217:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10271: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:10221:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10222:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10275:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10276:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10222:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10223:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10276:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10277:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10224:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10224:3: rule__XAndExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10278:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10278:3: rule__XAndExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__RightOperandAssignment_1_1();
@@ -34269,14 +34434,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10233:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10287: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:10237:1: ( rule__XAndExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10238:2: rule__XAndExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10291:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10292:2: rule__XAndExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0__Impl();
@@ -34302,23 +34467,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10244:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10298: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:10248:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10249:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10302:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10303:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10249:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10250:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10303:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10304:2: ( rule__XAndExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10251:2: ( rule__XAndExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10251:3: rule__XAndExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10305:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10305:3: rule__XAndExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__0();
@@ -34353,14 +34518,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10260: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:10314: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:10264:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10265:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10318:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10319:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_73);
             rule__XAndExpression__Group_1_0_0__0__Impl();
@@ -34391,23 +34556,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10272:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10326: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:10276:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10277:1: ( () )
+            // InternalPerspectiveDsl.g:10330:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10331:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10277:1: ( () )
-            // InternalPerspectiveDsl.g:10278:2: ()
+            // InternalPerspectiveDsl.g:10331:1: ( () )
+            // InternalPerspectiveDsl.g:10332:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10279:2: ()
-            // InternalPerspectiveDsl.g:10279:3: 
+            // InternalPerspectiveDsl.g:10333:2: ()
+            // InternalPerspectiveDsl.g:10333:3: 
             {
             }
 
@@ -34432,14 +34597,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10287:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10341: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:10291:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10292:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10345:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10346:2: rule__XAndExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__1__Impl();
@@ -34465,23 +34630,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
-    // InternalPerspectiveDsl.g:10298:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalPerspectiveDsl.g:10352: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:10302:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalPerspectiveDsl.g:10303:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10356:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalPerspectiveDsl.g:10357:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalPerspectiveDsl.g:10303:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalPerspectiveDsl.g:10304:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10357:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalPerspectiveDsl.g:10358:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalPerspectiveDsl.g:10305:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
-            // InternalPerspectiveDsl.g:10305:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            // InternalPerspectiveDsl.g:10359:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalPerspectiveDsl.g:10359:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__FeatureAssignment_1_0_0_1();
@@ -34516,14 +34681,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0"
-    // InternalPerspectiveDsl.g:10314:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    // InternalPerspectiveDsl.g:10368: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:10318:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
-            // InternalPerspectiveDsl.g:10319:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            // InternalPerspectiveDsl.g:10372:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalPerspectiveDsl.g:10373:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
             {
             pushFollow(FOLLOW_75);
             rule__XEqualityExpression__Group__0__Impl();
@@ -34554,17 +34719,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
-    // InternalPerspectiveDsl.g:10326:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    // InternalPerspectiveDsl.g:10380:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalPerspectiveDsl.g:10330:1: ( ( ruleXRelationalExpression ) )
-            // InternalPerspectiveDsl.g:10331:1: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:10384:1: ( ( ruleXRelationalExpression ) )
+            // InternalPerspectiveDsl.g:10385:1: ( ruleXRelationalExpression )
             {
-            // InternalPerspectiveDsl.g:10331:1: ( ruleXRelationalExpression )
-            // InternalPerspectiveDsl.g:10332:2: ruleXRelationalExpression
+            // InternalPerspectiveDsl.g:10385:1: ( ruleXRelationalExpression )
+            // InternalPerspectiveDsl.g:10386:2: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
@@ -34599,14 +34764,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1"
-    // InternalPerspectiveDsl.g:10341:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    // InternalPerspectiveDsl.g:10395: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:10345:1: ( rule__XEqualityExpression__Group__1__Impl )
-            // InternalPerspectiveDsl.g:10346:2: rule__XEqualityExpression__Group__1__Impl
+            // InternalPerspectiveDsl.g:10399:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalPerspectiveDsl.g:10400:2: rule__XEqualityExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__1__Impl();
@@ -34632,22 +34797,22 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
-    // InternalPerspectiveDsl.g:10352:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    // InternalPerspectiveDsl.g:10406: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:10356:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
-            // InternalPerspectiveDsl.g:10357:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10410:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalPerspectiveDsl.g:10411:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
             {
-            // InternalPerspectiveDsl.g:10357:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
-            // InternalPerspectiveDsl.g:10358:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10411:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalPerspectiveDsl.g:10412:2: ( rule__XEqualityExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
             }
-            // InternalPerspectiveDsl.g:10359:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalPerspectiveDsl.g:10413:2: ( rule__XEqualityExpression__Group_1__0 )*
             loop76:
             do {
                 int alt76=2;
@@ -34701,7 +34866,7 @@
 
                 switch (alt76) {
             	case 1 :
-            	    // InternalPerspectiveDsl.g:10359:3: rule__XEqualityExpression__Group_1__0
+            	    // InternalPerspectiveDsl.g:10413:3: rule__XEqualityExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_76);
             	    rule__XEqualityExpression__Group_1__0();
@@ -34742,14 +34907,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0"
-    // InternalPerspectiveDsl.g:10368:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    // InternalPerspectiveDsl.g:10422: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:10372:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
-            // InternalPerspectiveDsl.g:10373:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            // InternalPerspectiveDsl.g:10426:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalPerspectiveDsl.g:10427:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
             {
             pushFollow(FOLLOW_62);
             rule__XEqualityExpression__Group_1__0__Impl();
@@ -34780,23 +34945,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
-    // InternalPerspectiveDsl.g:10380:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10434: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:10384:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10385:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10438:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10439:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10385:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
-            // InternalPerspectiveDsl.g:10386:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10439:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalPerspectiveDsl.g:10440:2: ( rule__XEqualityExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
             }
-            // InternalPerspectiveDsl.g:10387:2: ( rule__XEqualityExpression__Group_1_0__0 )
-            // InternalPerspectiveDsl.g:10387:3: rule__XEqualityExpression__Group_1_0__0
+            // InternalPerspectiveDsl.g:10441:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalPerspectiveDsl.g:10441:3: rule__XEqualityExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0();
@@ -34831,14 +34996,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1"
-    // InternalPerspectiveDsl.g:10395:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    // InternalPerspectiveDsl.g:10449: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:10399:1: ( rule__XEqualityExpression__Group_1__1__Impl )
-            // InternalPerspectiveDsl.g:10400:2: rule__XEqualityExpression__Group_1__1__Impl
+            // InternalPerspectiveDsl.g:10453:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalPerspectiveDsl.g:10454:2: rule__XEqualityExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1__1__Impl();
@@ -34864,23 +35029,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
-    // InternalPerspectiveDsl.g:10406:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalPerspectiveDsl.g:10460: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:10410:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalPerspectiveDsl.g:10411:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10464:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalPerspectiveDsl.g:10465:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalPerspectiveDsl.g:10411:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
-            // InternalPerspectiveDsl.g:10412:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10465:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalPerspectiveDsl.g:10466:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalPerspectiveDsl.g:10413:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
-            // InternalPerspectiveDsl.g:10413:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            // InternalPerspectiveDsl.g:10467:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalPerspectiveDsl.g:10467:3: rule__XEqualityExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__RightOperandAssignment_1_1();
@@ -34915,14 +35080,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
-    // InternalPerspectiveDsl.g:10422:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    // InternalPerspectiveDsl.g:10476: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:10426:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
-            // InternalPerspectiveDsl.g:10427:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            // InternalPerspectiveDsl.g:10480:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalPerspectiveDsl.g:10481:2: rule__XEqualityExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0__Impl();
@@ -34948,23 +35113,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
-    // InternalPerspectiveDsl.g:10433:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    // InternalPerspectiveDsl.g:10487: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:10437:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
-            // InternalPerspectiveDsl.g:10438:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10491:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalPerspectiveDsl.g:10492:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
             {
-            // InternalPerspectiveDsl.g:10438:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
-            // InternalPerspectiveDsl.g:10439:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10492:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalPerspectiveDsl.g:10493:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10440:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
-            // InternalPerspectiveDsl.g:10440:3: rule__XEqualityExpression__Group_1_0_0__0
+            // InternalPerspectiveDsl.g:10494:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalPerspectiveDsl.g:10494:3: rule__XEqualityExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__0();
@@ -34999,14 +35164,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
-    // InternalPerspectiveDsl.g:10449: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:10503: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:10453:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
-            // InternalPerspectiveDsl.g:10454:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            // InternalPerspectiveDsl.g:10507:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalPerspectiveDsl.g:10508:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_75);
             rule__XEqualityExpression__Group_1_0_0__0__Impl();
@@ -35037,23 +35202,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
-    // InternalPerspectiveDsl.g:10461:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalPerspectiveDsl.g:10515: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:10465:1: ( ( () ) )
-            // InternalPerspectiveDsl.g:10466:1: ( () )
+            // InternalPerspectiveDsl.g:10519:1: ( ( () ) )
+            // InternalPerspectiveDsl.g:10520:1: ( () )
             {
-            // InternalPerspectiveDsl.g:10466:1: ( () )
-            // InternalPerspectiveDsl.g:10467:2: ()
+            // InternalPerspectiveDsl.g:10520:1: ( () )
+            // InternalPerspectiveDsl.g:10521:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalPerspectiveDsl.g:10468:2: ()
-            // InternalPerspectiveDsl.g:10468:3: 
+            // InternalPerspectiveDsl.g:10522:2: ()
+            // InternalPerspectiveDsl.g:10522:3: 
             {
             }
 
@@ -35078,14 +35243,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
-    // InternalPerspectiveDsl.g:10476:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    // InternalPerspectiveDsl.g:10530: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:10480:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
-            // InternalPerspectiveDsl.g:10481:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            // InternalPerspectiveDsl.g:10534:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalPerspectiveDsl.g:10535:2: rule__XEqualityExpression__Group_1